public Sample CreateAddSample(AddSampleRequest request) { return(new Sample { Title = request.Title, CreatedBy = "user-1" }); }
public ServiceResult Add(AddSampleRequest request) { var sample = factory.CreateAddSample(request); var result = repository.Insert(sample); return(string.IsNullOrEmpty(result) ? ServiceResult.Error(Messages.AddingFailed) : ServiceResult.Success(Messages.AddingSuccess)); }
public async Task <IActionResult> Post([FromBody] AddSampleRequest request) { var validationResult = RequestValidator.Validate(request); if (!validationResult.IsValid) { return(BadRequest(Messages.InvalidRequest)); } var result = await sampleService.Add(request); return(Ok(result)); }
public IActionResult Post(AddSampleRequest request) { var validationResult = requestValidator.Validate(request); if (!validationResult.IsValid) { return(BadRequest(Messages.InvalidRequest)); } var result = sampleService.Add(request); return(!result.IsSuccess ? Problem(Messages.GeneralError) : Ok(result.Message)); }
public async Task Post_InvalidRequest_ReturnBadRequest() { // Arrange var request = new AddSampleRequest(); var validationResult = ValidationResult.Error("invalid request"); var apiResult = new BadRequestObjectResult(Messages.InvalidRequest); requestValidator.Setup(x => x.Validate(request)).Returns(validationResult); // Act var result = await controller.Post(request); // Assert result.Should().BeEquivalentTo(apiResult); }
public async Task Post_AddingSucceeds_ReturnSuccessResult() { // Arrange var request = new AddSampleRequest(); var validationResult = ValidationResult.Success; var serviceResult = ServiceResult.Success(); var apiResult = new OkObjectResult(serviceResult); requestValidator.Setup(x => x.Validate(request)).Returns(validationResult); sampleService.Setup(x => x.Add(request)).ReturnsAsync(serviceResult); // Act var result = await controller.Post(request); // Assert result.Should().BeEquivalentTo(apiResult); }
public void CreateAddSample_NoCondition_ReturnSample() { // Arrange const string userId = "user-1"; var request = new AddSampleRequest { Title = "Sample Title" }; // Act var result = factory.CreateAddSample(request); // Assert result.Title.Should().Be(request.Title); result.CreatedBy.Should().Be(userId); result.CreatedDate.Should().BeCloseTo(DateTime.Now, 100, "dates should differ at milliseconds level"); }
public async Task Add_AddingFailed_AddLogAndReturnServiceErrorResult() { // Arrange var request = new AddSampleRequest(); var model = new Sample(); var exception = It.IsAny <Exception>(); var serviceResult = ServiceResult.Error(Messages.AddingFailed); sampleFactory.Setup(x => x.CreateAddSample(request)).Returns(model); repository.Setup(x => x.AddAsync(model)).ThrowsAsync(exception); // Act var result = await service.Add(request); // Assert result.IsSuccess.Should().BeFalse(); result.Message.Should().Be(serviceResult.Message); unitOfWork.Verify(x => x.Save(), Times.Never); AssertHelpers.VerifyLogger(logger, LogLevel.Error, Times.Once()); }
public async Task Add_AddingSuccess_AddToDbAndReturnServiceSuccessResult() { // Arrange var request = new AddSampleRequest(); var model = new Sample(); const bool isAdded = true; var serviceResult = ServiceResult.Success(Messages.AddingSuccess); sampleFactory.Setup(x => x.CreateAddSample(request)).Returns(model); repository.Setup(x => x.AddAsync(model)).ReturnsAsync(isAdded); // Act var result = await service.Add(request); // Assert result.IsSuccess.Should().BeTrue(); result.Message.Should().Be(serviceResult.Message); unitOfWork.Verify(x => x.Save(), Times.Once); cachingService.Verify(x => x.Set($"{CacheKey.Sample}-{model.Id}", model), Times.Once); }
public async Task <ServiceResult> Add(AddSampleRequest request) { var sample = sampleFactory.CreateAddSample(request); try { await repository.AddAsync(sample); UnitOfWork.Save(); AddSampleToCache(sample); await RefreshCachedSampleList(); return(ServiceResult.Success(Messages.AddingSuccess)); } catch (Exception ex) { Logger.LogError(ex.Message); return(ServiceResult.Error(Messages.AddingFailed)); } }