/// <summary> /// Method used for demonstrate interaction testing /// </summary> public Customer Create(CustomerCreate data) { _authService.Authorize(this.UserName, "customer_create"); if (data.Email == "invalid") throw new InvalidOperationException(); if (_db.Customers.Any(x => x.Email == data.Email)) throw new EmailAlreadyExistsException(); var e = AutoMapper.Mapper.Map<Entities.Customer>(data); _db.Customers.Add(e); _customerLogManager.LogCreate(e); _db.SaveChanges(); _mailer.Send(data.Email, "Welcome"); return e; }
public void Create_ExistingEmail_Exception( IDataContextWrapper db, CustomerCreate data, CustomerManager sut) { data.Email = db.Set<Customer>().Select(x => x.Email).First(); Assert.Throws<CustomerManager.EmailAlreadyExistsException>(() => sut.Create(data)); }
public void Create_InvalidEmail_InvalidOp( CustomerCreate data, [Frozen] Mock<IAuthService> authService, [Frozen] Mock<IMailer> mailer, CustomerManager sut) { data.Email = "invalid"; Assert.Throws<InvalidOperationException>(() => sut.Create(data) ); mailer.Verify(x => x.Send(data.Email, It.IsAny<string>()), Times.Never); }