public void GetAll_GivenOneItemHasBeenBorrowed_ShouldReturnThatBorrowedItem() { //---------------Set up test pack------------------- var lending = new LendingBuilder().WithRandomProps().Build(); var dbSet = CreateFakeDbSet(lending); var lendingLibraryDbContext = CreateLendingLibraryDbContext(dbSet); var controller = CreateLendingController(lendingLibraryDbContext); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- var results = controller.GetAll(); //---------------Test Result ----------------------- Assert.AreEqual(1, results.Count()); }
public void Edit_ShouldCallGetAllPeopleFromPersonRepo() { //---------------Set up test pack------------------- var personRepository = Substitute.For<IPersonRepository>(); var lending = new LendingBuilder().WithRandomGeneratedId().Build(); var id = lending.LedingId; var mappingEngine = _container.Resolve<IMappingEngine>(); var lendingRepository = Substitute.For<ILendingRepository>(); lendingRepository.GetById(id).Returns(lending); var controller = CreateLendingController(lendingRepository, mappingEngine, personRepository); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- var result = controller.Edit(id); //---------------Test Result ----------------------- personRepository.Received().GetAllPeople(); }
public void Edit_ShouldCallMappingEngine() { //---------------Set up test pack------------------- var lending = new LendingBuilder().WithRandomGeneratedId().Build(); var id = lending.LedingId; var mappingEngine = Substitute.For<IMappingEngine>(); var lendingRepository = Substitute.For<ILendingRepository>(); lendingRepository.GetById(id).Returns(lending); var controller = CreateLendingController(lendingRepository, mappingEngine); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- var result = controller.Edit(id); //---------------Test Result ----------------------- mappingEngine.Received(1).Map<Lending, LendingViewModel>(lending); }
public void Create_POST_GivenModelStateIsValid_ShouldSaveLendingEntryToDB() { //---------------Set up test pack------------------- var item = new ItemBuilder().WithRandomProps().Build(); var person = new PersonBuilder().WithRandomProps().Build(); var mappingEngine = Substitute.For<IMappingEngine>(); var itemsRepository = Substitute.For<IItemsRepository>(); var personRepository = Substitute.For<IPersonRepository>(); var lendingRepository = Substitute.For<ILendingRepository>(); var lending = new LendingBuilder().WithRandomProps().Build(); var viewModel = new LendingViewModelBuilder().WithRandomProps().Build(); mappingEngine.Map<LendingViewModel, Lending>(viewModel).Returns(lending); itemsRepository.GetById(viewModel.ItemId).Returns(item); personRepository.GetById(viewModel.PersonId).Returns(person); var controller = CreateLendingController(lendingRepository, mappingEngine, personRepository, itemsRepository); Lending savedLending = null; lendingRepository.When(x => x.Save(Arg.Any<Lending>())).Do(info => savedLending = (Lending)info[0]); //---------------Assert Precondition---------------- Assert.IsTrue(controller.ModelState.IsValid); //---------------Execute Test ---------------------- var result = controller.Create(viewModel) as ViewResult; //---------------Test Result ----------------------- Assert.AreEqual(lending.LedingId, savedLending.LedingId); Assert.AreEqual(lending.ItemId, savedLending.ItemId); Assert.AreEqual(lending.PersonId, savedLending.PersonId); }
public void Create_POST_GivenPersonIdIsNotNull_ShouldSetPersonName() { //---------------Set up test pack------------------- var item = new ItemBuilder().WithRandomProps().Build(); var person = new PersonBuilder().WithRandomProps().Build(); var mappingEngine = Substitute.For<IMappingEngine>(); var itemsRepository = Substitute.For<IItemsRepository>(); var personRepository = Substitute.For<IPersonRepository>(); var lending = new LendingBuilder().WithRandomProps().Build(); var viewModel = new LendingViewModelBuilder().WithRandomProps().Build(); mappingEngine.Map<LendingViewModel, Lending>(viewModel).Returns(lending); itemsRepository.GetById(viewModel.ItemId).Returns(item); personRepository.GetById(viewModel.PersonId).Returns(person); var controller = CreateLendingController(null, mappingEngine, personRepository, itemsRepository); //---------------Assert Precondition---------------- Assert.IsTrue(controller.ModelState.IsValid); //---------------Execute Test ---------------------- var result = controller.Create(viewModel) as ViewResult; //---------------Test Result ----------------------- Assert.AreEqual(lending.PersonName, person.FirstName); }
public void Index_GivenLendingItemsAreReturnedFromDataBase_ShouldCallMappingEngine() { //---------------Set up test pack------------------- var lendingItem = new LendingBuilder().WithRandomGeneratedId().WithRandomProps().Build(); var lendingRepository = Substitute.For<ILendingRepository>(); var lendings = new List<Lending> { lendingItem }; lendingRepository.GetAll().Returns(lendings); var mappingEngine = Substitute.For<IMappingEngine>(); var controller = CreateLendingController(lendingRepository, mappingEngine); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- var results = controller.Index(); //---------------Test Result ----------------------- mappingEngine.Received().Map<List<Lending>, List<LendingViewModel>>(lendings); }
public void Update_GivenValidObjects_ShouldCallSaveChanges() { //---------------Set up test pack------------------- var existingLendingItem = new LendingBuilder().WithStatus(LendingStatus.Available).WithRandomGeneratedId().Build(); var newLendingItem = new LendingBuilder().WithStatus(LendingStatus.NotAvailable).WithRandomGeneratedId().Build(); var dbSet = CreateFakeDbSet(existingLendingItem); var lendingLibraryDbContext = CreateLendingLibraryDbContext(dbSet); var controller = CreateLendingController(lendingLibraryDbContext); //---------------Assert Precondition---------------- Assert.AreNotEqual(existingLendingItem.LendingStatus, newLendingItem.LendingStatus); //---------------Execute Test ---------------------- controller.Update(existingLendingItem, existingLendingItem); //---------------Test Result ----------------------- lendingLibraryDbContext.Received().SaveChanges(); }
public void Save_GivenValidLendingObject_ShouldShouldAssignLendingId() { //---------------Set up test pack------------------- var lending = new LendingBuilder().WithId(Guid.Empty).Build(); var lendingLibraryDbContext = CreateLendingLibraryDbContext(); var controller = CreateLendingController(lendingLibraryDbContext); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- controller.Save(lending); //---------------Test Result ----------------------- var lendingsFromRepo = controller.GetAll(); Assert.AreNotEqual(Guid.Empty, lendingsFromRepo.First().LedingId); }