public void CanSetupTreeStructureWithUpdates() { string document = ComplexObject .Create() .WithId(SetTo.Value("ID123")) .WithItems( item => item .WithId(SetTo.Value("ARandomGuid")) .WithTags( tag1 => tag1 .WithKey(SetTo.Value("Importance")) .WithValue(SetTo.Value("High")), tag2 => tag2 .WithKey(SetTo.Value("Level")) .WithValue(SetTo.Null), tag3 => tag3 .WithKey(SetTo.Value("Games")) .WithValue(SetTo.Null))) .WithName(SetTo.Value("Test")) .UpdateExistingTagAtIndex(0, item => item .UpdateExistingTagAtIndex(1, tag => tag.WithValue(SetTo.Value("Medium"))) .WithTags(Updated.ByRemovingAtIndex(0))); Assert.Equal( @"{""id"":""ID123"",""items"":[{""id"":""ARandomGuid"",""tags"":[{""key"":""Level"",""value"":""Medium""},{""key"":""Games"",""value"":null}]}],""name"":""Test""}", document); }
public void SetToCollectionThenUpdatedByRemoving_ExpectedJsonPatternReturned() { string document = JsonBuilder .CreateObject() .With("first", SetTo.AnArrayContaining( item => item.With("aProperty", SetTo.Value("AValue")), item => { })) .And("second", SetTo.Value("test2")) .With("first", Updated.ByRemovingAtIndex(0)) .With("first", Updated.AtIndex(0, item => item.With("second", SetTo.Value("NewValue")))); Assert.Equal($@"{{""first"":[{{""second"":""NewValue""}}],""second"":""test2""}}", document); }