Skip to content

Commit e9e947d

Browse files
committed
#6 check
1 parent 16f0445 commit e9e947d

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

tests/src/Issues/Issue6Test.php

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?php
2+
3+
namespace Swaggest\JsonDiff\Tests\Issues;
4+
5+
use Swaggest\JsonDiff\JsonDiff;
6+
use Swaggest\JsonDiff\JsonPatch;
7+
8+
9+
/**
10+
* @see https://github.com/swaggest/json-diff/issues/6
11+
*/
12+
class Issue6Test extends \PHPUnit_Framework_TestCase
13+
{
14+
public function testIssue6()
15+
{
16+
$json1 = json_decode('[{"name":"a"},{"name":"b"},{"name":"c"}]');
17+
$json2 = json_decode('[{"name":"b"}]');
18+
19+
$diff = new JsonDiff($json1, $json2);
20+
$patch = $diff->getPatch();
21+
22+
$this->assertSame(<<<'JSON'
23+
[
24+
{
25+
"value": "a",
26+
"op": "test",
27+
"path": "/0/name"
28+
},
29+
{
30+
"value": "b",
31+
"op": "replace",
32+
"path": "/0/name"
33+
},
34+
{
35+
"op": "remove",
36+
"path": "/1"
37+
},
38+
{
39+
"op": "remove",
40+
"path": "/2"
41+
}
42+
]
43+
JSON
44+
, json_encode($patch, JSON_PRETTY_PRINT + JSON_UNESCAPED_SLASHES));
45+
46+
$json1a = $json1;
47+
$patch->apply($json1a);
48+
49+
$this->assertEquals($json2, $json1a);
50+
}
51+
52+
53+
public function testIssue6Remove()
54+
{
55+
$json1 = json_decode('[{"name":"a"},{"name":"b"},{"name":"c"}]');
56+
$json2 = json_decode('[{"name":"b"}]');
57+
58+
$patch = JsonPatch::import(json_decode('[{"op":"remove","path":"/0"},{"op":"remove","path":"/2"}]'));
59+
60+
$json1a = $json1;
61+
$patch->apply($json1a);
62+
$this->assertEquals(json_encode($json2), json_encode($json1a));
63+
/*
64+
Failed asserting that two strings are equal.
65+
Expected :'[{"name":"b"}]'
66+
Actual :'{"1":{"name":"b"}}'
67+
*/
68+
}
69+
}

0 commit comments

Comments
 (0)