public async Task TestCreate_LikeContactEmailAddress() { var userId = 1; var user = new User(userId); var email1 = "*****@*****.**"; var fullName = "Full Name"; var position = "Star Lord"; var isPrimary = true; var newEmail1 = new NewEmailAddress(user, EmailAddressType.Business.Id, email1, isPrimary); var additionalPointOfContact = new AdditionalPointOfContact(user, fullName, position, new List <NewEmailAddress> { newEmail1 }, new List <NewPhoneNumber>()); Action beforeTester = () => { Assert.AreEqual(0, context.PhoneNumbers.Count()); Assert.AreEqual(1, context.EmailAddresses.Count()); Assert.AreEqual(0, context.Contacts.Count()); }; Action <AdditionalPointOfContactValidationEntity> validationEntityTester = (entity) => { Assert.AreEqual(fullName, entity.FullName); Assert.AreEqual(position, entity.Position); }; Action afterTester = () => { Assert.AreEqual(1, context.Contacts.Count()); }; context.SetupActions.Add(() => { context.EmailAddresses.Add(new EmailAddress { ContactId = 1, Address = email1 }); }); validator.Setup(x => x.ValidateCreate(It.IsAny <AdditionalPointOfContactValidationEntity>())).Callback(validationEntityTester); context.Revert(); beforeTester(); service.Create(additionalPointOfContact); afterTester(); context.Revert(); beforeTester(); await service.CreateAsync(additionalPointOfContact); afterTester(); }
public async Task TestCreate_PhoneNumberIsWhitespace() { var userId = 1; var user = new User(userId); string phone1 = " "; string ext1 = ""; var fullName = "Full Name"; var position = "Star Lord"; var isPrimary = true; var newPhone1 = new NewPhoneNumber(user, PhoneNumberType.Cell.Id, phone1, ext1, isPrimary); var additionalPointOfContact = new AdditionalPointOfContact(user, fullName, position, new List <NewEmailAddress>(), new List <NewPhoneNumber> { newPhone1 }); Action beforeTester = () => { Assert.AreEqual(0, context.PhoneNumbers.Count()); Assert.AreEqual(0, context.EmailAddresses.Count()); Assert.AreEqual(0, context.Contacts.Count()); }; Action afterTester = () => { Assert.AreEqual(1, context.Contacts.Count()); Assert.AreEqual(0, context.PhoneNumbers.Count()); }; context.Revert(); beforeTester(); service.Create(additionalPointOfContact); afterTester(); context.Revert(); beforeTester(); await service.CreateAsync(additionalPointOfContact); afterTester(); }
public async Task TestCreate_PositionIsWhitespace() { var userId = 1; var user = new User(userId); var fullName = "Full Name"; string position = " "; var additionalPointOfContact = new AdditionalPointOfContact(user, fullName, position, new List <NewEmailAddress>(), new List <NewPhoneNumber>()); Action beforeTester = () => { Assert.AreEqual(0, context.PhoneNumbers.Count()); Assert.AreEqual(0, context.EmailAddresses.Count()); Assert.AreEqual(0, context.Contacts.Count()); }; Action <AdditionalPointOfContactValidationEntity> validationEntityTester = (entity) => { Assert.AreEqual(position, entity.Position); }; Action afterTester = () => { Assert.AreEqual(1, context.Contacts.Count()); var pointOfContact = context.Contacts.First(); Assert.IsNull(pointOfContact.Position); }; validator.Setup(x => x.ValidateCreate(It.IsAny <AdditionalPointOfContactValidationEntity>())).Callback(validationEntityTester); context.Revert(); beforeTester(); service.Create(additionalPointOfContact); afterTester(); context.Revert(); beforeTester(); await service.CreateAsync(additionalPointOfContact); afterTester(); }
public async Task TestCreate_EmailAddressValueIsWhitespace() { var userId = 1; var user = new User(userId); string email1 = String.Empty; var fullName = "Full Name"; var position = "Star Lord"; var isPrimary = true; var newEmail1 = new NewEmailAddress(user, EmailAddressType.Business.Id, email1, isPrimary); var additionalPointOfContact = new AdditionalPointOfContact(user, fullName, position, new List <NewEmailAddress> { newEmail1 }, new List <NewPhoneNumber>()); Action beforeTester = () => { Assert.AreEqual(0, context.PhoneNumbers.Count()); Assert.AreEqual(0, context.EmailAddresses.Count()); Assert.AreEqual(0, context.Contacts.Count()); }; Action afterTester = () => { Assert.AreEqual(1, context.Contacts.Count()); Assert.AreEqual(0, context.EmailAddresses.Count()); }; context.Revert(); beforeTester(); service.Create(additionalPointOfContact); afterTester(); context.Revert(); beforeTester(); await service.CreateAsync(additionalPointOfContact); afterTester(); }
public async Task TestCreate_CheckProperties() { var userId = 1; var user = new User(userId); var phoneNumber1 = "555-555-1212"; var phoneNumber1ext = "123"; var phoneNumber2 = "123-456-7890"; var phoneNumber2ext = "123"; var email1 = "*****@*****.**"; var email2 = "*****@*****.**"; var fullName = "Full Name"; var position = "Star Lord"; var isPrimaryEmail = true; var isPrimaryPhone = true; var newEmail1 = new NewEmailAddress(user, EmailAddressType.Business.Id, email1, isPrimaryEmail); var newEmail2 = new NewEmailAddress(user, EmailAddressType.Home.Id, email2, false); var newPhone1 = new NewPhoneNumber(user, PhoneNumberType.Cell.Id, phoneNumber1, phoneNumber1ext, isPrimaryPhone); var newPhone2 = new NewPhoneNumber(user, PhoneNumberType.Home.Id, phoneNumber2, phoneNumber2ext, false); var additionalPointOfContact = new AdditionalPointOfContact(user, fullName, position, new List <NewEmailAddress> { newEmail1, newEmail2 }, new List <NewPhoneNumber> { newPhone1, newPhone2 }); Action beforeTester = () => { Assert.AreEqual(0, context.PhoneNumbers.Count()); Assert.AreEqual(0, context.EmailAddresses.Count()); Assert.AreEqual(0, context.Contacts.Count()); }; Action <AdditionalPointOfContactValidationEntity> validationEntityTester = (entity) => { Assert.AreEqual(fullName, entity.FullName); Assert.AreEqual(position, entity.Position); Assert.AreEqual(1, entity.NumberOfPrimaryEmailAddresses); Assert.AreEqual(1, entity.NumberOfPrimaryPhoneNumbers); }; Action afterTester = () => { Assert.AreEqual(1, context.Contacts.Count()); Assert.AreEqual(2, context.EmailAddresses.Count()); Assert.AreEqual(2, context.PhoneNumbers.Count()); var pointOfContact = context.Contacts.First(); Assert.AreEqual(fullName, pointOfContact.FullName); Assert.AreEqual(position, pointOfContact.Position); Assert.AreEqual(userId, pointOfContact.History.CreatedBy); Assert.AreEqual(userId, pointOfContact.History.RevisedBy); DateTimeOffset.Now.Should().BeCloseTo(pointOfContact.History.CreatedOn, 20000); DateTimeOffset.Now.Should().BeCloseTo(pointOfContact.History.RevisedOn, 20000); Assert.AreEqual(2, pointOfContact.EmailAddresses.Count); Assert.AreEqual(2, pointOfContact.PhoneNumbers.Count); var firstEmail = pointOfContact.EmailAddresses.First(); var secondEmail = pointOfContact.EmailAddresses.Last(); Assert.IsTrue(context.EmailAddresses.Contains(firstEmail)); Assert.IsTrue(context.EmailAddresses.Contains(secondEmail)); Assert.AreEqual(newEmail1.EmailAddressTypeId, firstEmail.EmailAddressTypeId); Assert.AreEqual(newEmail1.Address, firstEmail.Address); Assert.IsTrue(firstEmail.IsPrimary.Value); Assert.AreEqual(newEmail2.EmailAddressTypeId, secondEmail.EmailAddressTypeId); Assert.AreEqual(newEmail2.Address, secondEmail.Address); Assert.IsFalse(secondEmail.IsPrimary.Value); Assert.AreEqual(userId, firstEmail.History.CreatedBy); Assert.AreEqual(userId, firstEmail.History.RevisedBy); DateTimeOffset.Now.Should().BeCloseTo(firstEmail.History.CreatedOn, 20000); DateTimeOffset.Now.Should().BeCloseTo(firstEmail.History.RevisedOn, 20000); Assert.AreEqual(userId, secondEmail.History.CreatedBy); Assert.AreEqual(userId, secondEmail.History.RevisedBy); DateTimeOffset.Now.Should().BeCloseTo(secondEmail.History.CreatedOn, 20000); DateTimeOffset.Now.Should().BeCloseTo(secondEmail.History.RevisedOn, 20000); var firstPhone = pointOfContact.PhoneNumbers.First(); var secondPhone = pointOfContact.PhoneNumbers.Last(); Assert.IsTrue(context.PhoneNumbers.Contains(firstPhone)); Assert.IsTrue(context.PhoneNumbers.Contains(secondPhone)); Assert.AreEqual(newPhone1.PhoneNumberTypeId, firstPhone.PhoneNumberTypeId); Assert.AreEqual(newPhone1.Number, firstPhone.Number); Assert.AreEqual(newPhone1.Extension, firstPhone.Extension); Assert.IsTrue(firstPhone.IsPrimary.Value); Assert.AreEqual(newPhone2.PhoneNumberTypeId, secondPhone.PhoneNumberTypeId); Assert.AreEqual(newPhone2.Number, secondPhone.Number); Assert.AreEqual(newPhone2.Extension, secondPhone.Extension); Assert.IsFalse(secondPhone.IsPrimary.Value); Assert.AreEqual(userId, firstPhone.History.CreatedBy); Assert.AreEqual(userId, firstPhone.History.RevisedBy); DateTimeOffset.Now.Should().BeCloseTo(firstPhone.History.CreatedOn, 20000); DateTimeOffset.Now.Should().BeCloseTo(firstPhone.History.RevisedOn, 20000); Assert.AreEqual(userId, secondPhone.History.CreatedBy); Assert.AreEqual(userId, secondPhone.History.RevisedBy); DateTimeOffset.Now.Should().BeCloseTo(secondPhone.History.CreatedOn, 20000); DateTimeOffset.Now.Should().BeCloseTo(secondPhone.History.RevisedOn, 20000); }; validator.Setup(x => x.ValidateCreate(It.IsAny <AdditionalPointOfContactValidationEntity>())).Callback(validationEntityTester); context.Revert(); beforeTester(); service.Create(additionalPointOfContact); afterTester(); context.Revert(); beforeTester(); await service.CreateAsync(additionalPointOfContact); afterTester(); }