예제 #1
0
        public void GetPageLinksBuilderThrows()
        {
            var page = new Page <TestEntity>("", 40, 0, 10, new List <TestEntity>());

            var mockRepository = new Mock <IReadRepository <TestEntity> >(MockBehavior.Strict);

            mockRepository.Setup(r => r.GetAsync("", 0, 20)).ReturnsAsync(page);

            var supportedMedia = new LrpSupportedMedia();

            var context = new ControllerContext {
                HttpContext = new DefaultHttpContext()
            };

            context.HttpContext.Request.Headers["Accept"] = "application/vnd.lrp.v1+json";

            var pageLinksBuilder = new Mock <IPageLinksBuilder>();

            pageLinksBuilder.Setup(p => p.Build(page, context.HttpContext.Request)).Throws(new Exception());

            var controller =
                new ReadController <TestEntity>(mockRepository.Object, pageLinksBuilder.Object)
            {
                ControllerContext = context
            };

            Assert.ThrowsAsync <Exception>(async() => await controller.GetPageAsync("", 0, 20));
        }
예제 #2
0
        public async Task GetPageTakeLessThan1()
        {
            var mockRepository = new Mock <IReadRepository <TestEntity> >(MockBehavior.Strict).Object;

            var supportedMedia = new LrpSupportedMedia();

            var pageLinksBuilder = new Mock <IPageLinksBuilder>(MockBehavior.Strict).Object;

            var controller = new ReadController <TestEntity>(mockRepository, pageLinksBuilder);

            var actionResult = await controller.GetPageAsync("", 0, 0) as BadRequestObjectResult;

            Assert.NotNull(actionResult);
            var message = actionResult.Value as string;

            Assert.NotNull(message);
            Assert.AreEqual(ReadController <TestEntity> .BadTakeMessage, actionResult.Value);
        }
예제 #3
0
        public async Task GetPageSucceeds()
        {
            var page = new Page <TestEntity>("", 40, 0, 10, new List <TestEntity> {
                new TestEntity {
                    Id = 1001, Name = "TheEntity"
                }
            });

            var mockRepository = new Mock <IReadRepository <TestEntity> >(MockBehavior.Strict);

            mockRepository.Setup(r => r.GetAsync("", 0, 20)).ReturnsAsync(page);

            var supportedMedia = new LrpSupportedMedia();

            var context = new ControllerContext {
                HttpContext = new DefaultHttpContext()
            };

            context.HttpContext.Request.Headers["Accept"] = "application/vnd.lrp.v1+json";

            var pageLinksBuilder = new Mock <IPageLinksBuilder>();

            pageLinksBuilder.Setup(p => p.Build(page, context.HttpContext.Request)).Returns("daLinks");

            var controller =
                new ReadController <TestEntity>(mockRepository.Object, pageLinksBuilder.Object)
            {
                ControllerContext = context
            };
            var actionResult = await controller.GetPageAsync("", 0, 20) as OkObjectResult;

            Assert.NotNull(actionResult);
            var items = actionResult.Value as ImmutableList <TestEntity>;

            Assert.NotNull(items);
            Assert.AreEqual(1, items.Count);
            Assert.AreEqual(1001, items[0].Id);
            Assert.AreEqual("TheEntity", items[0].Name);
        }