Пример #1
0
        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);
        }
Пример #2
0
        public void ExpressionType_Parameter_WithPosition()
        {
            // Arrange
            var patchDocument = new JsonPatchDocument <SimpleObject>();

            // Act
            var path = patchDocument.GetPath(p => p, "-");

            // Assert
            Assert.Equal("/-", path);
        }
Пример #3
0
        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);
        }
Пример #4
0
        public void ExpressionType_ArrayIndex()
        {
            // Arrange
            var patchDocument = new JsonPatchDocument <int[]>();

            // Act
            var path = patchDocument.GetPath(p => p[3], null);

            // Assert
            Assert.Equal("/3", path);
        }
Пример #5
0
        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);
        }