public void TestToAdditionalPointOfContact() { var email = "*****@*****.**"; var emailTypeId = EmailAddressType.Business.Id; var phoneNumber = "555"; var phoneNumberTypeId = PhoneNumberType.Business.Id; var newEmailAddress = new AdditionalEmailAddressBindingModel { Address = email, EmailAddressTypeId = emailTypeId, IsPrimary = true }; var newPhoneNumber = new AdditionalPhoneNumberBindingModel { Number = phoneNumber, PhoneNumberTypeId = phoneNumberTypeId, IsPrimary = true }; var model = new AdditionalPointOfContactBindingModel { EmailAddresses = new List <AdditionalEmailAddressBindingModel> { newEmailAddress }, PhoneNumbers = new List <AdditionalPhoneNumberBindingModel> { newPhoneNumber }, FullName = "full Name", Position = "position" }; var user = new User(1); var instance = model.ToAdditionalPointOfContact(user); Assert.AreEqual(user.Id, instance.Audit.User.Id); Assert.AreEqual(model.FullName, instance.FullName); Assert.AreEqual(model.Position, instance.Position); Assert.AreEqual(1, instance.EmailAddresses.Count()); Assert.AreEqual(1, instance.PhoneNumbers.Count()); var firstEmail = instance.EmailAddresses.First(); Assert.AreEqual(email, firstEmail.Address); Assert.AreEqual(emailTypeId, firstEmail.EmailAddressTypeId); Assert.AreEqual(user.Id, firstEmail.Audit.User.Id); Assert.AreEqual(newEmailAddress.IsPrimary, firstEmail.IsPrimary); var firstPhoneNumber = instance.PhoneNumbers.First(); Assert.AreEqual(phoneNumber, firstPhoneNumber.Number); Assert.AreEqual(phoneNumberTypeId, firstPhoneNumber.PhoneNumberTypeId); Assert.AreEqual(user.Id, firstPhoneNumber.Audit.User.Id); Assert.AreEqual(newPhoneNumber.IsPrimary, firstPhoneNumber.IsPrimary); }
public async Task TestPostCreateAsync_InvalidModel() { controller.ModelState.AddModelError("key", "error"); var model = new AdditionalPointOfContactBindingModel(); model.FullName = "name"; model.Position = "position"; var response = await controller.PostCreateContactAsync(model); Assert.IsInstanceOfType(response, typeof(InvalidModelStateResult)); }
/// <summary> /// Adds a new contact to the system. /// </summary> /// <param name="model"></param> /// <returns>The saved contact.</returns> public async Task <IHttpActionResult> PostCreateContactAsync(AdditionalPointOfContactBindingModel model) { if (ModelState.IsValid) { var currentUser = userProvider.GetCurrentUser(); var businessUser = userProvider.GetBusinessUser(currentUser); var instance = model.ToAdditionalPointOfContact(businessUser); var contact = await service.CreateAsync(instance); await service.SaveChangesAsync(); var dto = await service.GetContactByIdAsync(contact.ContactId); return(Ok(dto)); } else { return(BadRequest(ModelState)); } }
public async Task TestPostCreateAsync() { userProvider.Setup(x => x.GetCurrentUser()).Returns(new DebugWebApiUser()); userProvider.Setup(x => x.GetBusinessUser(It.IsAny <IWebApiUser>())).Returns(new User(1)); serviceMock.Setup(x => x.GetContactByIdAsync(It.IsAny <int>())).ReturnsAsync(new ContactDTO()); serviceMock.Setup(x => x.CreateAsync(It.IsAny <AdditionalPointOfContact>())).ReturnsAsync(new Contact()); var model = new AdditionalPointOfContactBindingModel(); model.FullName = "name"; model.Position = "position"; var response = await controller.PostCreateContactAsync(model); Assert.IsInstanceOfType(response, typeof(OkNegotiatedContentResult <ContactDTO>)); userProvider.Verify(x => x.GetCurrentUser(), Times.Once()); userProvider.Verify(x => x.GetBusinessUser(It.IsAny <IWebApiUser>()), Times.Once()); serviceMock.Verify(x => x.CreateAsync(It.IsAny <AdditionalPointOfContact>()), Times.Once()); serviceMock.Verify(x => x.SaveChangesAsync(), Times.Once()); serviceMock.Verify(x => x.GetContactByIdAsync(It.IsAny <int>()), Times.Once()); }