public WithTemplatedUrlPathProviderTests()
        {
            parameters   = new List <ParameterDescriptor>();
            mockSelector = new Mock <IQueryNameSelector>();
            mockSelector
            .Setup(x => x.Select(It.IsAny <PropertyInfo[]>()))
            .Returns(new List <string>(new[] { "Filter", "VersionNumber" }));

            mockProvider = new Mock <IActionDescriptorCollectionProvider>();
            SetupProvider();

            mockUrlHelper        = new Mock <IUrlHelper>();
            mockUrlHelperBuilder = new Mock <IUrlHelperBuilder>();
            mockUrlHelperBuilder
            .Setup(x => x.Build())
            .Returns(mockUrlHelper.Object);

            templatedRequest    = LinkRequestBuilder.CreateWithRouteName(TestRouteName).SetIsTemplated();
            nonTemplatedRequest = LinkRequestBuilder.CreateWithRouteName(TestRouteName);

            sut = new WithTemplatedUrlPathProvider(
                mockSelector.Object,
                mockProvider.Object,
                mockUrlHelperBuilder.Object);
        }
        public static IHypermediaBuilder <TDocument> AddRouteTemplate <TDocument>(this IHypermediaBuilder <TDocument> builder, string rel, string routeName)
            where TDocument : IHypermediaDocument
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (string.IsNullOrWhiteSpace(rel))
            {
                throw new ArgumentException($"Parameter '{nameof(rel)}' must not be null or empty.");
            }

            if (string.IsNullOrWhiteSpace(routeName))
            {
                throw new ArgumentException($"Parameter '{nameof(routeName)}' must not be null or empty.");
            }

            var link = builder.Service.GetLink(LinkRequestBuilder
                                               .CreateWithRouteName(routeName)
                                               .SetIsTemplated());

            builder.AddLink(rel, link);

            return(builder);
        }
        public void GetRouteValuesShouldReturnNullWhenRouteValuesDoesNotExist()
        {
            LinkRequest request = LinkRequestBuilder.CreateWithRouteName(TestRouteName);

            var result = request.GetRouteValues();

            result.Should().BeNull();
        }
        public void Can_Instantiate_New_LinkRequestBuilder()
        {
            //Act
            var builder = new LinkRequestBuilder();

            //Assert
            Assert.That(builder, Is.Not.Null);
        }
Esempio n. 5
0
        public void IsTemplatedShouldReturnFalseWhenRequestContainsAnInvalidTemplatedValue()
        {
            LinkRequest request = LinkRequestBuilder.CreateWithRouteName(TestRouteName).Set(IsTemplatedEnricher.TemplatedKey, "yes");

            var result = request.IsTemplated();

            result.Should().BeFalse();
        }
Esempio n. 6
0
        public IsTemplatedEnricherTests()
        {
            request = LinkRequestBuilder.CreateWithRouteName(TestRouteName);
            context = new LinkFactoryContext();
            writer  = new LinkDataWriter(context);

            sut = new IsTemplatedEnricher();
        }
Esempio n. 7
0
        public void IsTemplatedShouldReturnFalseWhenRequestDoesNotContainAValueForTemplated()
        {
            LinkRequest request = LinkRequestBuilder.CreateWithRouteName(TestRouteName);

            var result = request.IsTemplated();

            result.Should().BeFalse();
        }
        public void GetRouteNameShouldReturnRouteNameWhenRouteNameExists()
        {
            LinkRequest request = LinkRequestBuilder.CreateWithRouteName(TestRouteName);

            var result = request.GetRouteName();

            result.Should().Be(TestRouteName);
        }
Esempio n. 9
0
        public void IsTemplatedShouldReturnCorrectValue(bool isTemplated)
        {
            LinkRequest request = LinkRequestBuilder.CreateWithRouteName(TestRouteName).Set(IsTemplatedEnricher.TemplatedKey, isTemplated);

            var result = request.IsTemplated();

            result.Should().Be(isTemplated);
        }
        public void SetShouldThrowArgumentExceptionWhenKeyIs(string key)
        {
            Func <LinkRequestBuilder> func = () => LinkRequestBuilder.CreateWithRouteName(TestRouteName).Set(key, new object());

            var exception = func.Should().Throw <ArgumentException>().Which;

            exception.Message.Should().Be("Parameter 'key' must not be null or empty.");
            exception.ParamName.Should().BeNull();
        }
        public void CreateWithRouteNameShouldThrowArgumentExceptionWhenRouteNameIs(string routeName)
        {
            Func <LinkRequestBuilder> func = () => LinkRequestBuilder.CreateWithRouteName(routeName);

            var exception = func.Should().Throw <ArgumentException>().Which;

            exception.Message.Should().Be("Parameter 'routeName' must not be null or empty.");
            exception.ParamName.Should().BeNull();
        }
        public void GetRouteValuesShouldReturnRouteValuesWhenRouteValuesExists()
        {
            var         routeValues = new object();
            LinkRequest request     = LinkRequestBuilder.CreateWithRouteName(TestRouteName).SetRouteValuesIfNotNull(routeValues);

            var result = request.GetRouteValues();

            result.Should().Be(routeValues);
        }
        public static LinkRequestBuilder SetIsTemplated(this LinkRequestBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            return(builder.Set(IsTemplatedEnricher.TemplatedKey, true));
        }
        public void SetIfNotNullShouldReturnLinkRequestBuilderThatCanBuildALinkRequestWithExpectedValue(string key, object value)
        {
            var result = LinkRequestBuilder.CreateWithRouteName(TestRouteName).SetIfNotNull(key, value);

            result.Should().NotBeNull();

            var request = result.Build();

            request.Should().NotBeNull();
            request.GetValueOrDefault(key).Should().Be(value);
        }
        public void SetShouldReturnLinkRequestBuilderThatCanBuildALinkRequestWithValueSet()
        {
            var result = LinkRequestBuilder.CreateWithRouteName(TestRouteName).Set(TestKey, TestValue);

            result.Should().NotBeNull();

            var request = result.Build();

            request.Should().NotBeNull();
            request.GetValueOrDefault(TestKey).Should().Be(TestValue);
        }
        public void SetRouteValuesIfNotNullShouldReturnLinkRequestBuilderThatCanBuildALinkRequestWithExpectedValue(object value)
        {
            var result = LinkRequestBuilder.CreateWithRouteName(TestRouteName).SetRouteValuesIfNotNull(value);

            result.Should().NotBeNull();

            var request = result.Build();

            request.Should().NotBeNull();
            request.GetRouteValues().Should().Be(value);
        }
Esempio n. 17
0
        public void SetIsTemplatedShouldReturnLinkRequestBuilderThanCanBuildALinkRequestWithTemplatedValueTrue()
        {
            var result = LinkRequestBuilder.CreateWithRouteName("TestRouteName").SetIsTemplated();

            result.Should().NotBeNull();

            var request = result.Build();

            request.Should().NotBeNull();
            request.IsTemplated().Should().BeTrue();
        }
        public void CreateWithRouteNameShouldReturnLinkRequestBuilderThatCanBuildALinkRequestWithRouteName()
        {
            var result = LinkRequestBuilder.CreateWithRouteName(TestRouteName);

            result.Should().NotBeNull();

            var request = result.Build();

            request.Should().NotBeNull();
            request.GetRouteName().Should().Be(TestRouteName);
        }
        public HttpMethodEnricherTests()
        {
            request = LinkRequestBuilder.CreateWithRouteName(TestRouteName);
            context = new LinkFactoryContext();
            writer  = new LinkDataWriter(context);

            endpointMetadata = new List <object> {
                new HttpMethodMetadata(new string[] { TestHttpMethod })
            };
            attributeRouteInfo = new AttributeRouteInfo {
                Name = TestRouteName
            };

            mockProvider = new Mock <IActionDescriptorCollectionProvider>();
            SetupProvider();

            sut = new HttpMethodEnricher(mockProvider.Object);
        }
 public void Setup()
 {
     _builder = new LinkRequestBuilder();
 }
        public void SetShouldThrowArgumentNullExceptionWhenValueIsNull()
        {
            Func <LinkRequestBuilder> func = () => LinkRequestBuilder.CreateWithRouteName(TestRouteName).Set(TestKey, default);

            func.Should().Throw <ArgumentException>().Which.ParamName.Should().Be("value");
        }