Beispiel #1
0
        public void Edit_POST_GivenModelStateIsValid_ShouldCallUpdate()
        {
            //---------------Set up test pack-------------------
            var viewModel    = Substitute.For <CarPartsViewModel>();
            var repository   = Substitute.For <ICarPartRepository>();
            var mapperEngine = Substitute.For <IMappingEngine>();
            var carPart1     = new CarPartBuilder().WithNewId().Build();
            var carPart      = new CarPartBuilder().WithNewId().Build();

            mapperEngine.Map <CarPart>(viewModel).Returns(carPart);
            repository.GetCarPartBy(viewModel.CarPartId).Returns(carPart);
            repository.Update(carPart, carPart1);
            var carPartsController = CreateBuilder()
                                     .WithCarPartRepository(repository)
                                     .WithMappingEngine(mapperEngine)
                                     .Build();

            //---------------Assert Precondition----------------
            Assert.IsTrue(carPartsController.ModelState.IsValid);
            //---------------Execute Test ----------------------
            var result = carPartsController.Edit(viewModel);

            //---------------Test Result -----------------------
            repository.Received().Update(carPart, carPart1);
        }
Beispiel #2
0
        public void Edit_POST_GivenModelStateIsValid_ShouldRedirectToRouteResult()
        {
            //---------------Set up test pack-------------------
            var viewModel    = Substitute.For <CarPartsViewModel>();
            var repository   = Substitute.For <ICarPartRepository>();
            var mapperEngine = Substitute.For <IMappingEngine>();
            var carPart1     = new CarPartBuilder().WithNewId().Build();
            var carPart      = new CarPartBuilder().WithNewId().Build();

            mapperEngine.Map <CarPart>(viewModel).Returns(carPart);
            repository.GetCarPartBy(viewModel.CarPartId).Returns(carPart);
            repository.Update(carPart, carPart1);
            var carPartsController = CreateBuilder()
                                     .WithCarPartRepository(repository)
                                     .WithMappingEngine(mapperEngine)
                                     .Build();

            //---------------Assert Precondition----------------
            Assert.IsTrue(carPartsController.ModelState.IsValid);
            //---------------Execute Test ----------------------
            var result = carPartsController.Edit(viewModel) as RedirectToRouteResult;

            //---------------Test Result -----------------------
            Assert.IsNotNull(result);
            var routeValue = result.RouteValues["action"];

            Assert.AreEqual("Index", routeValue);
        }
Beispiel #3
0
        public void Create_POST_ShouldReturnToAction()
        {//---------------Set up test pack-------------------
            var viewModel    = Substitute.For <CarPartsViewModel>();
            var repository   = Substitute.For <ICarPartRepository>();
            var mapperEngine = Substitute.For <IMappingEngine>();
            var car          = new CarPartBuilder().WithNewId().Build();

            mapperEngine.Map <CarPart>(viewModel).Returns(car);
            var carPartsController = CreateBuilder()
                                     .WithCarPartRepository(repository)
                                     .WithMappingEngine(mapperEngine)
                                     .Build();

            repository.Save(car);
            //---------------Assert Precondition----------------
            Assert.IsTrue(carPartsController.ModelState.IsValid);
            //---------------Execute Test ----------------------
            var result = carPartsController.Create(viewModel) as RedirectToRouteResult;

            //---------------Test Result -----------------------
            Assert.IsNotNull(result);
            var actionName = result.RouteValues["action"];

            Assert.AreEqual("Index", actionName);
        }
Beispiel #4
0
        public void Index_GivenAllUsersReturnedFromRepository_ShouldReturnViewModel()
        {
            //---------------Set up test pack-------------------
            var car      = new CarBuilder().WithNewId().Build();
            var part     = new PartBuilder().WithNewId().Build();
            var carPart  = new CarPartBuilder().WithNewId().WithCar(car).WithPart(part).Build();
            var carParts = new List <CarPart> {
                carPart
            };
            var repository    = Substitute.For <ICarPartRepository>();
            var mappingEngine = ResolveMapper();

            repository.GetCarPart().Returns(carParts);

            var partController = CreateBuilder()
                                 .WithCarPartRepository(repository)
                                 .WithMappingEngine(mappingEngine)
                                 .Build();
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var result = partController.Index() as ViewResult;

            //---------------Test Result -----------------------
            Assert.IsNotNull(result);
            var model = result.Model as List <CarPartsIndexViewModel>;

            Assert.IsInstanceOf <List <CarPartsIndexViewModel> >(model);
            Assert.AreEqual(carPart.CarPartId, model.FirstOrDefault().CarPartId);
            Assert.AreEqual(carPart.CarId, model.FirstOrDefault().CarId);
            Assert.AreEqual(carPart.PartId, model.FirstOrDefault().PartId);
            Assert.AreEqual(carPart.Quantity, model.FirstOrDefault().Quantity);
        }
Beispiel #5
0
        public void Save_GivenNewCarPart_ShouldSave()
        {
            //---------------Set up test pack-------------------
            var car            = new CarPartBuilder().WithNewId().BuildSaved();
            var userRepository = new CarPartRepository();

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            userRepository.Save(car);
            //---------------Test Result -----------------------
        }
Beispiel #6
0
        public void Delete_GivenExistingCarPart_ShouldDeleteAndSave()
        {
            //---------------Set up test pack-------------------
            var carPart        = new CarPartBuilder().WithNewId().BuildSaved();
            var carParts       = Broker.GetBusinessObjectCollection <CarPart>("");
            var userRepository = new CarPartRepository();

            Assert.AreEqual(1, carParts.Count);
            //---------------Execute Test ----------------------
            userRepository.Delete(carPart);
            //---------------Test Result -----------------------
            Assert.AreEqual(0, carParts.Count);
        }
Beispiel #7
0
        public void Update_GivenExistingCarPart_ShouldUpdateAndSave()
        {
            //---------------Set up test pack-------------------
            var existingPart   = new CarPartBuilder().WithNewId().BuildSaved();
            var userRepository = new CarPartRepository();

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            userRepository.Update(existingPart, existingPart);
            var parts = Broker.GetBusinessObjectCollection <CarPart>("");

            //---------------Test Result -----------------------
            Assert.AreEqual(1, parts.Count);
        }
Beispiel #8
0
        public void GetParts_GivenThreeCarParts_ShouldReturnCarParts()
        {
            //---------------Set up test pack-------------------
            var part1          = new CarPartBuilder().WithNewId().BuildSaved();
            var part2          = new CarPartBuilder().WithNewId().BuildSaved();
            var part3          = new CarPartBuilder().WithNewId().BuildSaved();
            var userRepository = new CarPartRepository();
            var cars           = new List <CarPart> {
                part1, part2, part3
            };
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var result = userRepository.GetCarPart();

            //---------------Test Result -----------------------
            Assert.AreEqual(result.Count, cars.Count);
        }
Beispiel #9
0
        public void Edit_POST_GivenModelStateIsInValid_ShouldReturnView()
        {
            //---------------Set up test pack-------------------
            var viewModel      = Substitute.For <CarPartsViewModel>();
            var repository     = Substitute.For <ICarPartRepository>();
            var mapperEngine   = Substitute.For <IMappingEngine>();
            var partRepository = Substitute.For <IPartRepository>();
            var carRepository  = Substitute.For <ICarRepository>();
            var part           = new PartBuilder().Build();
            var car            = new CarBuilder().Build();
            var parts          = new List <TestHabanero.BO.Part> {
                part
            };
            var cars = new List <Car> {
                car
            };

            partRepository.GetParts().Returns(parts);
            carRepository.GetCars().Returns(cars);
            var carPart1 = new CarPartBuilder().WithNewId().Build();
            var carPart  = new CarPartBuilder().WithNewId().Build();

            mapperEngine.Map <CarPart>(viewModel).Returns(carPart);
            repository.GetCarPartBy(viewModel.CarPartId).Returns(carPart);
            repository.Update(carPart, carPart1);
            var carPartsController = CreateBuilder()
                                     .WithCarPartRepository(repository)
                                     .WithMappingEngine(mapperEngine)
                                     .WithCarRepository(carRepository)
                                     .WithPartRepository(partRepository)
                                     .Build();

            carPartsController.ModelState.AddModelError("IdNotValid", "Car Id is not valid");
            //---------------Assert Precondition----------------
            Assert.IsFalse(carPartsController.ModelState.IsValid);
            //---------------Execute Test ----------------------
            var result = carPartsController.Edit(viewModel) as ViewResult;

            //---------------Test Result -----------------------
            Assert.IsNotNull(result);
            var model = result.Model as CarPartsViewModel;

            Assert.IsInstanceOf <CarPartsViewModel>(model);
            Assert.AreEqual(viewModel, model);
        }
Beispiel #10
0
        public void GetCarPartBy_GivenCarPartId_ShouldReturnCarPart()
        {
            //---------------Set up test pack-------------------
            var part           = new CarPartBuilder().WithNewId().BuildSaved();
            var userRepository = new CarPartRepository();
            var parts          = new List <CarPart> {
                part
            };
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var result = userRepository.GetCarPartBy(part.CarPartId);

            //---------------Test Result -----------------------
            Assert.AreEqual(result.CarPartId, parts.FirstOrDefault().CarPartId);
            var actual = parts.First();

            Assert.AreSame(part, actual);
        }
Beispiel #11
0
        public void GetCarParts_GivenOneCarPart_ShouldReturnCarPart()
        {
            //---------------Set up test pack-------------------
            var car            = new CarPartBuilder().WithNewId().BuildSaved();
            var userRepository = new CarPartRepository();
            var cars           = new List <CarPart> {
                car
            };
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var result = userRepository.GetCarPart();

            //---------------Test Result -----------------------
            Assert.AreEqual(result.Count, cars.Count);
            var actual = cars.First();

            Assert.AreSame(car, actual);
        }
Beispiel #12
0
        public void Edit_Get_ShouldReturnViewWithCarViewModel()
        {
            //---------------Set up test pack-------------------
            var car               = new CarBuilder().WithNewId().Build();
            var part              = new PartBuilder().WithNewId().Build();
            var carPart           = new CarPartBuilder().WithNewId().WithCar(car).WithPart(part).Build();
            var id                = carPart.CarPartId;
            var carPartRepository = Substitute.For <ICarPartRepository>();
            var partRepository    = Substitute.For <IPartRepository>();
            var carRepository     = Substitute.For <ICarRepository>();
            var mapper            = Substitute.For <IMappingEngine>();
            var viewModel         = Substitute.For <CarPartsViewModel>();

            carPartRepository.GetCarPartBy(id).Returns(carPart);
            var parts = new List <TestHabanero.BO.Part> {
                part
            };
            var cars = new List <Car> {
                car
            };

            partRepository.GetParts().Returns(parts);
            carRepository.GetCars().Returns(cars);
            mapper.Map <CarPartsViewModel>(carPart).Returns(viewModel);

            var carController = CreateBuilder()
                                .WithCarPartRepository(carPartRepository)
                                .WithCarRepository(carRepository)
                                .WithPartRepository(partRepository)
                                .WithMappingEngine(mapper)
                                .Build();

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var result = carController.Edit(id) as ViewResult;

            //---------------Test Result -----------------------
            Assert.IsNotNull(result);
            var model = result.Model as CarPartsViewModel;

            Assert.IsNotNull(model);
            Assert.IsInstanceOf <CarPartsViewModel>(model);
        }
Beispiel #13
0
        public void Delete_GivenValidCarId_ShouldCallDelete()
        {
            //---------------Set up test pack-------------------
            var car           = new CarPartBuilder().Build();
            var id            = car.CarPartId;
            var carRepository = Substitute.For <ICarPartRepository>();

            carRepository.GetCarPartBy(id).Returns(car);
            var carController = CreateBuilder()
                                .WithCarPartRepository(carRepository)
                                .Build();
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var result = carController.Delete(id);

            //---------------Test Result -----------------------
            carRepository.Received().Delete(car);
        }
Beispiel #14
0
        public void Edit_Get_GivenValidCarId_ShouldCallGetCarByIdFromRepo()
        {
            //---------------Set up test pack-------------------
            var car     = new CarBuilder().WithNewId().Build();
            var part    = new PartBuilder().WithNewId().Build();
            var carPart = new CarPartBuilder().WithNewId().WithCar(car).WithPart(part).Build();
            var id      = carPart.CarPartId;


            var carPartRepository = Substitute.For <ICarPartRepository>();
            var partRepository    = Substitute.For <IPartRepository>();
            var carRepository     = Substitute.For <ICarRepository>();
            var mapper            = ResolveMapper();

            carPartRepository.GetCarPartBy(id).Returns(carPart);

            var parts = new List <TestHabanero.BO.Part> {
                part
            };
            var cars = new List <Car> {
                car
            };


            partRepository.GetParts().Returns(parts);
            carRepository.GetCars().Returns(cars);


            var carController = CreateBuilder()
                                .WithCarPartRepository(carPartRepository)
                                .WithCarRepository(carRepository)
                                .WithPartRepository(partRepository)
                                .WithMappingEngine(mapper)
                                .Build();

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var result = carController.Edit(id);

            //---------------Test Result -----------------------
            carPartRepository.Received().GetCarPartBy(id);
        }
Beispiel #15
0
        public void Delete_GivenValidCarId_ShouldRedirectToIndex()
        {
            //---------------Set up test pack-------------------
            var car           = new CarPartBuilder().Build();
            var id            = car.CarPartId;
            var carRepository = Substitute.For <ICarPartRepository>();

            carRepository.GetCarPartBy(id).Returns(car);
            var carController = CreateBuilder()
                                .WithCarPartRepository(carRepository)
                                .Build();
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var result = carController.Delete(id) as RedirectToRouteResult;

            //---------------Test Result -----------------------
            Assert.IsNotNull(result);
            var actionName = result.RouteValues["action"];

            Assert.AreEqual("Index", actionName);
        }
Beispiel #16
0
        public void Index_ShouldCallMappingEngine()
        {
            //---------------Set up test pack-------------------
            var part  = new CarPartBuilder().WithNewId().Build();
            var parts = new List <CarPart> {
                part
            };
            var partRepository = Substitute.For <ICarPartRepository>();

            partRepository.GetCarPart().Returns(parts);
            var mappingEngine = Substitute.For <IMappingEngine>();

            var partController = CreateBuilder()
                                 .WithCarPartRepository(partRepository)
                                 .WithMappingEngine(mappingEngine)
                                 .Build();
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var results = partController.Index() as ViewResult;

            //---------------Test Result -----------------------
            mappingEngine.Received().Map <List <CarPart>, List <CarPartsIndexViewModel> >(parts);
        }