public void GivenEmailCommunication_WhenOriginatorIsDeleted_ThenCommunicationEventIsDeleted() { var personalEmailAddress = new ContactMechanismPurposes(this.Session).PersonalEmailAddress; var originatorEmail = new EmailAddressBuilder(this.Session).WithElectronicAddressString("*****@*****.**").Build(); var originatorContact = new PartyContactMechanismBuilder(this.Session).WithContactMechanism(originatorEmail).WithContactPurpose(personalEmailAddress).WithUseAsDefault(true).Build(); var originator = new PersonBuilder(this.Session).WithLastName("originator").WithPartyContactMechanism(originatorContact).Build(); var addresseeEmail = new EmailAddressBuilder(this.Session).WithElectronicAddressString("*****@*****.**").Build(); var addresseeContact = new PartyContactMechanismBuilder(this.Session).WithContactMechanism(addresseeEmail).WithContactPurpose(personalEmailAddress).WithUseAsDefault(true).Build(); var addressee = new PersonBuilder(this.Session).WithLastName("addressee").WithPartyContactMechanism(addresseeContact).Build(); this.Session.Derive(); this.Session.Commit(); var communication = new EmailCommunicationBuilder(this.Session) .WithSubject("Hello") .WithDescription("Hello world!") .WithFromParty(originator) .WithToParty(addressee) .WithFromEmail(originatorEmail) .WithToEmail(addresseeEmail) .Build(); this.Session.Derive(); Assert.Single(this.Session.Extent <EmailCommunication>()); originator.Delete(); this.Session.Derive(); Assert.Equal(0, this.Session.Extent <EmailCommunication>().Count); }
public void GivenEmailCommunication_WhenDeriving_ThenInvolvedPartiesAreDerived() { var owner = new PersonBuilder(this.Session).WithLastName("owner").Build(); var personalEmailAddress = new ContactMechanismPurposes(this.Session).PersonalEmailAddress; var originatorEmail = new EmailAddressBuilder(this.Session).WithElectronicAddressString("*****@*****.**").Build(); var originatorContact = new PartyContactMechanismBuilder(this.Session).WithContactMechanism(originatorEmail).WithContactPurpose(personalEmailAddress).WithUseAsDefault(true).Build(); var originator = new PersonBuilder(this.Session).WithLastName("originator").WithPartyContactMechanism(originatorContact).Build(); var addresseeEmail = new EmailAddressBuilder(this.Session).WithElectronicAddressString("*****@*****.**").Build(); var addresseeContact = new PartyContactMechanismBuilder(this.Session).WithContactMechanism(addresseeEmail).WithContactPurpose(personalEmailAddress).WithUseAsDefault(true).Build(); var addressee = new PersonBuilder(this.Session).WithLastName("addressee").WithPartyContactMechanism(addresseeContact).Build(); this.Session.Derive(); this.Session.Commit(); var communication = new EmailCommunicationBuilder(this.Session) .WithSubject("Hello") .WithDescription("Hello world!") .WithOwner(owner) .WithFromParty(originator) .WithToParty(addressee) .WithFromEmail(originatorEmail) .WithToEmail(addresseeEmail) .Build(); this.Session.Derive(); Assert.Equal(3, communication.InvolvedParties.Count); Assert.Contains(owner, communication.InvolvedParties); Assert.Contains(originator, communication.InvolvedParties); Assert.Contains(addressee, communication.InvolvedParties); }
public void GivenEmailCommunicationIsBuild_WhenDeriving_ThenStatusIsSet() { var personalEmailAddress = new ContactMechanismPurposes(this.Session).PersonalEmailAddress; var originatorEmail = new EmailAddressBuilder(this.Session).WithElectronicAddressString("*****@*****.**").Build(); var originatorContact = new PartyContactMechanismBuilder(this.Session).WithContactMechanism(originatorEmail).WithContactPurpose(personalEmailAddress).WithUseAsDefault(true).Build(); var originator = new PersonBuilder(this.Session).WithLastName("originator").WithPartyContactMechanism(originatorContact).Build(); var addresseeEmail = new EmailAddressBuilder(this.Session).WithElectronicAddressString("*****@*****.**").Build(); var addresseeContact = new PartyContactMechanismBuilder(this.Session).WithContactMechanism(addresseeEmail).WithContactPurpose(personalEmailAddress).WithUseAsDefault(true).Build(); var addressee = new PersonBuilder(this.Session).WithLastName("addressee").WithPartyContactMechanism(addresseeContact).Build(); var communication = new EmailCommunicationBuilder(this.Session) .WithOwner(this.Administrator) .WithSubject("Hello") .WithDescription("Hello world!") .WithFromParty(originator) .WithToParty(addressee) .WithFromEmail(originatorEmail) .WithToEmail(addresseeEmail) .Build(); Assert.False(this.Session.Derive(false).HasErrors); Assert.Equal(communication.CommunicationEventState, new CommunicationEventStates(this.Session).Scheduled); Assert.Equal(communication.CommunicationEventState, communication.LastCommunicationEventState); }
public static EmailCommunicationBuilder WithDefaults(this EmailCommunicationBuilder @this, Organisation internalOrganisation) { var faker = @this.Session.Faker(); var administrator = (Person) new UserGroups(@this.Session).Administrators.Members.First; @this.WithDescription(faker.Lorem.Sentence(20)); @this.WithSubject(faker.Lorem.Sentence(5)); @this.WithFromParty(internalOrganisation.ActiveEmployees.First); @this.WithToParty(internalOrganisation.ActiveCustomers.First); @this.WithFromEmail(internalOrganisation.ActiveEmployees.First.GeneralEmail); @this.WithToEmail(internalOrganisation.ActiveCustomers.First.GeneralEmail); @this.WithEventPurpose(new CommunicationEventPurposes(@this.Session).Meeting); @this.WithOwner(administrator); @this.WithActualStart(DateTime.UtcNow); return(@this); }
public void GivenEmailCommunicationIsBuild_WhenDeriving_ThenStatusIsSet() { var originatorEmail = new EmailAddressBuilder(this.Session).WithElectronicAddressString("*****@*****.**").Build(); var addresseeEmail = new EmailAddressBuilder(this.Session).WithElectronicAddressString("*****@*****.**").Build(); var communication = new EmailCommunicationBuilder(this.Session) .WithOwner(new People(this.Session).FindBy(M.Person.UserName, Users.AdministratorUserName)) .WithSubject("Hello") .WithDescription("Hello world!") .WithFromEmail(originatorEmail) .WithToEmail(addresseeEmail) .Build(); Assert.False(this.Session.Derive(false).HasErrors); Assert.Equal(communication.CommunicationEventState, new CommunicationEventStates(this.Session).Scheduled); Assert.Equal(communication.CommunicationEventState, communication.LastCommunicationEventState); }
public void Edit() { var allors = new Organisations(this.Session).FindBy(M.Organisation.Name, "Allors BVBA"); var employee = allors.ActiveEmployees.First(); var organisation = allors.ActiveCustomers.First(v => v.GetType().Name == typeof(Organisation).Name); var contact = organisation.CurrentContacts.First; var employeeEmailAddress = employee.PersonalEmailAddress; var personEmailAddress = organisation.CurrentContacts.First.PersonalEmailAddress; var editCommunicationEvent = new EmailCommunicationBuilder(this.Session) .WithSubject("dummy") .WithFromParty(employee) .WithFromEmail(employeeEmailAddress) .WithToParty(organisation.CurrentContacts.First) .WithToEmail(personEmailAddress) .WithEmailTemplate(new EmailTemplateBuilder(this.Session).Build()) .Build(); this.Session.Derive(); this.Session.Commit(); var before = new EmailCommunications(this.Session).Extent().ToArray(); this.organisationListPage.Table.DefaultAction(organisation); var organisationOverview = new OrganisationOverviewComponent(this.organisationListPage.Driver); var communicationEventOverview = organisationOverview.CommunicationeventOverviewPanel.Click(); communicationEventOverview.Table.DefaultAction(editCommunicationEvent); var emailCommunicationEdit = new EmailCommunicationEditComponent(organisationOverview.Driver); emailCommunicationEdit .CommunicationEventState.Select(new CommunicationEventStates(this.Session).Completed) .EventPurposes.Toggle(new CommunicationEventPurposes(this.Session).Inquiry) .FromParty.Select(contact) .FromEmail.Select(personEmailAddress) .ToParty.Select(employee) .ToEmail.Select(employeeEmailAddress) .SubjectTemplate.Set("new subject") .BodyTemplate.Set("new body") .ScheduledStart.Set(DateTimeFactory.CreateDate(2018, 12, 24)) .ScheduledEnd.Set(DateTimeFactory.CreateDate(2018, 12, 24)) .ActualStart.Set(DateTimeFactory.CreateDate(2018, 12, 24)) .ActualEnd.Set(DateTimeFactory.CreateDate(2018, 12, 24)) .SAVE.Click(); this.Driver.WaitForAngular(); this.Session.Rollback(); var after = new EmailCommunications(this.Session).Extent().ToArray(); Assert.Equal(after.Length, before.Length); Assert.Equal(new CommunicationEventStates(this.Session).Completed, editCommunicationEvent.CommunicationEventState); Assert.Contains(new CommunicationEventPurposes(this.Session).Inquiry, editCommunicationEvent.EventPurposes); Assert.Equal(contact, editCommunicationEvent.FromParty); Assert.Equal(personEmailAddress, editCommunicationEvent.FromEmail); Assert.Equal(employee, editCommunicationEvent.ToParty); Assert.Equal(employeeEmailAddress, editCommunicationEvent.ToEmail); Assert.Equal("new subject", editCommunicationEvent.EmailTemplate.SubjectTemplate); Assert.Equal("new body", editCommunicationEvent.EmailTemplate.BodyTemplate); Assert.Equal(DateTimeFactory.CreateDate(2018, 12, 24).Date, editCommunicationEvent.ScheduledStart); Assert.Equal(DateTimeFactory.CreateDate(2018, 12, 24).Date, editCommunicationEvent.ScheduledEnd.Value.Date); Assert.Equal(DateTimeFactory.CreateDate(2018, 12, 24).Date, editCommunicationEvent.ActualStart.Value.Date); Assert.Equal(DateTimeFactory.CreateDate(2018, 12, 24).Date, editCommunicationEvent.ActualEnd.Value.Date); }
public void Edit() { var people = new People(this.Session).Extent(); var person = people.First(v => v.PartyName.Equals("John0 Doe0")); var allors = new Organisations(this.Session).FindBy(M.Organisation.Name, "Allors BVBA"); var employee = allors.ActiveEmployees.First(v => v.FirstName.Equals("first")); var employeeEmailAddress = employee.PersonalEmailAddress; var personEmailAddress = person.PersonalEmailAddress; var editCommunicationEvent = new EmailCommunicationBuilder(this.Session) .WithSubject("dummy") .WithFromEmail(employeeEmailAddress) .WithToEmail(personEmailAddress) .WithEmailTemplate(new EmailTemplateBuilder(this.Session).Build()) .Build(); this.Session.Derive(); this.Session.Commit(); var before = new EmailCommunications(this.Session).Extent().ToArray(); var personOverview = this.personListPage.Select(person); var page = personOverview.SelectEmailCommunication(editCommunicationEvent); page.EventState.Set(new CommunicationEventStates(this.Session).Completed.Name) .Purposes.Toggle(new CommunicationEventPurposes(this.Session).Inquiry.Name) .FromParty.Set(person.PartyName) .FromEmail.Set(personEmailAddress.ElectronicAddressString) .ToParty.Set(employee.PartyName) .ToEmail.Set(employeeEmailAddress.ElectronicAddressString) .Subject.Set("new subject") .Body.Set("new body") .ScheduledStart.Set(DateTimeFactory.CreateDate(2018, 12, 24)) .ScheduledEnd.Set(DateTimeFactory.CreateDate(2018, 12, 24)) .ActualStart.Set(DateTimeFactory.CreateDate(2018, 12, 24)) .ActualEnd.Set(DateTimeFactory.CreateDate(2018, 12, 24)) .Save.Click(); this.Driver.WaitForAngular(); this.Session.Rollback(); var after = new EmailCommunications(this.Session).Extent().ToArray(); Assert.Equal(after.Length, before.Length); Assert.Equal(new CommunicationEventStates(this.Session).Completed, editCommunicationEvent.CommunicationEventState); Assert.Contains(new CommunicationEventPurposes(this.Session).Inquiry, editCommunicationEvent.EventPurposes); Assert.Equal(person, editCommunicationEvent.FromParty); Assert.Equal(personEmailAddress, editCommunicationEvent.FromEmail); Assert.Equal(employee, editCommunicationEvent.ToParty); Assert.Equal(employeeEmailAddress, editCommunicationEvent.ToEmail); Assert.Equal("new subject", editCommunicationEvent.EmailTemplate.SubjectTemplate); Assert.Equal("new body", editCommunicationEvent.EmailTemplate.BodyTemplate); //Assert.Equal(DateTimeFactory.CreateDate(2018, 12, 24).Date, communicationEvent.ScheduledStart); //Assert.Equal(DateTimeFactory.CreateDate(2018, 12, 24).Date, communicationEvent.ScheduledEnd.Value.Date); //Assert.Equal(DateTimeFactory.CreateDate(2018, 12, 24).Date, communicationEvent.ActualStart.Value.Date); //Assert.Equal(DateTimeFactory.CreateDate(2018, 12, 24).Date, communicationEvent.ActualEnd.Value.Date); }