예제 #1
0
        public async Task EditGet_ReturnsViewResult_WhenAluguerExists()
        {
            var controller = new AlugueresController(_context);

            var result = await controller.Edit(1);

            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <Aluguer>(
                viewResult.ViewData.Model);

            Assert.NotNull(model);

            // Estes testes deveriam estar separados em diferentes métodos de teste!
            var viewdata1 = controller.ViewData["CarroId"];

            Assert.NotNull(viewdata1);
            Assert.IsType <SelectList>(viewdata1);
            Assert.True((viewdata1 as SelectList).Count() > 0);

            var viewdata2 = controller.ViewData["UserId"];

            Assert.NotNull(viewdata2);
            Assert.IsType <SelectList>(viewdata2);
            Assert.True((viewdata2 as SelectList).Count() > 0);
        }
예제 #2
0
        public async Task EditPost_ReturnsNotFoundResult_WhenAluguerDoesntExist()
        {
            var controller = new AlugueresController(_context);

            var result = await controller.Edit(5, new Aluguer { AluguerId = 5 });

            Assert.IsType <NotFoundResult>(result);
        }
예제 #3
0
        public async Task EditGet_ReturnsNotFoundResult_WhenIdIsNull()
        {
            var controller = new AlugueresController(_context);

            var result = await controller.Edit(null);

            Assert.IsType <NotFoundResult>(result);
        }
예제 #4
0
        public async Task EditPost_ReturnsNotFoundResult_WhenIdDoesntMatchAluguerId()
        {
            var     controller = new AlugueresController(_context);
            Aluguer aluguer    = _context.Aluguer.FirstOrDefault(a => a.AluguerId == 1);

            var result = await controller.Edit(2, aluguer);

            Assert.IsType <NotFoundResult>(result);
        }
예제 #5
0
        public async Task EditPost_ReturnsRedirectToActionResult_WhenAluguerIsUpdated()
        {
            var     controller = new AlugueresController(_context);
            Aluguer aluguer    = _context.Aluguer.FirstOrDefault(a => a.AluguerId == 1);

            aluguer.LocalDeEntrega += "N";

            var result = await controller.Edit(1, aluguer);

            Assert.IsType <RedirectToActionResult>(result);
            Aluguer aluguerUpdated = _context.Aluguer.FirstOrDefault(a => a.AluguerId == 1);

            Assert.Equal(aluguer.LocalDeEntrega, aluguerUpdated.LocalDeEntrega);
        }
예제 #6
0
        public async Task EditPost_ReturnsViewResult_WhenModelStateIsInValid()
        {
            var     controller = new AlugueresController(_context);
            Aluguer aluguer    = _context.Aluguer.FirstOrDefault(a => a.AluguerId == 1);

            controller.ModelState.AddModelError("Erro", "Erro adicionado para teste");

            var result = await controller.Edit(1, aluguer);

            Assert.IsType <ViewResult>(result);

            // Estes testes deveriam estar separados em diferentes métodos de teste!
            var viewdata1 = controller.ViewData["CarroId"];

            Assert.NotNull(viewdata1);
            Assert.IsType <SelectList>(viewdata1);
            Assert.True((viewdata1 as SelectList).Count() > 0);

            var viewdata2 = controller.ViewData["UserId"];

            Assert.NotNull(viewdata2);
            Assert.IsType <SelectList>(viewdata2);
            Assert.True((viewdata2 as SelectList).Count() > 0);
        }