public async Task <IActionResult> RegisterDefectAsync(RegisterDefectDto registerDefectDto) { if (registerDefectDto == null) { return(BadRequest(resourcesManager.GetString("Model"))); } var register_defect = await defectsService.RegisterDefectAsync(registerDefectDto); if (register_defect == null) { return(NotFound("ObjectCarUser")); } return(Ok(register_defect)); }
public async Task RegisterDefect_UserIdCarIdNotExciting_ReturnNull() { RegisterDefectDto registerDefectDto = new RegisterDefectDto() { UserId = 1, CarId = 1, Description = "Stop Working Window" }; mockUsersRepository .Setup(p => p.FindByIdDetailsAsync(registerDefectDto.UserId)) .ReturnsAsync(null as User); mockCarsRepository .Setup(c => c.FindByIdAsync(registerDefectDto.CarId)) .ReturnsAsync(null as Car); var services = new DefectService(mockUsersRepository.Object, mockCarsRepository.Object, mapper, mockDefectsRepository.Object); //Act var result = await services.RegisterDefectAsync(registerDefectDto); //Assert Assert.Null(result); }
public async Task RegisterDefect_ExcitingUserCar_ReturnDefect() { RegisterDefectDto registerDefectDto = new RegisterDefectDto() { UserId = 1, CarId = 1, Description = "Stop Working Window" }; mockUsersRepository .Setup(p => p.FindByIdDetailsAsync(registerDefectDto.UserId)) .ReturnsAsync(new User() { UserId = 1 }); mockCarsRepository .Setup(c => c.FindByIdAsync(registerDefectDto.CarId)) .ReturnsAsync(new Car() { CarId = 1 }); mockDefectsRepository .Setup(d => d.Create(It.IsAny <Defect>())) .Verifiable(); mockDefectsRepository .Setup(s => s.SaveChangesAsync()) .Verifiable(); var services = new DefectService(mockUsersRepository.Object, mockCarsRepository.Object, mapper, mockDefectsRepository.Object); //Act var result = await services.RegisterDefectAsync(registerDefectDto); //Assert var assertResult = Assert.IsType <DefectDto>(result); Assert.Equal(result.CarId, assertResult.CarId); Assert.Equal(result.UserId, assertResult.UserId); Assert.Equal(result.Description, assertResult.Description); }
/// <summary> /// Register defect with exiciting id user and car /// </summary> /// <param name="registerDefectDto"></param> /// <returns>return register defect mapped to DefectDto</returns> public async Task <DefectDto> RegisterDefectAsync(RegisterDefectDto registerDefectDto) { var user = await userRepository.FindByIdDetailsAsync(registerDefectDto.UserId); var car = await carRepository.FindByIdAsync(registerDefectDto.CarId); if (user == null || car == null) { return(null); } Defect defect = new Defect(user.UserId, car.CarId, user.FirstName, user.LastName, user.MobileNumber, car.RegistrationNumber, registerDefectDto.Description, Status.Reported); defectRepository.Create(defect); await defectRepository.SaveChangesAsync(); return(mapper.Map <DefectDto>(defect)); }