Пример #1
0
        public async Task <ApiResponse> CreatePrestation([FromBody] AddPrestationDto newPrestation)
        {
            var validator = new AddPrestationDtoValidator();

            try
            {
                var validationResult = await validator.ValidateAsync(newPrestation);

                if (!validationResult.IsValid)
                {
                    throw new ApiException(validationResult);
                }

                var prestationToCreate   = _mapper.Map <AddPrestationDto, Prestation>(newPrestation);
                var newPrestationCreated = await _prestationService.CreatePrestation(prestationToCreate);

                var getPrestationDto = _mapper.Map <Prestation, GetPrestationDto>(newPrestationCreated);

                return(new ApiResponse("La prestation a été correctement crée", getPrestationDto, Status201Created));
            }
            catch (CategoryDoesNotExistException ex)
            {
                _logger.LogError("There was an error on '{0}' invocation: {1}", MethodBase.GetCurrentMethod(), ex);

                var apiException = new ApiException(ex.Message, Status400BadRequest);
                apiException.CustomError = ex.Message;
                throw apiException;
            }
            catch (Exception ex)
            {
                _logger.LogError("There was an error on '{0}' invocation: {1}", MethodBase.GetCurrentMethod(), ex);
                throw;
            }
        }
Пример #2
0
        public async Task POST_Create_Prestation_Return_Error_Duration_Equal_Zero()
        {
            #region Arrange
            var dbContext = DbContextMocker.GetElegantGlamourDbContext(nameof(POST_Create_Prestation_Return_Error_Duration_Equal_Zero));
            var config    = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile(new MappingProfile());
            });
            var mapper = new Mapper(config);

            var mockUnitOfWork        = new UnitOfWork(dbContext);
            var mockPrestationService = new PrestationService(mockUnitOfWork);

            var mockLogger = Mock.Of <ILogger <PrestationsController> >();

            var controller = new PrestationsController(mockPrestationService, mapper, mockLogger);
            #endregion
            var addPrestation = new AddPrestationDto()
            {
                Title                = "Test",
                Description          = "Test",
                Duration             = 0,
                PrestationCategoryId = 89,
                Price                = 50
            };
            #region Act

            var apiException = await Assert.ThrowsAsync <ApiException>(() => controller.CreatePrestation(addPrestation));

            dbContext.Dispose();
            #endregion

            #region Assert
            Assert.Equal(400, apiException.StatusCode);
            Assert.Contains(ErrorMessage.Err_Prestation_Duration_Not_Equal_To_0, apiException.CustomError.ToString());

            #endregion
        }
Пример #3
0
        public async Task POST_Create_Prestation_Return_Ok()
        {
            #region Arrange
            var dbContext = DbContextMocker.GetElegantGlamourDbContext(nameof(POST_Create_Prestation_Return_Ok));
            var config    = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile(new MappingProfile());
            });
            var mapper = new Mapper(config);

            var mockUnitOfWork        = new UnitOfWork(dbContext);
            var mockPrestationService = new PrestationService(mockUnitOfWork);

            var mockLogger = Mock.Of <ILogger <PrestationsController> >();

            var controller = new PrestationsController(mockPrestationService, mapper, mockLogger);
            #endregion
            var addPrestation = new AddPrestationDto()
            {
                Title                = "TEST_PRESTATION",
                Description          = "Ceci est un test prestation",
                Price                = 10,
                Duration             = 60,
                PrestationCategoryId = 1
            };
            #region Act
            var response = await controller.CreatePrestation(addPrestation);

            dbContext.Dispose();
            #endregion

            #region Assert
            Assert.IsType <ApiResponse>(response);
            Assert.Equal(201, response.StatusCode);
            #endregion
        }