public async Task <Domain.Fact> InsertAsync(FactUpdateModel fact) { var result = await this.Context.AddAsync(this.Mapper.Map <Fact>(fact)); await this.Context.SaveChangesAsync(); return(this.Mapper.Map <Domain.Fact>(result.Entity)); }
public async Task <Domain.Fact> UpdateAsync(FactUpdateModel fact) { var existing = await this.Get(fact); var result = this.Mapper.Map(fact, existing); this.Context.Update(result); await this.Context.SaveChangesAsync(); return(this.Mapper.Map <Domain.Fact>(result)); }
public async Task CreateAsync_FieldValidationSucceed_CreatesFact() { //arrange var fact = new FactUpdateModel(); var expected = new Fact(); var fieldGetService = new Mock <IFieldGetService>(); fieldGetService.Setup(x => x.ValidateAsync(fact)); var factDataAccess = new Mock <IFactDataAccess>(); factDataAccess.Setup(x => x.InsertAsync(fact)).ReturnsAsync(expected); var factGetService = new FactCreateService(factDataAccess.Object, fieldGetService.Object); //act var result = await factGetService.CreateAsync(fact); //assert result.Should().Be(expected); }
public async Task CreateAsync_FieldValidationFailed_ThrowsError() { //arrange var fixture = new Fixture(); var fact = new FactUpdateModel(); var expected = fixture.Create <string>(); var fieldGetService = new Mock <IFieldGetService>(); fieldGetService.Setup(x => x.ValidateAsync(fact)).Throws(new InvalidOperationException(expected)); var factDataAccess = new Mock <IFactDataAccess>(); var factGetService = new FactCreateService(factDataAccess.Object, fieldGetService.Object); //act var action = new Func <Task>(() => factGetService.CreateAsync(fact)); //assert await action.Should().ThrowAsync <InvalidOperationException>().WithMessage(expected); factDataAccess.Verify(x => x.InsertAsync(fact), Times.Never); }
public async Task <Fact> CreateAsync(FactUpdateModel fact) { await this.FieldGetService.ValidateAsync(fact); return(await this.FactDataAccess.InsertAsync(fact)); }