示例#1
0
        public async Task get_model_throw_not_found()
        {
            var controller   = new BaseControllerMock(_db);
            var actionResult = await controller.GetItemByIdAsync(8);

            Assert.IsType <NotFoundResult>(actionResult.Result);
        }
示例#2
0
        public async Task get_models_with_range_throw_conversion_exception()
        {
            var controller = new BaseControllerMock(_db);

            var actionResult = await controller.GetItemsAsync(new QueryParams { { "Range", "toto-tata" } });

            Assert.Equal((int)System.Net.HttpStatusCode.BadRequest, (actionResult.Result as ObjectResult).StatusCode);
        }
示例#3
0
        public async Task delete_model_throw_not_found()
        {
            var db         = BaseDbContextMock.GetDbContext();
            var controller = new BaseControllerMock(db);

            var actionResult = await controller.DeleteItemAsync(8);

            Assert.IsType <NotFoundResult>(actionResult);
        }
示例#4
0
        public async Task get_models_with_range_throw_range_exception()
        {
            var controller   = new BaseControllerMock(_db);
            var actionResult = await controller.GetItemsAsync(new QueryParams { { "Range", "0-26" } });

            var badRequestResult = Assert.IsType <BadRequestObjectResult>(actionResult.Result);

            Assert.IsType <RangeException>(badRequestResult.Value);
        }
示例#5
0
        public async Task get_models_with_search_throw_null_reference_exception()
        {
            var controller   = new BaseControllerMock(_db);
            var actionResult = await controller.GetItemsAsync(new QueryParams { { "toto", "String1" } });

            var badRequestResult = Assert.IsType <BadRequestObjectResult>(actionResult.Result);

            Assert.IsType <NullReferenceException>(badRequestResult.Value);
        }
示例#6
0
        public async Task get_models_with_search_throw_search_exception()
        {
            var controller   = new BaseControllerMock(_db);
            var actionResult = await controller.GetItemsAsync(new QueryParams { { "Integer", "1*" } });

            var badRequestResult = Assert.IsType <BadRequestObjectResult>(actionResult.Result);

            Assert.IsType <SearchException>(badRequestResult.Value);
        }
示例#7
0
        public async Task get_models_with_fork_throw_fork_exception()
        {
            var controller   = new BaseControllerMock(_db);
            var actionResult = await controller.GetItemsAsync(new QueryParams { { "String", "[toto,tata]" } });

            var badRequestResult = Assert.IsType <BadRequestObjectResult>(actionResult.Result);

            Assert.IsType <ForkException>(badRequestResult.Value);
        }
示例#8
0
        public async Task put_model_throw_bad_request()
        {
            var db         = BaseDbContextMock.GetDbContext();
            var controller = new BaseControllerMock(db);

            var item         = db.Models.Find(1);
            var actionResult = await controller.PutItemAsync(item, 3);

            Assert.IsType <BadRequestResult>(actionResult);
        }
示例#9
0
        public async Task get_models_with_sort()
        {
            var controller   = new BaseControllerMock(_db);
            var actionResult = await controller.GetItemsAsync(new QueryParams { { "Sort", "String" } });

            var result = ((IEnumerable <ModelTest>)(actionResult.Result as ObjectResult).Value);

            Assert.Equal((int)System.Net.HttpStatusCode.OK, (actionResult.Result as ObjectResult).StatusCode);
            Assert.True(result.SequenceEqual(_db.Models.OrderBy(x => x.String).ToList()));
        }
示例#10
0
        public async Task get_model_with_mapping()
        {
            var controller   = new BaseControllerMock(_db);
            var actionResult = await controller.GetItemByIdAsync(1, true);

            var result = ((ModelTest)(actionResult.Result as ObjectResult).Value);

            Assert.Equal((int)System.Net.HttpStatusCode.OK, (actionResult.Result as ObjectResult).StatusCode);
            Assert.Equal(_db.Models.Where(x => x.Id == 1).Include(x => x.Parent).First(), result);
        }
示例#11
0
        public async Task get_models_with_fork()
        {
            var controller   = new BaseControllerMock(_db);
            var actionResult = await controller.GetItemsAsync(new QueryParams { { "Integer", "[2,3]" } });

            var result = ((IEnumerable <ModelTest>)(actionResult.Result as ObjectResult).Value);

            Assert.Equal((int)System.Net.HttpStatusCode.OK, (actionResult.Result as ObjectResult).StatusCode);
            Assert.Equal(_db.Models.Where(x => x.Integer >= 2 && x.Integer <= 3).ToList().Count(), result.Count());
        }
示例#12
0
        public async Task get_models_with_search()
        {
            var controller = new BaseControllerMock(_db);

            var actionResult = await controller.GetItemsAsync(new QueryParams { { "String", "String*" } });

            var result = ((IEnumerable <ModelTest>)(actionResult.Result as ObjectResult).Value);

            Assert.Equal((int)System.Net.HttpStatusCode.OK, (actionResult.Result as ObjectResult).StatusCode);
            Assert.Equal(_db.Models.Where(x => x.String.Contains("String")).ToList().Count(), result.Count());
        }
示例#13
0
        public async Task get_models()
        {
            var controller = new BaseControllerMock(_db);

            var actionResult = await controller.GetItemsAsync(new QueryParams { });

            var result = ((IEnumerable <ModelTest>)(actionResult.Result as ObjectResult).Value);

            Assert.Equal((int)System.Net.HttpStatusCode.OK, (actionResult.Result as ObjectResult).StatusCode);
            Assert.Equal(_db.Models.ToList().Count(), result.Count());
        }
示例#14
0
        public async Task delete_model()
        {
            var db         = BaseDbContextMock.GetDbContext();
            var controller = new BaseControllerMock(db);

            var actionResult = await controller.DeleteItemAsync(6);

            var ent = await db.Models.Where(x => x.Id == 6).FirstAsync();

            Assert.IsType <OkResult>(actionResult);
            Assert.NotNull(ent.DeletedAt);
        }
示例#15
0
        public async Task put_model()
        {
            var db         = BaseDbContextMock.GetDbContext();
            var controller = new BaseControllerMock(db);

            var item = await db.Models.FindAsync(1);

            item.ParentModelId = 2;
            var actionResult = await controller.PutItemAsync(item, item.Id);

            Assert.IsType <NoContentResult>(actionResult);
            Assert.Equal(await db.Models.FindAsync(1), item);
        }
        public BaseControllerTest()
        {
            var httpContext = new DefaultHttpContext();

            httpContext.User = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, "1"),
            }));
            _controller = new BaseControllerMock();
            _controller.ControllerContext = new ControllerContext()
            {
                HttpContext = httpContext
            };
        }
示例#17
0
        public async Task post_model_throw_bad_request()
        {
            var db         = BaseDbContextMock.GetDbContext();
            var controller = new BaseControllerMock(db);

            controller.ModelState.AddModelError("String", "Required");
            controller.ModelState.AddModelError("Integer", "Required");

            var item         = new ModelTest();
            var actionResult = await controller.PostItemAsync(item);

            Assert.IsType <BadRequestObjectResult>(actionResult);
            Assert.Equal((int)System.Net.HttpStatusCode.BadRequest, (actionResult as ObjectResult).StatusCode);
            Assert.NotNull((actionResult as ObjectResult).Value);
        }
示例#18
0
        public async Task post_model()
        {
            var db         = BaseDbContextMock.GetDbContext();
            var controller = new BaseControllerMock(db);

            var item = new ModelTest()
            {
                String = "TestPost", Integer = 1
            };
            var actionResult = await controller.PostItemAsync(item);

            var ent = await db.Models.Where(x => x.String == "TestPost").FirstAsync();

            Assert.IsType <CreatedResult>(actionResult);
            Assert.NotNull(ent);
        }
示例#19
0
        public async Task get_models_with_fields()
        {
            var controller   = new BaseControllerMock(_db);
            var actionResult = await controller.GetItemsAsync(new QueryParams { { "Field", "String,Integer" } });

            var result = ((IEnumerable <object>)(actionResult.Result as ObjectResult).Value);

            Assert.Equal((int)System.Net.HttpStatusCode.OK, (actionResult.Result as ObjectResult).StatusCode);

            foreach (dynamic data in result)
            {
                var dataDictionary = (IDictionary <string, object>)data;

                Assert.True(dataDictionary.ContainsKey("String"));
                Assert.True(dataDictionary.ContainsKey("Integer"));
                Assert.False(dataDictionary.ContainsKey("Date"));
                Assert.False(dataDictionary.ContainsKey("Id"));
                Assert.False(dataDictionary.ContainsKey("Double"));
                Assert.False(dataDictionary.ContainsKey("Decimal"));
            }
        }