assertEquals($expectedResultData, $data1); $data2 = $data; DataUtil::unsetByKey($data2, 'Test.fields.fieldVarchar'); $this->assertEquals($expectedResultData, $data2); $data3 = $data; DataUtil::unsetByKey($data3, [['Test', 'fields', 'fieldVarchar']]); $this->assertEquals($expectedResultData, $data3); } public function testUnsetByKey2() { $data = json_decode('{ "Test": { "fields": { "fieldVarchar": { "type": "varchar", "default": "hello" }, "fieldText": { "type": "text" } }, "links": { "test": { "type": "hasMany" } }, "indexes": { "test": { "name": "test" } } } }'); $expectedResultData = json_decode('{ "Test": { "links": { "test": { "type": "hasMany" } } } }'); DataUtil::unsetByKey($data, [['Test', 'fields', 'fieldVarchar'], ['Test', 'fields', 'fieldText'], ['Test', 'indexes', 'test', 'name']], true); $this->assertEquals($expectedResultData, $data); } public function testUnsetByValue() { $data = json_decode('{ "Test": { "fields": { "fieldEnum": { "type": "enum", "options": ["__APPEND__", "hello"] } } } }'); $expectedResultData = json_decode('{ "Test": { "fields": { "fieldEnum": { "type": "enum", "options": ["hello"] } } } }'); DataUtil::unsetByValue($data, '__APPEND__'); $this->assertEquals($expectedResultData, $data); } public function testMerge1() { $data1 = json_decode('{ "Test": { "fields": { "fieldVarchar": { "type": "varchar", "default": "hello" } } } }'); $data2 = json_decode('{ "Test": { "fields": { "fieldEnum": { "type": "enum", "options": ["__APPEND__", "hello"] } } } }'); $expectedResultData = json_decode('{ "Test": { "fields": { "fieldVarchar": { "type": "varchar", "default": "hello" }, "fieldEnum": { "type": "enum", "options": ["hello"] } } } }'); $data = DataUtil::merge($data1, $data2); $this->assertEquals($expectedResultData, $data); } public function testMerge2() { $data1 = json_decode('{ "Test": { "fields": { "fieldEnum": { "type": "enum", "options": ["test"] } } } }'); $data2 = json_decode('{ "Test": { "fields": { "fieldEnum": { "type": "enum", "options": ["__APPEND__", "hello"] } } } }'); $expectedResultData = json_decode('{ "Test": { "fields": { "fieldEnum": { "type": "enum", "options": ["test", "hello"] } } } }'); $data = DataUtil::merge($data1, $data2); $this->assertEquals($expectedResultData, $data); } public function testMerge3() { $data1 = json_decode('{ "Test": { "panelList": [ { "name": "test_1" } ] } }'); $data2 = json_decode('{ "Test": { "panelList": [ "__APPEND__", { "name": "test_2" }, { "name": "test_3" } ] } }'); $expectedResultData = json_decode('{ "Test": { "panelList": [ { "name": "test_1" }, { "name": "test_2" }, { "name": "test_3" } ] } }'); $data = DataUtil::merge($data1, $data2); $this->assertEquals($expectedResultData, $data); } public function testMerge4() { $data1 = json_decode('[ { "name": "test_1" } ]'); $data2 = json_decode('[ "__APPEND__", { "name": "test_2" } ]'); $expectedResultData = json_decode('[ { "name": "test_1" }, { "name": "test_2" } ]'); $data = DataUtil::merge($data1, $data2); $this->assertEquals($expectedResultData, $data); } public function testMerge5() { $data1 = json_decode('{ "Test": { "panelList": [ { "name": "test_1" } ] } }'); $data2 = json_decode('{ "Test": { "panelList": [ { "name": "test_2" }, { "name": "test_3" } ] } }'); $expectedResultData = json_decode('{ "Test": { "panelList": [ { "name": "test_2" }, { "name": "test_3" } ] } }'); $data = DataUtil::merge($data1, $data2); $this->assertEquals($expectedResultData, $data); } public function testMerge6() { $data1 = json_decode('{ "Test": { "panelList": [ { "name": "test_1" } ] }, "Hello": { "name": "hello" } }'); $data2 = json_decode('{ "Test": { "panelList": [ "__APPEND__", { "name": "test_2" } ] }, "Hello": false }'); $expectedResultData = json_decode('{ "Test": { "panelList": [ { "name": "test_1" }, { "name": "test_2" } ] }, "Hello": false }'); $data = DataUtil::merge($data1, $data2); $this->assertEquals($expectedResultData, $data); } }