Esempio n. 1
0
        public async Task GetItemFound()
        {
            var item = new TestEntity()
            {
                Id = 123, Name = "Uom123"
            };
            var mockRepository = new Mock <IReadRepository <TestEntity> >(MockBehavior.Strict);

            mockRepository.Setup(r => r.GetAsync(123)).ReturnsAsync(item);
            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>(MockBehavior.Strict).Object;

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

            Assert.NotNull(actionResult);
            var dataResult = actionResult.Value as TestEntity;

            Assert.NotNull(dataResult);
            Assert.AreEqual(123, dataResult.Id);
            Assert.AreEqual("Uom123", dataResult.Name);
        }
Esempio n. 2
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));
        }
Esempio n. 3
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);
        }
Esempio n. 4
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);
        }
Esempio n. 5
0
        public async Task GetItemNotFound()
        {
            var mockRepository = new Mock <IReadRepository <TestEntity> >(MockBehavior.Strict);

            mockRepository.Setup(r => r.GetAsync(123)).ReturnsAsync(null as TestEntity);
            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>(MockBehavior.Strict).Object;

            var controller =
                new ReadController <TestEntity>(mockRepository.Object, pageLinksBuilder)
            {
                ControllerContext = context
            };
            var result = await controller.GetItemAsync(123) as NotFoundResult;

            Assert.NotNull(result);
        }
Esempio n. 6
0
        public void GetItemRepoThrows()
        {
            var mockRepository = new Mock <IReadRepository <TestEntity> >(MockBehavior.Strict);

            mockRepository.Setup(r => r.GetAsync(123)).ThrowsAsync(new IOException());

            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>(MockBehavior.Strict).Object;

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

            Assert.ThrowsAsync <IOException>(async() => await controller.GetItemAsync(123));
        }