public void TryTraverse_ThrowsPathNotFoundException_ForNonExistingProperty() { // Arrange var adapter = new DynamicObjectAdapter(); dynamic target = new DynamicTestObject(); target.NestedObject = new DynamicTestObject(); var segment = "NewProperty"; var resolver = new DefaultContractResolver(); // Act var status = adapter.TryTraverse(target.NestedObject, segment, resolver, out object nextTarget, out string errorMessage); // Assert Assert.False(status); Assert.Equal($"The target location specified by path segment '{segment}' was not found.", errorMessage); }
public void TryTraverse_FindsNextTarget() { // Arrange var adapter = new DynamicObjectAdapter(); dynamic target = new DynamicTestObject(); target.NestedObject = new DynamicTestObject(); target.NestedObject.NewProperty = "A"; var segment = "NestedObject"; var resolver = new DefaultContractResolver(); // Act var status = adapter.TryTraverse(target, segment, resolver, out object nextTarget, out string errorMessage); // Assert Assert.True(status); Assert.Null(errorMessage); Assert.Equal(target.NestedObject, nextTarget); }