예제 #1
0
        public void Get_WithInclude_ReturnNavigationProperty()
        {
            var db = SetupHelper.BuildTestContext();

            db.Authors.Include("abc");

            //arrange
            var controller = new AutoAPI.RESTAPIController(SetupHelper.BuildTestContext(), null, null);
            var routeInfo  = new RouteInfo()
            {
                Entity            = entityList.Where(x => x.Route == "/api/authors").First(),
                FilterExpression  = "Id == @0",
                FilterValues      = new object[] { 1 },
                IsPageResult      = true,
                IncludeExpression = new List <string>()
                {
                    "Books"
                },
                Take = 1,
                Skip = 0,
                Page = 1
            };

            //act
            var result      = (OkObjectResult)controller.Get(routeInfo);
            var pagedResult = (PagedResult)result.Value;

            //assert

            Assert.Equal(200, result.StatusCode.Value);
            Assert.Equal(1, ((Author)pagedResult.Items.First()).Id);
            Assert.Equal(2, ((Author)pagedResult.Items.First()).Books.Count);
            Assert.Equal(2, pagedResult.Total);
        }
예제 #2
0
        public void Get_WithFilterAndPagedResult_ReturnPaged()
        {
            //arrange
            var controller = new AutoAPI.RESTAPIController(SetupHelper.BuildTestContext(), null, null);
            var routeInfo  = new RouteInfo()
            {
                Entity           = entityList.Where(x => x.Route == "/api/authors").First(),
                FilterExpression = "Id == @0",
                FilterValues     = new object[] { 1 },
                IsPageResult     = true,
                Take             = 1,
                Skip             = 0,
                Page             = 1
            };

            //act
            var result      = (OkObjectResult)controller.Get(routeInfo);
            var pagedResult = (PagedResult)result.Value;

            //assert

            Assert.Equal(200, result.StatusCode.Value);
            Assert.Equal(1, ((Author)pagedResult.Items.First()).Id);
            Assert.Equal(2, pagedResult.Total);
        }
예제 #3
0
        public void Delete_WithInvalidID_ReturnNotFound()
        {
            //arrange
            var controller = new AutoAPI.RESTAPIController(SetupHelper.BuildTestContext(), null, null);
            var routeInfo  = new RouteInfo()
            {
                Entity = entityList.Where(x => x.Route == "/api/authors").First(), Id = "100"
            };

            //act
            var result = (NotFoundObjectResult)controller.Delete(routeInfo);

            //assert
            Assert.Equal(404, result.StatusCode);
        }
예제 #4
0
        public void Get_WithCount_ReturnCount()
        {
            //arrange
            var controller = new AutoAPI.RESTAPIController(SetupHelper.BuildTestContext(), null, null);
            var routeInfo  = new RouteInfo()
            {
                Entity  = entityList.Where(x => x.Route == "/api/authors").First(),
                IsCount = true
            };

            //act
            var result = (OkObjectResult)controller.Get(routeInfo);

            //assert
            Assert.Equal(200, result.StatusCode.Value);
            Assert.Equal(2, (int)result.Value);
        }
예제 #5
0
        public void Get_WithId_ReturnOne()
        {
            //arrange
            var controller = new AutoAPI.RESTAPIController(SetupHelper.BuildTestContext(), null, null);
            var routeInfo  = new RouteInfo()
            {
                Entity = entityList.Where(x => x.Route == "/api/authors").First(), Id = "1"
            };

            //act
            var result = (OkObjectResult)controller.Get(routeInfo);

            //assert
            Assert.Equal(200, result.StatusCode.Value);
            Assert.Equal(1, ((Author)result.Value).Id);
            Assert.Equal("Ernest Hemingway", ((Author)result.Value).Name);
        }
예제 #6
0
        public void Delete_WithIdID_Deletes()
        {
            //arrange
            var testContext = SetupHelper.BuildTestContext();
            var controller  = new AutoAPI.RESTAPIController(testContext, null, null);
            var routeInfo   = new RouteInfo()
            {
                Entity = entityList.Where(x => x.Route == "/api/authors").First(), Id = "1"
            };

            //act
            var result = (OkObjectResult)controller.Delete(routeInfo);

            //assert
            Assert.Equal(200, result.StatusCode);
            Assert.Null(testContext.Authors.Find(1));
        }
예제 #7
0
        public void Get_WithFilterPagingAndSort_ReturnOne()
        {
            //arrange
            var controller = new AutoAPI.RESTAPIController(SetupHelper.BuildTestContext(), null, null);
            var routeInfo  = new RouteInfo()
            {
                Entity           = entityList.Where(x => x.Route == "/api/authors").First(),
                FilterExpression = "Id == @0",
                FilterValues     = new object[] { 1 },
                SortExpression   = "Name desc",
                Skip             = 0,
                Take             = 1
            };

            //act
            var result = (OkObjectResult)controller.Get(routeInfo);

            //assert
            Assert.Equal(200, result.StatusCode.Value);
            Assert.Equal(1, ((Author)((List <object>)result.Value).First()).Id);
        }