public static Operation FromTemplate(OperationTemplate template) { Operation op = null; if (template.op == "add") { op = new AddOperation(); } else if (template.op == "remove") { op = new RemoveOperation(); } else if (template.op == "test") { op = new TestOperation(); } else if (template.op == "move") { op = new MoveOperation(); } else if (template.op == "copy") { op = new CopyOperation(); } else if (template.op == "replace") { op = new ReplaceOperation(); } op.CopyPropertiesFrom(template); return op; }
public void ShouldMoveObjectBetweenTwoArray() { dynamic _Object = JObject.Parse(@" {'baz': [{'name': 'foo'},{'name': 'bar'}], 'boo': [{'name': 'zoo'},{'name': 'ear'}]}" ); Operation operation = new CopyOperation() { Target = _Object, From = "$.baz[0]", Path = "$.boo[1]" }; operation.Execute(); string result = SerializeObject(_Object); result.ShouldBe(@"{'baz':[{'name':'foo'},{'name':'bar'}],'boo':[{'name':'zoo'},{'name':'foo'},{'name':'ear'}]}"); }
public void ShouldCopyValueForSimpleProperty() { dynamic _Object = JObject.Parse(@" { 'baz': 'qux', 'foo': 'bar' }" ); Operation operation = new CopyOperation() { Target = _Object, From= "$.baz", Path = "$.boo"}; operation.Execute(); string result = SerializeObject(_Object); result.ShouldBe(@"{'baz':'qux','foo':'bar','boo':'qux'}"); }
public void ShouldCopyValueForComplexProperty() { dynamic _Object = JObject.Parse(@" { 'foo': { 'bar': 'baz', 'waldo': 'fred' }, 'qux': { 'corge': 'grault' } }" ); Operation operation = new CopyOperation() { Target = _Object, From="$.foo.waldo", Path="$.qux.thud"}; operation.Execute(); string result = SerializeObject(_Object); result.ShouldBe(@"{'foo':{'bar':'baz','waldo':'fred'},'qux':{'corge':'grault','thud':'fred'}}"); }