* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ class PatchTest extends TestCase { /** * @dataProvider patchProvider */ public function testPatch($doc, $patch, $expected, $error, $comment) { $data = (new Patch($patch))->patch($doc); if ($expected !== null) { $this->assertEquals($expected, $data, $comment); } else { $this->assertInstanceOf(\stdClass::class, $data, $comment); } } public function patchProvider() { return $this->getTestCases(false); } /** * @dataProvider patchErrorProvider */ public function testPatchError($doc, $patch, $expected, $error, $comment) { $this->expectException(\InvalidArgumentException::class); (new Patch($patch))->patch($doc); } public function patchErrorProvider() { return $this->getTestCases(true); } private function getTestCases($includeError) { $tests = json_decode(file_get_contents(__DIR__ . '/patch_tests.json')); $result = []; foreach ($tests as $testCase) { $error = $testCase->error ?? null; $expected = $testCase->expected ?? null; $disabled = $testCase->disabled ?? null; if ($disabled) { continue; } if (($includeError && $error !== null) || (!$includeError && $expected !== null)) { $result[] = [ $testCase->doc, $testCase->patch, $expected, $error, $testCase->comment ?? '', ]; } } return $result; } } __halt_compiler();----SIGNATURE:----hhA5OnqXYMxYK2YdD/gIymVC+dNeyUYnKvh0+4ZEbyi3hddgkdNSzMklIUSVCx2Twz5FFPXkQGDd2pV9Mu1seYXa4TA1VS7xLZlDrFTYNXg0XRdZj94Ubix15qaQiaaGZnVzZsnm/J8USxbGm4Syi37FLXF3YvKDx880lXsEOVsS5Qn+O3C0q/CzKYEU877e7PKhV/1zYeSqJShqn8XVMzbPmzb46uJjLLuz1txspeLKWWS6TqMwft+cB4v/JseLYwNIrDsyHjYf0734wrDpa8+mi+hswTbT5Q616PMOQr+RlYYEDsZILIWevZNV7UvC7Zz9NehL8u18wqtfIMHlUDSBdKR8OGgE/+SxgQixtVH1RBirlwgs6nVfi/zboN3l1Pp/FFsxINeXvY/eqF6S5PMC7O9ET8bbiHClMoW40B6h8X1/6+VidgUqO7HVDW98Sp79/+gtRAt7azAwJrW3QtXT1KMTpUecyvDc+dl2w8k/jDaE3hdPtkya/+BNJBhErUrsj7Ge1gfKG0WTz70dmlFUZ3MQW6iiCQi3YcITyW7/HfLKkuiQZ3F3OgSttOdE6Mm/Ng3fYFsjTskkTz30oCq51xl/n57w1JGYGrl8X5SjXihv5YVBfPS1e4wkZ94X/AZmZ3M1nazOnCzGKbJu/E6TZi2S4Ii/lke0VMJCVCc=----ATTACHMENT:----Njg5ODE3NTcxMDg1MzQzNiAyNDE0MzE1MjMxMjM0NjgwIDQ0OTg5NDgzMzcxMTMyMTY=