public void ExpressionType_Convert() { // Arrange var patchDocument = new JsonPatchDocument <NestedObjectWithDerivedClass>(); // Act var path = patchDocument.GetPath(p => (BaseClass)p.DerivedObject, null); // Assert Assert.Equal("/DerivedObject", path); }
public void ExpressionType_Parameter_WithPosition() { // Arrange var patchDocument = new JsonPatchDocument <SimpleObject>(); // Act var path = patchDocument.GetPath(p => p, "-"); // Assert Assert.Equal("/-", path); }
public void ExpressionType_Call() { // Arrange var patchDocument = new JsonPatchDocument <Dictionary <string, int> >(); // Act var path = patchDocument.GetPath(p => p["key"], "3"); // Assert Assert.Equal("/key/3", path); }
public void ExpressionType_ArrayIndex() { // Arrange var patchDocument = new JsonPatchDocument <int[]>(); // Act var path = patchDocument.GetPath(p => p[3], null); // Assert Assert.Equal("/3", path); }
public void ExpressionType_MemberAccess() { // Arrange var patchDocument = new JsonPatchDocument <SimpleObjectWithNestedObject>(); // Act var path = patchDocument.GetPath(p => p.SimpleObject.IntegerList, "-"); // Assert Assert.Equal("/SimpleObject/IntegerList/-", path); }
public void ExpressionType_NotSupported() { // Arrange var patchDocument = new JsonPatchDocument <SimpleObject>(); // Act var exception = Assert.Throws <InvalidOperationException>(() => { patchDocument.GetPath(p => p.IntegerValue >= 4, null); }); // Assert Assert.Equal("The expression '(p.IntegerValue >= 4)' is not supported. Supported expressions include member access and indexer expressions.", exception.Message); }