public async Task When_Primary_And_Secondary_Organisations_Have_Distinct_Standards() { // // Arrange. // var primaryEpaId = "EPA0200"; var primaryContactId = Guid.NewGuid(); CreateOrganisationWithContact(primaryEpaId, "Primary Organisation Name", primaryContactId, "Primary Contact Name", "*****@*****.**"); var id = CreateOrganisationStandard(primaryEpaId, 271, "ST0190", primaryContactId); CreateOrganisationStandardVersion(id, "ST0190", "1.0"); CreateOrganisationStandardDeliveryArea(id, 1); CreateOrganisationStandardDeliveryArea(id, 2); CreateOrganisationStandardDeliveryArea(id, 3); var secondaryEpaId = "EPA0201"; var secondaryContactId = Guid.NewGuid(); CreateOrganisationWithContact(secondaryEpaId, "Secondary Organisation Name", secondaryContactId, "Secondary Contact Name", "*****@*****.**"); id = CreateOrganisationStandard(secondaryEpaId, 139, "ST0232", secondaryContactId); CreateOrganisationStandardVersion(id, "ST0232", "1.0"); CreateOrganisationStandardDeliveryArea(id, 1); CreateOrganisationStandardDeliveryArea(id, 2); CreateOrganisationStandardDeliveryArea(id, 3); CreateOrganisationStandardDeliveryArea(id, 4); CreateOrganisationStandardDeliveryArea(id, 5); CreateOrganisationStandardDeliveryArea(id, 6); CreateOrganisationStandardDeliveryArea(id, 7); CreateOrganisationStandardDeliveryArea(id, 8); CreateOrganisationStandardDeliveryArea(id, 9); // // Act. // var dbContext = DatabaseHelper.TestContext; var primaryOrganisation = dbContext.Organisations.First(e => e.EndPointAssessorOrganisationId == primaryEpaId); var secondaryOrganisation = dbContext.Organisations.First(e => e.EndPointAssessorOrganisationId == secondaryEpaId); var userId = "*****@*****.**"; var secondaryStandardsEffectiveTo = DateTime.UtcNow.AddMonths(3); var sut = new OrganisationMergingService(dbContext); var mo = await sut.MergeOrganisations(primaryOrganisation, secondaryOrganisation, secondaryStandardsEffectiveTo, userId); // // Assert. // mo.Should().NotBeNull(); mo.MergeOrganisationStandards.Should().HaveCount(5); mo.MergeOrganisationStandards.Where(mos => mos.Replicates == ReplicationType.Before).Should().HaveCount(2); mo.MergeOrganisationStandards.Where(mos => mos.Replicates == ReplicationType.After).Should().HaveCount(3); primaryOrganisation.OrganisationStandards.Should().HaveCount(2); var primaryOrganisationStandard = primaryOrganisation.OrganisationStandards.Where(os => os.StandardReference == "ST0232"); }
public async Task MergeOrganisation_Should_Be_Created() { // Arrange. var primaryEpaId = "EPA0200"; var primaryContactId = Guid.NewGuid(); CreateOrganisationWithContact(primaryEpaId, "Primary Organisation Name", primaryContactId, "Primary Contact Name", "*****@*****.**"); var secondaryEpaId = "EPA0201"; var secondaryContactId = Guid.NewGuid(); CreateOrganisationWithContact(secondaryEpaId, "Secondary Organisation Name", secondaryContactId, "Secondary Contact Name", "*****@*****.**"); // Act. var actionedByUser = "******"; var dbContext = DatabaseHelper.TestContext; var sut = new OrganisationMergingService(dbContext); var testExcutionTimestamp = DateTime.UtcNow; var primaryOrganisation = GetOrganisationByEPAOId(primaryEpaId); var secondaryOrganisation = GetOrganisationByEPAOId(secondaryEpaId); var secondaryStandardsEffectiveTo = DateTime.UtcNow.AddYears(1); var mo = sut.CallPrivateMethod <MergeOrganisation>("CreateMergeOrganisations", new object[] { primaryOrganisation, secondaryOrganisation, secondaryStandardsEffectiveTo, actionedByUser }); await dbContext.SaveChangesAsync(); // Assert. mo.Id.Should().BeGreaterThan(0); mo.PrimaryEndPointAssessorOrganisationId.Should().Be(primaryEpaId); mo.SecondaryEndPointAssessorOrganisationId.Should().Be(secondaryEpaId); mo.CreatedAt.Should().BeCloseTo(testExcutionTimestamp, 1500); mo.UpdatedAt.Should().BeNull(); mo.Status.Should().Be(MergeOrganisationStatus.InProgress); mo.CreatedBy.Should().Be(actionedByUser); mo.UpdatedBy.Should().BeNull(); }