public async Task CreateAsync_SecretValidationFailed_ThrowsError() { // Arrange var fixture = new Fixture(); var secret = new SecretUpdateModel(); var expected = fixture.Create <string>(); var messageGetService = new Mock <IMessageGetService>(); messageGetService .Setup(x => x.ValidateAsync(secret)) .Throws(new InvalidOperationException(expected)); var secretDataAccess = new Mock <ISecretDataAccess>(); var secretGetService = new SecretCreateService(secretDataAccess.Object, messageGetService.Object); // Act var action = new Func <Task>(() => secretGetService.CreateAsync(secret)); // Assert await action.Should().ThrowAsync <InvalidOperationException>().WithMessage(expected); secretDataAccess.Verify(x => x.InsertAsync(secret), Times.Never); }
public async Task <DotNetProject.Secret> InsertAsync(SecretUpdateModel employee) { var result = await this.Context.AddAsync(this.Mapper.Map <Secret>(employee)); await this.Context.SaveChangesAsync(); return(this.Mapper.Map <Secret>(result.Entity)); }
public async Task <Secret> UpdateAsync(SecretUpdateModel employee) { var existing = await this.Get(employee); var result = this.Mapper.Map(employee, existing); this.Context.Update(result); await this.Context.SaveChangesAsync(); return(this.Mapper.Map <Secret>(result)); }
public async Task CreateAsync_SecretValidationSucceed_CreatesEmployee() { // Arrange var secret = new SecretUpdateModel(); var expected = new Secret(); var messageGetService = new Mock <IMessageGetService>(); messageGetService.Setup(x => x.ValidateAsync(secret)); var secretDataAccess = new Mock <ISecretDataAccess>(); secretDataAccess.Setup(x => x.InsertAsync(secret)).ReturnsAsync(expected); var secretGetService = new SecretCreateService(secretDataAccess.Object, messageGetService.Object); // Act var result = await secretGetService.CreateAsync(secret); // Assert result.Should().Be(expected); }
public async Task <Secret> CreateAsync(SecretUpdateModel secret) { await this.MessageGetService.ValidateAsync(secret); return(await this.SecretDataAccess.InsertAsync(secret)); }