public void Test_PublishInstitutionEnrichment_should_return_false() { Context.ProviderEnrichments.RemoveRange(Context.ProviderEnrichments); Context.Save(); var enrichmentService = new EnrichmentService(Context); var publishResults = enrichmentService.PublishProviderEnrichment(ProviderInstCode.ToLower(), Email); publishResults.Should().BeFalse(); }
public void Test_InstitutionEnrichment_And_Publishing_Workflow() { const string trainWithDisabilityText = "TrainWithDisabilily Text"; const string trainWithUsText = "TrainWithUs Text"; const string trainWithDisabilityUpdatedText = "TrainWithDisabilily Text updated"; const string trainWithUsUpdatedText = "TrainWithUs Text updated"; const string instDesc = "school1 description enrichement"; var enrichmentService = new EnrichmentService(Context); var model = new UcasProviderEnrichmentPostModel { EnrichmentModel = new ProviderEnrichmentModel { TrainWithDisability = trainWithDisabilityText, TrainWithUs = trainWithUsText, AccreditingProviderEnrichments = new List <AccreditingProviderEnrichment> { new AccreditingProviderEnrichment { UcasProviderCode = AccreditingInstCode, Description = instDesc, } } } }; var emptyEnrichment = enrichmentService.GetProviderEnrichment(ProviderInstCode, Email); emptyEnrichment.Status.Should().Be(EnumStatus.Draft, "no enrichments saved yet"); //test save enrichmentService.SaveProviderEnrichment(model, ProviderInstCode.ToLower(), Email); //test get var result = enrichmentService.GetProviderEnrichment(ProviderInstCode.ToLower(), Email); result.Should().NotBeNull(); result.EnrichmentModel.Should().NotBeNull(); result.EnrichmentModel.TrainWithDisability.Should().BeEquivalentTo(trainWithDisabilityText); result.EnrichmentModel.TrainWithUs.Should().BeEquivalentTo(trainWithUsText); result.LastPublishedTimestampUtc.Should().BeNull(); result.Status.Should().BeEquivalentTo(EnumStatus.Draft); result.EnrichmentModel.RegionCode.Should().Be(RegionCode); //test update var updatedmodel = new UcasProviderEnrichmentPostModel { EnrichmentModel = new ProviderEnrichmentModel { TrainWithDisability = trainWithDisabilityUpdatedText, TrainWithUs = trainWithUsUpdatedText, AccreditingProviderEnrichments = new List <AccreditingProviderEnrichment> { new AccreditingProviderEnrichment { UcasProviderCode = AccreditingInstCode, Description = instDesc, } } } }; enrichmentService.SaveProviderEnrichment(updatedmodel, ProviderInstCode.ToLower(), Email); var updateResult = enrichmentService.GetProviderEnrichment(ProviderInstCode, Email); updateResult.EnrichmentModel.TrainWithDisability.Should().BeEquivalentTo(trainWithDisabilityUpdatedText); updateResult.EnrichmentModel.TrainWithUs.Should().BeEquivalentTo(trainWithUsUpdatedText); updateResult.LastPublishedTimestampUtc.Should().BeNull(); updateResult.EnrichmentModel.RegionCode.Should().Be(RegionCode); //publish var publishResults = enrichmentService.PublishProviderEnrichment(ProviderInstCode.ToLower(), Email); publishResults.Should().BeTrue(); var publishRecord = enrichmentService.GetProviderEnrichment(ProviderInstCode.ToLower(), Email); publishRecord.Status.Should().BeEquivalentTo(EnumStatus.Published); publishRecord.LastPublishedTimestampUtc.Should().NotBeNull(); publishRecord.EnrichmentModel.RegionCode.Should().Be(RegionCode); var publishedProvider = Context.Providers.Single(p => p.ProviderCode == ProviderInstCode); publishedProvider.LastPublishedAt.Should().BeCloseTo(publishRecord.UpdatedTimestampUtc.Value, 5000); publishedProvider.ChangedAt.Should().BeCloseTo(publishRecord.UpdatedTimestampUtc.Value, 5000); //test save again after publish var afterPublishedModel = new UcasProviderEnrichmentPostModel { EnrichmentModel = new ProviderEnrichmentModel { TrainWithDisability = trainWithDisabilityText, TrainWithUs = trainWithUsText, AccreditingProviderEnrichments = new List <AccreditingProviderEnrichment> { new AccreditingProviderEnrichment { UcasProviderCode = AccreditingInstCode, Description = instDesc, } }, RegionCode = 909 } }; enrichmentService.SaveProviderEnrichment(afterPublishedModel, ProviderInstCode.ToLower(), Email); var updateResult2 = enrichmentService.GetProviderEnrichment(ProviderInstCode, Email); updateResult2.EnrichmentModel.TrainWithDisability.Should().BeEquivalentTo(trainWithDisabilityText); updateResult2.EnrichmentModel.TrainWithUs.Should().BeEquivalentTo(trainWithUsText); updateResult2.Status.Should().BeEquivalentTo(EnumStatus.Draft); updateResult2.LastPublishedTimestampUtc.ToString().Should().BeEquivalentTo(publishRecord.LastPublishedTimestampUtc.ToString()); updateResult2.EnrichmentModel.RegionCode.Should().NotBe(RegionCode); //check number of records generated from this var draftCount = Context.ProviderEnrichments.Count(x => x.Status == EnumStatus.Draft); var publishedCount = Context.ProviderEnrichments.Count(x => x.Status == EnumStatus.Published); publishedCount.Should().Be(1); draftCount.Should().Be(1); }
public void Test_PublishInstitutionEnrichment_should_argument_exception(string instCode, string email) { var enrichmentService = new EnrichmentService(Context); Assert.Throws <ArgumentException>(() => enrichmentService.PublishProviderEnrichment(instCode, email)); }