Example #1
0
        public async Task CanCreateContact()
        {
            var uniqueSignature = Guid.NewGuid().ToString().Substring(0, 4);
            /* Get Contact */
            var contactQuery = new RegistrantQuery
            {
                UserId = TestContactUserId
            };
            var queryResult = await contactRepository.QueryContact(contactQuery);

            var baseContact = queryResult.Items.First();

            baseContact.Id        = null;
            baseContact.UserId    = $"{TestData.TestPrefix}-{uniqueSignature}-{TestContactUserId}";
            baseContact.FirstName = $"{TestData.TestPrefix}-{uniqueSignature}-first";
            baseContact.LastName += $"{TestData.TestPrefix}-{uniqueSignature}-last";

            /* Create Contact */
            SaveContact saveContactCmd = new SaveContact
            {
                Contact = baseContact
            };
            var saveResult = await contactRepository.ManageContact(saveContactCmd);

            var newContactId = saveResult.ContactId;

            /* Get New Contact */
            var newContactQuery = new RegistrantQuery
            {
                ContactId = newContactId
            };

            (await contactRepository.QueryContact(newContactQuery)).Items.ShouldHaveSingleItem().Id.ShouldBe(newContactId);
        }
        public async Task<IActionResult> ExecuteAsync(SaveContact saveContact)
        {
            var newContact = _contactMapper.Map<Contact>(saveContact);

            int newContactID = await _contactRepository.AddContact(newContact);

            return new CreatedAtActionResult("GetContactById", "Contacts", new {id = newContactID }, newContact);
        }
Example #3
0
        public async Task CanCreateContactWithAddressLookupValues()
        {
            var country         = "CAN";
            var province        = "BC";
            var city            = TestData.RandomCommunity;
            var uniqueSignature = Guid.NewGuid().ToString().Substring(0, 4);

            /* Get Contact */
            var contactQuery = new RegistrantQuery
            {
                UserId = TestContactUserId
            };
            var queryResult = await contactRepository.QueryContact(contactQuery);

            var baseContact = queryResult.Items.FirstOrDefault();

            baseContact.ShouldNotBeNull();

            baseContact.Id         = null;
            baseContact.UserId     = TestContactUserId + Guid.NewGuid().ToString("N").Substring(0, 4);
            baseContact.FirstName += "_" + uniqueSignature;
            baseContact.LastName  += "_" + uniqueSignature;
            baseContact.PrimaryAddress.Country       = country;
            baseContact.PrimaryAddress.StateProvince = province;
            baseContact.PrimaryAddress.Community     = city;
            baseContact.MailingAddress.Country       = country;
            baseContact.MailingAddress.StateProvince = province;
            baseContact.MailingAddress.Community     = city;

            /* Create Contact */
            SaveContact saveContactCmd = new SaveContact
            {
                Contact = baseContact
            };
            var saveResult = await contactRepository.ManageContact(saveContactCmd);

            var newContactId = saveResult.ContactId;

            /* Get New Contact */
            var newContactQuery = new RegistrantQuery
            {
                ContactId = newContactId
            };
            var newQueryResult = await contactRepository.QueryContact(newContactQuery);

            var newContact = newQueryResult.Items.FirstOrDefault();

            newContact.ShouldNotBeNull().Id.ShouldBe(newContactId);

            newContact.PrimaryAddress.Country.ShouldBe(country);
            newContact.PrimaryAddress.StateProvince.ShouldBe(province);
            newContact.PrimaryAddress.Community.ShouldBe(city);

            newContact.MailingAddress.Country.ShouldBe(country);
            newContact.MailingAddress.StateProvince.ShouldBe(province);
            newContact.MailingAddress.Community.ShouldBe(city);
        }
Example #4
0
        public async Task CanCreateContact()
        {
            /* Get Contact */
            var contactQuery = new ContactQuery
            {
                UserId = TestUserId
            };
            var queryResult = await contactRepository.QueryContact(contactQuery);

            var baseContact = queryResult.Items.FirstOrDefault();

            baseContact.Id     = null;
            baseContact.UserId = TestUserId + Guid.NewGuid().ToString("N").Substring(0, 4);

            /* Create Contact */
            SaveContact saveContactCmd = new SaveContact
            {
                Contact = baseContact
            };
            var saveResult = await contactRepository.ManageContact(saveContactCmd);

            var newContactId = saveResult.ContactId;

            /* Get New Contact */
            var newContactQuery = new ContactQuery
            {
                ContactId = newContactId
            };
            var newQueryResult = await contactRepository.QueryContact(newContactQuery);

            var newContact = newQueryResult.Items.FirstOrDefault();

            newContact.ShouldNotBeNull().Id.ShouldBe(newContactId);

            /* Delete New Contact */
            DeleteContact deleteCmd = new DeleteContact
            {
                ContactId = newContactId
            };
            var deleteResult = await contactRepository.ManageContact(deleteCmd);

            var deletedContactId = deleteResult.ContactId;

            /* Get Deleted Contact */
            var deletedCaseQuery = new ContactQuery
            {
                ContactId = deletedContactId
            };
            var deletedQueryResult = await contactRepository.QueryContact(deletedCaseQuery);

            var deletedContact = (Contact)deletedQueryResult.Items.LastOrDefault();

            deletedContact.ShouldBeNull();
        }
Example #5
0
        public void Test_SaveContact_Requires_Email()
        {
            var request = new SaveContact
            {
                FirstName   = "First",
                LastName    = "Last",
                Email       = null,
                PhoneNumber = "555-1212",
            };

            Should.Throw <ApplicationException>(() => _handler.Handle(request));
        }
 public void Test_SaveContact_Creates_New_Contact()
 {
     var request = new SaveContact
     {
         FirstName = "First",
         LastName = "Last",
         Email = "*****@*****.**",
         PhoneNumber = "555-1212",
     };
     var response = _handler.Handle(request);
     response.ShouldBe(2);
 }
Example #7
0
        public void Test_SaveContact_Requires_Phone()
        {
            var request = new SaveContact
            {
                FirstName   = "First",
                LastName    = "Last",
                Email       = "*****@*****.**",
                PhoneNumber = null,
            };

            Should.Throw <ApplicationException>(() => _handler.Handle(request));
        }
Example #8
0
        public void Test_SaveContact_Creates_New_Contact()
        {
            var request = new SaveContact
            {
                FirstName   = "First",
                LastName    = "Last",
                Email       = "*****@*****.**",
                PhoneNumber = "555-1212",
            };
            var response = _handler.Handle(request);

            response.ShouldBe(2);
        }
Example #9
0
        public void Test_SaveContact_Enqueues_Email()
        {
            var request = new SaveContact
            {
                Id          = 1,
                FirstName   = "First",
                LastName    = "Last",
                Email       = "*****@*****.**",
                PhoneNumber = "555-1212",
            };

            var queue   = A.Fake <IQueueService>();
            var handler = new SaveContact.Handler(_db, _appContext, queue, _mediator);

            handler.Handle(request);

            A.CallTo(() => queue.Enqueue(A <SendEmail> ._, _appContext)).MustHaveHappened(Repeated.Exactly.Once);
        }
Example #10
0
        public void Test_SaveContact_Publishes_Alert()
        {
            var request = new SaveContact
            {
                Id          = 1,
                FirstName   = "First",
                LastName    = "Last",
                Email       = "*****@*****.**",
                PhoneNumber = "555-1212",
            };

            var mediator = A.Fake <IMediator>();
            var handler  = new SaveContact.Handler(_db, _appContext, _queue, mediator);

            handler.Handle(request);

            A.CallTo(() => mediator.Publish(A <Alert> ._)).MustHaveHappened(Repeated.Exactly.Once);
        }
Example #11
0
        public async Task <IActionResult> ExecuteAsync(SaveContact saveContact)
        {
            if (actionContextAccessor.ActionContext.ModelState.IsValid)
            {
                var newContact = contactMapper.Map <Models.Contact>(saveContact);

                /*
                 * The AddContact method returns the ID of the newly added contact
                 * as an int and is stored in newContactID
                 */
                int newContactID = await contactRepository.AddContact(newContact);

                var newContactViewModel = contactMapper.Map <ViewModels.Contact>(newContact);

                return(new CreatedAtActionResult("GetContactById", "Contact", new { id = newContactID }, newContactViewModel));
            }
            else
            {
                return(new BadRequestResult());
            }
        }
Example #12
0
        public async Task CanUpdateContact()
        {
            /* Get Contact */
            var contactQuery = new ContactQuery
            {
                UserId = TestUserId
            };
            var queryResult = await contactRepository.QueryContact(contactQuery);

            var contact = queryResult.Items.FirstOrDefault();

            var currentCity = contact.PrimaryAddress.Community;
            var newCity     = currentCity == "406adfaf-9f97-ea11-b813-005056830319"
                ? "226adfaf-9f97-ea11-b813-005056830319"
                : "406adfaf-9f97-ea11-b813-005056830319";

            contact.PrimaryAddress.Community = newCity;

            /* Update Contact */
            SaveContact saveContactCmd = new SaveContact
            {
                Contact = contact
            };
            var saveResult = await contactRepository.ManageContact(saveContactCmd);

            var updatedContactId = saveResult.ContactId;

            /* Get Updated Contact */
            var updatedContactQuery = new ContactQuery
            {
                ContactId = updatedContactId
            };
            var updatedQueryResult = await contactRepository.QueryContact(updatedContactQuery);

            var updatedContact = updatedQueryResult.Items.FirstOrDefault();

            updatedContact.PrimaryAddress.Community.ShouldBe(newCity);
        }
Example #13
0
        public async Task CanUpdateContact()
        {
            /* Get Contact */
            var contactQuery = new RegistrantQuery
            {
                UserId = TestContactUserId
            };
            var queryResult = await contactRepository.QueryContact(contactQuery);

            var contact = queryResult.Items.First();

            var newCommunity = TestData.RandomCommunity;
            var currentCity  = contact.PrimaryAddress.Community;

            contact.PrimaryAddress.Community = currentCity == newCommunity
              ? TestData.RandomCommunity
              : newCommunity;;

            /* Update Contact */
            SaveContact saveContactCmd = new SaveContact
            {
                Contact = contact
            };
            var saveResult = await contactRepository.ManageContact(saveContactCmd);

            var updatedContactId = saveResult.ContactId;

            /* Get Updated Contact */
            var updatedContactQuery = new RegistrantQuery
            {
                ContactId = updatedContactId
            };
            var updatedQueryResult = await contactRepository.QueryContact(updatedContactQuery);

            var updatedContact = updatedQueryResult.Items.First();

            updatedContact.PrimaryAddress.Community.ShouldBe(newCommunity);
        }
        public void Test_SaveContact_Enqueues_Email()
        {
            var request = new SaveContact
            {
                Id = 1,
                FirstName = "First",
                LastName = "Last",
                Email = "*****@*****.**",
                PhoneNumber = "555-1212",
            };

            var queue = A.Fake<IQueueService>();
            var handler = new SaveContact.Handler(_db, _appContext, queue, _mediator);
            handler.Handle(request);

            A.CallTo(() => queue.Enqueue(A<SendEmail>._, _appContext)).MustHaveHappened(Repeated.Exactly.Once);
        }
 public void Test_SaveContact_Requires_Email()
 {
     var request = new SaveContact
     {
         FirstName = "First",
         LastName = "Last",
         Email = null,
         PhoneNumber = "555-1212",
     };
     Should.Throw<ApplicationException>(() => _handler.Handle(request));
 }
Example #16
0
        public async Task CanCreateContactWithAddressLookupValues()
        {
            var country  = "CAN";
            var province = "BC";
            var city     = "226adfaf-9f97-ea11-b813-005056830319";

            /* Get Contact */
            var contactQuery = new ContactQuery
            {
                UserId = TestUserId
            };
            var queryResult = await contactRepository.QueryContact(contactQuery);

            var baseContact = queryResult.Items.FirstOrDefault();

            baseContact.ShouldNotBeNull();

            baseContact.Id     = null;
            baseContact.UserId = TestUserId + Guid.NewGuid().ToString("N").Substring(0, 4);
            baseContact.PrimaryAddress.Country       = country;
            baseContact.PrimaryAddress.StateProvince = province;
            baseContact.PrimaryAddress.Community     = city;
            baseContact.MailingAddress.Country       = country;
            baseContact.MailingAddress.StateProvince = province;
            baseContact.MailingAddress.Community     = city;

            /* Create Contact */
            SaveContact saveContactCmd = new SaveContact
            {
                Contact = baseContact
            };
            var saveResult = await contactRepository.ManageContact(saveContactCmd);

            var newContactId = saveResult.ContactId;

            /* Get New Contact */
            var newContactQuery = new ContactQuery
            {
                ContactId = newContactId
            };
            var newQueryResult = await contactRepository.QueryContact(newContactQuery);

            var newContact = newQueryResult.Items.FirstOrDefault();

            newContact.ShouldNotBeNull().Id.ShouldBe(newContactId);

            newContact.PrimaryAddress.Country.ShouldBe(country);
            newContact.PrimaryAddress.StateProvince.ShouldBe(province);
            newContact.PrimaryAddress.Community.ShouldBe(city);

            newContact.MailingAddress.Country.ShouldBe(country);
            newContact.MailingAddress.StateProvince.ShouldBe(province);
            newContact.MailingAddress.Community.ShouldBe(city);

            /* Delete New Contact */
            DeleteContact deleteCmd = new DeleteContact
            {
                ContactId = newContactId
            };
            var deleteResult = await contactRepository.ManageContact(deleteCmd);

            var deletedContactId = deleteResult.ContactId;

            /* Get deleted contact */
            var deletedCaseQuery = new ContactQuery
            {
                ContactId = deletedContactId
            };
            var deletedQueryResult = await contactRepository.QueryContact(deletedCaseQuery);

            var deletedContact = (Contact)deletedQueryResult.Items.LastOrDefault();

            deletedContact.ShouldBeNull();
        }
Example #17
0
 public async Task <IActionResult> CreateContact([FromBody] SaveContact newContact) =>
 await this.createContactCommand.Value.ExecuteAsync(newContact);
 public void Test_SaveContact_Requires_Phone()
 {
     var request = new SaveContact
     {
         FirstName = "First",
         LastName = "Last",
         Email = "*****@*****.**",
         PhoneNumber = null,
     };
     Should.Throw<ApplicationException>(() => _handler.Handle(request));
 }
        public void Test_SaveContact_Publishes_Alert()
        {
            var request = new SaveContact
            {
                Id = 1,
                FirstName = "First",
                LastName = "Last",
                Email = "*****@*****.**",
                PhoneNumber = "555-1212",
            };

            var mediator = A.Fake<IMediator>();
            var handler = new SaveContact.Handler(_db, _appContext, _queue, mediator);
            handler.Handle(request);

            A.CallTo(() => mediator.Publish(A<Alert>._)).MustHaveHappened(Repeated.Exactly.Once);
        }