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); }
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); }
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(); }
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); }
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_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_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); }
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()); } }
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); }
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)); }
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(); }
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); }