public void HateoasSelfUriProvider_Should_GenerateEndpoint_BasedOnRequest()
        {
            // Arrange
            Guid itemId = Guid.NewGuid();
            Expression <Func <BookViewModel, object> > expression = x => x.Id;
            var selfPolicy = new InMemoryPolicyRepository.SelfPolicy(typeof(BookViewModel), expression, "GetById")
            {
                Method = HttpMethods.Get
            };

            var helpers = TestHelper.GetHttpContextHelpers(
                "/api/book",
                new Dictionary <string, object>
            {
                { "controller", "book" },
                { "action", "get" }
            });

            var uriProvider = new HateoasSelfUriProvider(helpers.ContextAccessor, helpers.LinkGenerator, helpers.ActionDescriptor);

            // Act
            var results = uriProvider.GenerateEndpoint(selfPolicy, itemId);

            // Assert
            results.Should().NotBeNull();
            results.Method.Should().Be(HttpMethods.Get);
            results.Uri.Should().EndWith($"/api/book/{itemId}");
        }
Пример #2
0
        public void InMemoryPolicyRepository_SelfPolicy_Should_SetNameAsTjeCallerMemberName()
        {
            // Arrange
            Expression <Func <object, string> > expression = o => o.ToString();

            // Act
            var policy = new InMemoryPolicyRepository.SelfPolicy(typeof(object), expression);

            // Assert
            policy.Name.Should().Be(nameof(InMemoryPolicyRepository_SelfPolicy_Should_SetNameAsTjeCallerMemberName));
        }