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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        /// <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));
            }
        }
コード例 #4
0
        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());
        }