public async void Create() { var mock = new ServiceMockFacade <IEmailAddressRepository>(); var model = new ApiEmailAddressRequestModel(); mock.RepositoryMock.Setup(x => x.Create(It.IsAny <EmailAddress>())).Returns(Task.FromResult(new EmailAddress())); var service = new EmailAddressService(mock.LoggerMock.Object, mock.RepositoryMock.Object, mock.ModelValidatorMockFactory.EmailAddressModelValidatorMock.Object, mock.BOLMapperMockFactory.BOLEmailAddressMapperMock, mock.DALMapperMockFactory.DALEmailAddressMapperMock); CreateResponse <ApiEmailAddressResponseModel> response = await service.Create(model); response.Should().NotBeNull(); mock.ModelValidatorMockFactory.EmailAddressModelValidatorMock.Verify(x => x.ValidateCreateAsync(It.IsAny <ApiEmailAddressRequestModel>())); mock.RepositoryMock.Verify(x => x.Create(It.IsAny <EmailAddress>())); }
public async Task TestCreate_CheckProperties() { using (ShimsContext.Create()) { System.Data.Entity.Fakes.ShimDbContext.AllInstances.SetOf1 <Person>((c) => { return(context.People); }); var personId = 1; Person person = null; EmailAddressType emailAddressType = new EmailAddressType { EmailAddressTypeId = EmailAddressType.Home.Id, EmailAddressTypeName = EmailAddressType.Home.Value }; context.SetupActions.Add(() => { person = new Person { PersonId = personId, FullName = "full name" }; context.EmailAddressTypes.Add(emailAddressType); context.People.Add(person); }); var user = new User(1); var email = "*****@*****.**"; var emailAddressTypeId = emailAddressType.EmailAddressTypeId; var isPrimary = true; var newEmail = new NewPersonEmailAddress(user, emailAddressTypeId, email, isPrimary, personId); Action beforeTester = () => { Assert.AreEqual(1, context.People.Count()); Assert.AreEqual(0, context.EmailAddresses.Count()); }; Action afterTester = () => { Assert.AreEqual(1, context.People.Count()); var firstPerson = context.People.First(); Assert.AreEqual(1, firstPerson.EmailAddresses.Count); var firstEmail = firstPerson.EmailAddresses.First(); Assert.AreEqual(email, firstEmail.Address); Assert.AreEqual(emailAddressTypeId, firstEmail.EmailAddressTypeId); Assert.AreEqual(isPrimary, firstEmail.IsPrimary); Assert.AreEqual(user.Id, firstEmail.History.CreatedBy); Assert.AreEqual(user.Id, firstEmail.History.RevisedBy); DateTimeOffset.Now.Should().BeCloseTo(firstEmail.History.CreatedOn, 20000); DateTimeOffset.Now.Should().BeCloseTo(firstEmail.History.RevisedOn, 20000); }; context.Revert(); beforeTester(); service.Create(newEmail); afterTester(); context.Revert(); beforeTester(); await service.CreateAsync(newEmail); afterTester(); } }