public async void Availability_Returns_CorrectResult(DateTime depDate, DateTime returnDate, string location, int expectedPilotId) { var options = new DbContextOptionsBuilder <CrewOnDemandContext>() .UseInMemoryDatabase(databaseName: "db_seeded_with_bookings_1") .Options; using (var context = new CrewOnDemandContext(options)) { context.Database.EnsureCreated(); context.Bookings.AddRange(_fakeBookings); context.SaveChanges(); var repository = new CrewOnDemandRepository(context); var service = new CrewOnDemandService(repository, _telemetryClient, new BookingCreatedPublisher(_telemetryClient)); var sut = new PilotsController(service); var actionResult = await sut.Availability(new AvailabilitySearch { DepDateTime = depDate, ReturnDateTime = returnDate, Location = location }); Assert.IsType <OkObjectResult>(actionResult.Result); var result = actionResult.Result as OkObjectResult; var pilotResult = result.Value as Pilot; Assert.Equal(expectedPilotId, pilotResult.Id); } }
public void AddDeleteNewPilotTest_Returns_CreatedResult_And_Pilot_ShoudBe_AddedTo_Database_And_Then_ShouldBe_Deleted() { // Arrange MSSQLContext context = new MSSQLContext(); CrewsRepository crewsRepository = new CrewsRepository(); PilotsRepository pilotsRepository = new PilotsRepository(); StewardessesRepository stewardessesRepository = new StewardessesRepository(); CrewingUnitOfWork uow = new CrewingUnitOfWork(crewsRepository, pilotsRepository, stewardessesRepository, context); CrewingService service = new CrewingService(uow); PilotsController controller = new PilotsController(mapper.GetDefaultMapper(), service); // add act var newPilotDTO = new PilotDTO() { Birth = new DateTime(1985, 5, 12, 0, 0, 0), ExperienceYears = 15, Name = "Grisha", Surname = "Kramer" }; var addResult = controller.AddPilot(newPilotDTO); // add assert Assert.IsInstanceOf <CreatedResult>(addResult); Assert.IsInstanceOf <PilotDTO>((addResult as CreatedResult).Value); // delete act var addedPilotDTO = (addResult as CreatedResult).Value as PilotDTO; var deleteResult = controller.DeletePilot(addedPilotDTO.Id); // delete assert Assert.IsInstanceOf <OkResult>(deleteResult); Assert.IsInstanceOf <NotFoundObjectResult>(controller.GetPilot(addedPilotDTO.Id)); }
public PilotsControllerTests() { var mapper = MyMapperConfiguration.GetConfiguration().CreateMapper(); AirportService service = new AirportService(new FakeUnitOfWork()); _controller = new PilotsController(mapper, service); }
public void PUT_WhenPuttNewItem_ThenServiceReturnOkAndThisObject() { //Arrange var pilot = new PilotDto { Id = Guid.NewGuid(), FirstName = "FirstName", SecondName = "SecondName", Experience = 4, BirthDate = new DateTime(1980, 1, 1) }; var fakeService = A.Fake <IPilotService>(); A.CallTo(() => fakeService.Update(pilot.Id, pilot)).Returns(pilot); var controller = new PilotsController(fakeService); //Act var response = controller.Post(pilot) as ObjectResult; //Assert Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode); Assert.IsInstanceOf(typeof(PilotDto), response.Value); }
public void Patch_When_model_is_valid_Then_return_status_code_200() { var service = A.Fake <IPilotService>(); A.CallTo(() => service.Update(1, 1)); var controller = new PilotsController(service); var result = controller.Patch(1, 1) as ObjectResult; Assert.AreEqual(200, result.StatusCode); }
public void Patch_When_opject_is_not_found_Then_return_status_code_404() { var service = A.Fake <IPilotService>(); A.CallTo(() => service.Update(1, 1)).Throws(new NotFoundException()); var controller = new PilotsController(service); var result = controller.Patch(1, 1) as ObjectResult; Assert.AreEqual(404, result.StatusCode); }
public void Patch_When_model_is_not_valid_Then_return_status_code_400() { var service = A.Fake <IPilotService>(); A.CallTo(() => service.Update(1, 1)).Throws(new FluentValidation.ValidationException("")); var controller = new PilotsController(service); var result = controller.Patch(1, 1) as ObjectResult; Assert.AreEqual(400, result.StatusCode); }
public void Get_When_id_called_Then_return_status_code_200() { var service = A.Fake <IService <PilotDto> >(); A.CallTo(() => service.GetAll()).Returns(new List <PilotDto>()); var controller = new PilotsController(service); var result = controller.Get() as ObjectResult; Assert.AreEqual(200, result.StatusCode); }
public void Post_When_dto_is_null_Then_return_status_code_400() { var service = A.Fake <IService <PilotDto> >(); A.CallTo(() => service.Add(A <PilotDto> .That.IsNull())).Throws(new NullBodyException()); var controller = new PilotsController(service); PilotDto dto = null; var result = controller.Post(dto) as StatusCodeResult; Assert.AreEqual(400, result.StatusCode); }
public void Get_When_get_by_id_called_and_id_dont_exists_Then_return_status_code_404() { var service = A.Fake <IPilotService>(); var id = 23221; A.CallTo(() => service.Get(id)).Throws(new Exception()); var controller = new PilotsController(service); var result = controller.Get(id) as ObjectResult; Assert.AreEqual(404, result.StatusCode); }
public void Delete_When_id_is_not_exist_Then_return_status_code_404() { var service = A.Fake <IService <PilotDto> >(); var notExistId = 8485; A.CallTo(() => service.Delete(notExistId)).Throws(new NotExistException()); var controller = new PilotsController(service); var id = notExistId; var result = controller.Delete(id) as StatusCodeResult; Assert.AreEqual(404, result.StatusCode); }
public void Delete_When_id_is_exist_Then_return_status_code_204() { var service = A.Fake <IService <PilotDto> >(); var existId = 1; A.CallTo(() => service.Delete(existId)); var controller = new PilotsController(service); var id = existId; var result = controller.Delete(id) as StatusCodeResult; Assert.AreEqual(204, result.StatusCode); }
public void DELETE_WhenDeleteItem_ThenServiceReturnNoContent() { //Arrange var id = Guid.NewGuid(); var fakeService = A.Fake <IPilotService>(); var controller = new PilotsController(fakeService); //Act var response = controller.Delete(id) as NoContentResult; //Assert Assert.AreEqual((int)HttpStatusCode.NoContent, response.StatusCode); }
public void GET_WhenGetItem_ThenServiceReturnOkAndThisObject() { //Arrange var id = Guid.NewGuid(); var fakeService = A.Fake <IPilotService>(); A.CallTo(() => fakeService.Get(id)).Returns(new PilotDto()); var controller = new PilotsController(fakeService); //Act var response = controller.Get(id) as ObjectResult; //Assert Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode); Assert.IsInstanceOf(typeof(PilotDto), response.Value); }
public void Post_When_model_is_valid_Then_return_status_code_200() { var service = A.Fake <IPilotService>(); var pilot = new PilotDto() { Birthday = DateTime.Now.AddYears(-30), Experience = 3, FirstName = "Alex", LastName = "Zams" }; A.CallTo(() => service.Create(pilot)).Returns(1); var controller = new PilotsController(service); var result = controller.Post(pilot) as ObjectResult; Assert.AreEqual(200, result.StatusCode); }
public void Post_When_model_is_not_valid_Then_return_status_code_404() { var service = A.Fake <IPilotService>(); var pilot = new PilotDto() { Birthday = DateTime.Now, Experience = 3, FirstName = "Alex", LastName = "Zams" }; A.CallTo(() => service.Create(pilot)).Throws(new FluentValidation.ValidationException("")); var controller = new PilotsController(service); var result = controller.Post(pilot) as ObjectResult; Assert.AreEqual(400, result.StatusCode); }
public void Get_WhenListIsNotNull_Returns_Status200() { var ServiceMock = new Mock <IService <PilotDTO> >(); ServiceMock.Setup(s => s.GetAllAsync()) .Returns(Task.FromResult(new List <PilotDTO>() { new PilotDTO { Id = 1, FirstName = "Sasha", LastName = "Sidorov", Experience = 5 } }.AsEnumerable())); PilotsController controller = new PilotsController(ServiceMock.Object); OkObjectResult message = (OkObjectResult)controller.Get().Result; Assert.Equal(200, message.StatusCode.Value); }
public void Post_When_dto_is_not_valid_Then_return_status_code_400() { var service = A.Fake <IService <PilotDto> >(); var notValidDto = new PilotDto { FirstName = "", LastName = "Alexanrovich", Birthdate = new DateTime(2020, 12, 19), Experience = -2 }; A.CallTo(() => service.Add(notValidDto)).Throws(new ValidationException("")); var controller = new PilotsController(service); var dto = notValidDto; var result = controller.Post(dto) as StatusCodeResult; Assert.AreEqual(400, result.StatusCode); }
public PilotsControllerTests() { service = new FakePilotsSrvice(); controller = new PilotsController(service); testList = new List <PilotDto>(); testList.AddRange( new List <PilotDto> { new PilotDto { Id = 1, CrewId = 1, FirstName = Guid.NewGuid().ToString(), LastName = "Ivanov", Experience = 3, Birthday = new DateTime(1987, 1, 24) }, new PilotDto { Id = 2, CrewId = 2, FirstName = Guid.NewGuid().ToString(), LastName = "Penhjd", Experience = 8, Birthday = new DateTime(1987, 1, 24) }, new PilotDto { Id = 3, CrewId = 3, FirstName = Guid.NewGuid().ToString(), LastName = "Maximov", Experience = 6, Birthday = new DateTime(1987, 1, 24) } }); }
public void Post_When_dto_is_valid_Then_return_status_code_201() { var service = A.Fake <IService <PilotDto> >(); var validDto = new PilotDto { FirstName = "Sanya", LastName = "Alexanrovich", Birthdate = new DateTime(1989, 12, 19), Experience = 10 }; A.CallTo(() => service.Add(validDto)).Returns(1); var controller = new PilotsController(service); var dto = validDto; var result = controller.Post(dto) as ObjectResult; Assert.AreEqual(201, result.StatusCode); }
public void Put_When_dto_is_valid_and_id_is_exist_Then_return_status_code_200() { var service = A.Fake <IService <PilotDto> >(); var validDto = new PilotDto { FirstName = "Sanya", LastName = "Alexanrovich", Birthdate = new DateTime(1989, 12, 19), Experience = 10 }; var existId = 1; A.CallTo(() => service.Update(existId, validDto)); var controller = new PilotsController(service); var dto = validDto; var id = existId; var result = controller.Put(id, dto) as StatusCodeResult; Assert.AreEqual(200, result.StatusCode); }
public async void Availability_Returns_BadRequest_When_DepartureAfterReturn() { var options = new DbContextOptionsBuilder <CrewOnDemandContext>() .UseInMemoryDatabase(databaseName: "db_empty") .Options; using (var context = new CrewOnDemandContext(options)) { var repository = new CrewOnDemandRepository(context); var service = new CrewOnDemandService(repository, _telemetryClient, new BookingCreatedPublisher(_telemetryClient)); var sut = new PilotsController(service); var actionResult = await sut.Availability(new AvailabilitySearch { DepDateTime = new DateTime(2020, 1, 1), ReturnDateTime = new DateTime(2000, 1, 1), Location = "munich" }); Assert.IsType <BadRequestObjectResult>(actionResult.Result); } }
public void Put_ModelIsIncorrect_Returns_StatusCode400() { int Id = 1; var pilot = new PilotDTO { Id = 1, FirstName = "", LastName = "Sidorov", Experience = 255 }; var ServiceMock = new Mock <IService <PilotDTO> >(); //when model is incorrect this method will throw ArgumentNullException ServiceMock.Setup(s => s.UpdateAsync(Id, pilot)).Throws(new Exception()); PilotsController controller = new PilotsController(ServiceMock.Object); var context = new ValidationContext(pilot, null, null); var result = new List <ValidationResult>(); var valid = Validator.TryValidateObject(pilot, context, result, false); var message = controller.Put(Id, pilot).Result; Assert.False(valid); Assert.Equal(HttpStatusCode.BadRequest, message.StatusCode); }
public void Initialize() { var pilotServiceMock = new Mock <IPilotService>(); pilotServiceMock.Setup(x => x.GetById(It.Is <int>(i => i != 1 && i != 99))) .ReturnsAsync((int id) => new PilotDto { BirthDate = new DateTime(2001, 12, 12), Experience = 5, FirstName = "Pilot", SecondName = "Tester", Id = id }); pilotServiceMock.Setup(x => x.GetById(99)).ReturnsAsync(() => null); pilotServiceMock.SetupSequence(x => x.GetById(1)) .Returns(() => Task.Run(() => new PilotDto { BirthDate = new DateTime(2001, 12, 12), Experience = 5, FirstName = "Pilot", SecondName = "Tester", Id = 5 })) .Returns(() => Task.Run(() => new PilotDto { BirthDate = new DateTime(2018, 12, 12), Experience = 1, FirstName = "PilotUpdated", SecondName = "TesterUpdated", Id = 5 })); pilotServiceMock.Setup(x => x.Insert(It.IsAny <EditablePilotFields>())) .ReturnsAsync(() => 1); pilotServiceMock.Setup(x => x.Update(1, It.IsAny <EditablePilotFields>())).ReturnsAsync( (int id, EditablePilotFields pilotEditableFields) => { return(true); }); _pilotsController = new PilotsController(pilotServiceMock.Object) { ControllerContext = { HttpContext = new DefaultHttpContext() } }; var mockUrlHelper = new Mock <IUrlHelper>(); mockUrlHelper .Setup( x => x.Action( It.IsAny <UrlActionContext>() ) ) .Returns("callbackUrl") .Verifiable(); mockUrlHelper.Setup(x => x.Link(It.IsAny <string>(), It.IsAny <object>())).Returns((string url, object obj) => { return(url); }); _pilotsController.Url = mockUrlHelper.Object; }
public PilotsControllerTests() { _serviceMock = new Mock <ICrewOnDemandService>(); _sut = new PilotsController(_serviceMock.Object); }