[ 'value' => [], 'exceptionExpected' => false, ], 'valid filled data' => [ 'value' => [ 'example' => true, 'example2' => 'lorem', 'example3' => null, ], 'exceptionExpected' => false, ], 'invalid data' => [ 'value' => [ 'lorem' => NAN, ], 'exceptionExpected' => true, ], ]; } /** * @dataProvider decodeProvider */ public function testDecode(string $json, bool $exceptionExpected): void { $exception = null; try { Json::decode($json); } catch (JsonException $exception) { } if ($exceptionExpected) { self::assertInstanceOf(JsonException::class, $exception); } else { self::assertNull($exception); } } /** * @return mixed[] */ public function decodeProvider(): array { return [ 'valid json' => [ 'json' => '[]', 'exceptionExpected' => false, ], 'valid json with data' => [ 'json' => '{"example":true,"example2":"lorem","example3":null}', 'exceptionExpected' => false, ], 'no data' => [ 'json' => '', 'exceptionExpected' => true, ], 'invalid data' => [ 'json' => '{example:true,example2:lorem,example3:null,}', 'exceptionExpected' => true, ], ]; } }