[Test] // behaviour test public void Create_When_entity_is_created_Then_it_makes_calls_to_repository_and_unit_of_work() { // Arrange var airhostessDTOToCreate = new AirhostessDTO() { FirstName = "Airhostess1", LastName = "Airhostess1", BirthDate = new DateTime(1970, 10, 1), CrewId = 1 }; var airhostessRepositoryFake = A.Fake <IAirhostessRepository>(); var unitOfWorkFake = A.Fake <IUnitOfWork>(); A.CallTo(() => unitOfWorkFake.Set <Airhostess>()).Returns(airhostessRepositoryFake); var airhostessService = new AirhostessService(unitOfWorkFake, AlwaysValidValidator); // Act var result = airhostessService.Create(airhostessDTOToCreate); // Assert. Just behaviour A.CallTo(() => airhostessRepositoryFake.Create(A <Airhostess> ._)).MustHaveHappenedOnceExactly(); A.CallTo(() => unitOfWorkFake.Set <Airhostess>()).MustHaveHappenedOnceExactly(); A.CallTo(() => unitOfWorkFake.SaveChanges()).MustHaveHappenedOnceExactly(); }
[Test] // behaviour test public void Create_When_entity_is_invalid_Then_it_makes_no_calls_to_repository_and_unit_of_work() { // Arrange var airhostessDTOToCreate = new AirhostessDTO() { FirstName = "", LastName = "Airhostess2", BirthDate = new DateTime(1970, 10, 1), CrewId = 2 }; var airhostessRepositoryFake = A.Fake <IAirhostessRepository>(); var unitOfWorkFake = A.Fake <IUnitOfWork>(); A.CallTo(() => unitOfWorkFake.Set <Airhostess>()).Returns(airhostessRepositoryFake); var airhostessService = new AirhostessService(unitOfWorkFake, AlwaysInValidValidator); // Act + Assert var exception = Assert.Throws <BadRequestException>(() => airhostessService.Create(airhostessDTOToCreate)); // Assert. Just behaviour A.CallTo(() => airhostessRepositoryFake.Create(A <Airhostess> ._)).MustNotHaveHappened(); A.CallTo(() => unitOfWorkFake.AirhostessRepository).MustNotHaveHappened(); A.CallTo(() => unitOfWorkFake.Set <Airhostess>()).MustNotHaveHappened(); A.CallTo(() => unitOfWorkFake.SaveChanges()).MustNotHaveHappened(); }
public void Create_When_entity_is_created_Then_new_entity_creates_in_db() { // Arrange var newEntity = new AirhostessDTO { FirstName = "Airhostess1", LastName = "Airhostess1", BirthDate = new DateTime(1970, 1, 12), CrewId = 1 }; var service = new AirhostessService(UnitOfWork, AlwaysValidValidator); // Act var createdEntity = service.Create(newEntity); // Assert var fromDbEntity = AirportDbContext.Airhostess.FirstOrDefault(x => x.Id == createdEntity.Id); Assert.NotNull(fromDbEntity); Assert.AreEqual(newEntity.FirstName, fromDbEntity.FirstName); Assert.AreEqual(newEntity.LastName, fromDbEntity.LastName); Assert.AreEqual(newEntity.BirthDate, fromDbEntity.BirthDate); Assert.AreEqual(newEntity.CrewId, fromDbEntity.CrewId); }
public void Create_When_entity_is_created_Then_new_airhostess_with_new_id_is_returned() { // Arrange var airhostessMock = new Airhostess() { Id = 1, FirstName = "Airhostess1", LastName = "Airhostess1", BirthDate = new DateTime(1970, 10, 1), CrewId = 1, Crew = null }; var airhostessDTOToCreate = new AirhostessDTO() { FirstName = "Airhostess1", LastName = "Airhostess1", BirthDate = new DateTime(1970, 10, 1), CrewId = 1 }; var expectedAirhostessDTO = new AirhostessDTO() { Id = 1, FirstName = "Airhostess1", LastName = "Airhostess1", BirthDate = new DateTime(1970, 10, 1), CrewId = 1 }; var airhostessRepositoryFake = A.Fake <IAirhostessRepository>(); A.CallTo(() => airhostessRepositoryFake.Create(A <Airhostess> ._)).Returns(airhostessMock); var unitOfWorkFake = A.Fake <IUnitOfWork>(); A.CallTo(() => unitOfWorkFake.Set <Airhostess>()).Returns(airhostessRepositoryFake); var airhostessService = new AirhostessService(unitOfWorkFake, AlwaysValidValidator); // Act var result = airhostessService.Create(airhostessDTOToCreate); // Assert Assert.AreEqual(expectedAirhostessDTO.Id, result.Id); Assert.AreEqual(expectedAirhostessDTO.FirstName, result.FirstName); Assert.AreEqual(expectedAirhostessDTO.LastName, result.LastName); Assert.AreEqual(expectedAirhostessDTO.BirthDate, result.BirthDate); Assert.AreEqual(expectedAirhostessDTO.CrewId, result.CrewId); }
public void Create_When_entity_is_invalid_Then_bad_request_exception_is_thrown() { // Arrange var airhostessMock = new Airhostess() { Id = 2, FirstName = "Airhostess2", LastName = "Airhostess2", BirthDate = new DateTime(1970, 10, 1), CrewId = 2, Crew = null }; var airhostessDTOToCreate = new AirhostessDTO() { FirstName = "", LastName = "Airhostess2", BirthDate = new DateTime(1970, 10, 1), CrewId = 2 }; var airhostessRepositoryFake = A.Fake <IAirhostessRepository>(); A.CallTo(() => airhostessRepositoryFake.Create(A <Airhostess> ._)).Returns(airhostessMock); var unitOfWorkFake = A.Fake <IUnitOfWork>(); A.CallTo(() => unitOfWorkFake.Set <Airhostess>()).Returns(airhostessRepositoryFake); var airhostessService = new AirhostessService(unitOfWorkFake, AlwaysInValidValidator); // Act + Assert var exception = Assert.Throws <BadRequestException>(() => airhostessService.Create(airhostessDTOToCreate), ""); Assert.AreEqual(exception.Message, "Is Invalid"); }