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));
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        /// <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));
        }