public void TryTranslatePathTemplateSegmentTemplate_ReturnsDynamicPathSegment() { // Arrange RouteValueDictionary routeValueDictionary = new RouteValueDictionary(new { dynamicproperty = "Dynamic" }); ODataTemplateTranslateContext context = new ODataTemplateTranslateContext { RouteValues = routeValueDictionary }; context.Segments.Add(new MySegment(_entityType)); PathTemplateSegment segment = new PathTemplateSegment("{dynamicproperty}"); PathTemplateSegmentTemplate pathSegment = new PathTemplateSegmentTemplate(segment); // Act Assert.True(pathSegment.TryTranslate(context)); // Assert Assert.Equal(2, context.Segments.Count); // 1 - MySegment, 2 - Property Segment Assert.Collection(context.Segments, e => { Assert.IsType <MySegment>(e); }, e => { DynamicPathSegment dynamicSegment = Assert.IsType <DynamicPathSegment>(e); Assert.Equal("Dynamic", dynamicSegment.Identifier); }); }
public void TryTranslatePathTemplateSegmentTemplate_ReturnsNavigationPropertySegment() { // Arrange RouteValueDictionary routeValueDictionary = new RouteValueDictionary(new { property = "RelatedCustomers" }); ODataTemplateTranslateContext context = new ODataTemplateTranslateContext { RouteValues = routeValueDictionary }; context.Segments.Add(new MySegment(_entityType)); PathTemplateSegment segment = new PathTemplateSegment("{property}"); PathTemplateSegmentTemplate pathSegment = new PathTemplateSegmentTemplate(segment); // Act Assert.True(pathSegment.TryTranslate(context)); // Assert Assert.Equal(2, context.Segments.Count); // 1 - MySegment, 2 - Property Segment Assert.Collection(context.Segments, e => { Assert.IsType <MySegment>(e); }, e => { NavigationPropertySegment propertySegment = Assert.IsType <NavigationPropertySegment>(e); Assert.Equal("RelatedCustomers", propertySegment.NavigationProperty.Name); }); }
public void TryTranslatePathTemplateSegmentTemplate_ThrowsArgumentNull_Context() { // Arrange PathTemplateSegment segment = new PathTemplateSegment("{any}"); PathTemplateSegmentTemplate pathSegment = new PathTemplateSegmentTemplate(segment); // Act & Assert ExceptionAssert.ThrowsArgumentNull(() => pathSegment.TryTranslate(null), "context"); }
public void CtorPathTemplateSegmentTemplate_SetsProperties() { // Arrange & Act PathTemplateSegment segment = new PathTemplateSegment("{any}"); PathTemplateSegmentTemplate pathSegment = new PathTemplateSegmentTemplate(segment); // Assert Assert.Equal("any", pathSegment.ParameterName); Assert.Same(segment, pathSegment.Segment); }
[InlineData("{dynamicproperty}")] // false because no previous segment in the context public void TryTranslatePathTemplateSegmentTemplate_ReturnsFalse_NotSupportedTemplate(string template) { // Arrange PathTemplateSegment segment = new PathTemplateSegment(template); PathTemplateSegmentTemplate pathSegment = new PathTemplateSegmentTemplate(segment); ODataTemplateTranslateContext context = new ODataTemplateTranslateContext(); // Act & Assert Assert.False(pathSegment.TryTranslate(context)); }
public void Ctor_SetPropertiesCorrectly() { // Arrange PathTemplateSegment segment = new PathTemplateSegment("{pName:dynamicproperty}"); // Act PathTemplateSegmentTemplate template = new PathTemplateSegmentTemplate(segment); // Assert Assert.Equal("pName", template.PropertyName); Assert.Equal("dynamicproperty", template.SegmentName); }
public void GetTemplatesPathTemplateSegmentTemplate_ReturnsTemplates() { // Arrange PathTemplateSegment segment = new PathTemplateSegment("{any}"); PathTemplateSegmentTemplate pathSegment = new PathTemplateSegmentTemplate(segment); // Act & Assert IEnumerable <string> templates = pathSegment.GetTemplates(); string template = Assert.Single(templates); Assert.Equal("/{any}", template); }
public void TryMatch_DifferentType() { // Arrange PathTemplateSegment pathTemplateSegment = new PathTemplateSegment("{pName:dynamicproperty}"); PathTemplateSegmentTemplate template = new PathTemplateSegmentTemplate(pathTemplateSegment); // Act Dictionary <string, object> values = new Dictionary <string, object>(); bool result = template.TryMatch(MetadataSegment.Instance, values); // Assert Assert.False(result); }
public void TryTranslatePathTemplateSegmentTemplate_ReturnsFalse_PreviousSegmentNotStructuredType(string template) { // Arrange MySegment previousSegment = new MySegment(EdmCoreModel.Instance.GetString(false).Definition); PathTemplateSegment segment = new PathTemplateSegment(template); PathTemplateSegmentTemplate pathSegment = new PathTemplateSegmentTemplate(segment); ODataTemplateTranslateContext context = new ODataTemplateTranslateContext(); context.Segments.Add(previousSegment); // Act & Assert Assert.False(pathSegment.TryTranslate(context)); }
public void TryTranslatePathTemplateSegmentTemplate_ReturnsFalse_NoCorrectRouteData(string template) { // Arrange PathTemplateSegment segment = new PathTemplateSegment(template); PathTemplateSegmentTemplate pathSegment = new PathTemplateSegmentTemplate(segment); ODataTemplateTranslateContext context = new ODataTemplateTranslateContext { RouteValues = new RouteValueDictionary() }; context.Segments.Add(new MySegment(_entityType)); // Act & Assert Assert.False(pathSegment.TryTranslate(context)); }
public void TryMatch_RetrunsTrue() { // Arrange PathTemplateSegment pathTemplateSegment = new PathTemplateSegment("{pName:dynamicproperty}"); PathTemplateSegmentTemplate template = new PathTemplateSegmentTemplate(pathTemplateSegment); DynamicPathSegment segment = new DynamicPathSegment("property"); // Act Dictionary <string, object> values = new Dictionary <string, object>(); bool result = template.TryMatch(segment, values); // Assert Assert.True(result); Assert.True(values.ContainsKey("pName")); Assert.Equal("property", values["pName"]); }
public void TryTranslatePathTemplateSegmentTemplate_ReturnsFalse_DynamicPathSegmentWithKnowProperty() { // Arrange RouteValueDictionary routeValueDictionary = new RouteValueDictionary(new { dynamicproperty = "Name" }); ODataTemplateTranslateContext context = new ODataTemplateTranslateContext { RouteValues = routeValueDictionary }; context.Segments.Add(new MySegment(_entityType)); PathTemplateSegment segment = new PathTemplateSegment("{dynamicproperty}"); PathTemplateSegmentTemplate pathSegment = new PathTemplateSegmentTemplate(segment); // Act & Assert Assert.False(pathSegment.TryTranslate(context)); }