public void InternalHasValidationResult_GenerateIdentifier() { // Arrange var pidUriTemplateFlattened = new PidUriTemplateFlattenedBuilder().GenerateSampleData().Build(); var resource = CreateResource(null, pidUriTemplateFlattened.Id); var expectedidentifier = "https://pid.bayer.com/DINOS/4113458a-12a2-4f26-9ff7-1d8fb18b25ec"; var consumerGroup = new ConsumerGroupBuilder() .GenerateSampleData() .WithId($"{Graph.Metadata.Constants.Entity.IdPrefix}{new Guid()}") .WithPidUriTemplate(pidUriTemplateFlattened.Id) .BuildResultDTO(); _consumerGroupService.Setup(s => s.GetEntity(It.IsAny <string>())).Returns(consumerGroup); _pidUriTemplateService.Setup(t => t.GetFlatIdentifierTemplateById(It.IsAny <string>())).Returns(pidUriTemplateFlattened); _pidUriGenerationService.Setup(g => g.GenerateIdentifierFromTemplate(It.IsAny <PidUriTemplateFlattened>(), It.IsAny <Entity>())).Returns(expectedidentifier); SetupPidUriTemplateService(); SetupPidUriGenerationService(); EntityValidationFacade validationFacade = new EntityValidationFacade(ResourceCrudAction.Create, resource, null, null, _metadata, consumerGroup.Id); // Act _validator.HasValidationResult(validationFacade, GetPidUriProperty(resource)); // Assert Entity pidUri = validationFacade.RequestResource.Properties.SingleOrDefault(p => p.Key == Graph.Metadata.Constants.EnterpriseCore.PidUri).Value[0]; Assert.Equal(expectedidentifier, pidUri.Id); }
public void InternalHasValidationResult_CustomIdentifier_Successfully() { // Arrange var resource = CreateResource("https://pid.bayer.com/custom-valid-identifer"); var pidUriTemplateFlattened = new PidUriTemplateFlattenedBuilder().GenerateSampleData().Build(); SetupPidUriTemplateService(new List <PidUriTemplateFlattened>() { pidUriTemplateFlattened }); SetupPidUriGenerationService(); EntityValidationFacade validationFacade = new EntityValidationFacade(ResourceCrudAction.Create, resource, null, null, _metadata, null); // Act _validator.HasValidationResult(validationFacade, GetPidUriProperty(resource)); // Assert Assert.Contains(Graph.Metadata.Constants.EnterpriseCore.PidUri, validationFacade.RequestResource.Properties); Assert.Equal(0, validationFacade.ValidationResults.Count); Entity pidUri = validationFacade.RequestResource.Properties.SingleOrDefault(p => p.Key == Graph.Metadata.Constants.EnterpriseCore.PidUri).Value[0]; Assert.Equal("https://pid.bayer.com/custom-valid-identifer", pidUri.Id); Assert.DoesNotContain(Graph.Metadata.Constants.Identifier.HasUriTemplate, pidUri.Properties); }
public void InternalHasValidationResult_CreateValidationResult_MatchTemplateFailed() { // Arrange var pidUriTemplateFlattened = new PidUriTemplateFlattenedBuilder().GenerateSampleData().Build(); var resource = CreateResource("https://pid.bayer.com/Indigo/4113458a-12a2-4f26-9ff7-1d8fb18b25ec", pidUriTemplateFlattened.Id); var expectedMessage = RegistrationService.Common.Constants.Messages.PidUriTemplate.MatchedFailed; var consumerGroup = new ConsumerGroupBuilder() .GenerateSampleData() .BuildResultDTO(); _consumerGroupService.Setup(s => s.GetEntity(It.IsAny <string>())).Returns(consumerGroup); _pidUriTemplateService.Setup(t => t.GetFlatIdentifierTemplateById(It.IsAny <string>())).Returns(pidUriTemplateFlattened); SetupPidUriTemplateService(); SetupPidUriGenerationService(); EntityValidationFacade validationFacade = new EntityValidationFacade(ResourceCrudAction.Create, resource, null, null, _metadata, null); // Act _validator.HasValidationResult(validationFacade, GetPidUriProperty(resource)); // Assert AssertValidationResult(validationFacade, expectedMessage); }
public void InternalHasValidationResult_CreateValidationResult_ForbiddenTemplate() { // Arrange var pidUriTemplateFlattened = new PidUriTemplateFlattenedBuilder().GenerateSampleData().Build(); var resource = CreateResource(null, pidUriTemplateFlattened.Id); var expectedMessage = RegistrationService.Common.Constants.Messages.PidUriTemplate.ForbiddenTemplate; var consumerGroup = new ConsumerGroupBuilder() .GenerateSampleData() .WithPidUriTemplate("https://pid.bayer.com/kos/19050#9e8fb007-9cfd-4cf9-9084-2412cd999999") .BuildResultDTO(); _consumerGroupService.Setup(s => s.GetEntity(It.IsAny <string>())).Returns(consumerGroup); _pidUriTemplateService.Setup(t => t.GetFlatIdentifierTemplateById(It.IsAny <string>())).Returns(pidUriTemplateFlattened); SetupPidUriTemplateService(); SetupPidUriGenerationService(); EntityValidationFacade validationFacade = new EntityValidationFacade(ResourceCrudAction.Create, resource, null, null, _metadata, null); // Act _validator.HasValidationResult(validationFacade, GetPidUriProperty(resource)); // Assert AssertValidationResult(validationFacade, expectedMessage); }
public void InternalHasValidationResult_CreateValidationResult_IdentifierMatchForbiddenTemplate() { // Arrange var resource = CreateResource("https://pid.bayer.com/DINOS/4113458a-12a2-4f26-9ff7-1d8fb18b25ec"); var expectedMessage = Graph.Metadata.Constants.Messages.Identifier.MatchForbiddenTemplate; var pidUriTemplateFlattened = new PidUriTemplateFlattenedBuilder().GenerateSampleData().Build(); var consumerGroup = new ConsumerGroupBuilder() .GenerateSampleData() .WithPidUriTemplate("https://pid.bayer.com/kos/19050#9e8fb007-9cfd-4cf9-9084-2412cd999999") .BuildResultDTO(); _consumerGroupService.Setup(s => s.GetEntity(It.IsAny <string>())).Returns(consumerGroup); SetupPidUriTemplateService(new List <PidUriTemplateFlattened>() { pidUriTemplateFlattened }); SetupPidUriGenerationService(); EntityValidationFacade validationFacade = new EntityValidationFacade(ResourceCrudAction.Create, resource, null, null, _metadata, null); // Act _validator.HasValidationResult(validationFacade, GetPidUriProperty(resource)); // Assert AssertValidationResult(validationFacade, expectedMessage); }
public void InternalHasValidationResult_CreateValidationResult_IdentifierMatchValidTemplate() { // Arrange var resource = CreateResource("https://pid.bayer.com/DINOS/4113458a-12a2-4f26-9ff7-1d8fb18b25ec", "https://pid.bayer.com/kos/19050#14d9eeb8-d85d-446d-9703-3a0f43482f5a"); var pidUriTemplateFlattened = new PidUriTemplateFlattenedBuilder().GenerateSampleData().Build(); var consumerGroup = new ConsumerGroupBuilder() .GenerateSampleData() .WithId($"{Graph.Metadata.Constants.Entity.IdPrefix}{new Guid()}") .BuildResultDTO(); _consumerGroupService.Setup(s => s.GetEntity(It.IsAny <string>())).Returns(consumerGroup); SetupPidUriTemplateService(new List <PidUriTemplateFlattened>() { pidUriTemplateFlattened }); SetupPidUriGenerationService(); EntityValidationFacade validationFacade = new EntityValidationFacade(ResourceCrudAction.Create, resource, null, null, _metadata, consumerGroup.Id); // Act _validator.HasValidationResult(validationFacade, GetPidUriProperty(resource)); // Assert Entity identifier = validationFacade.RequestResource.Properties[Graph.Metadata.Constants.EnterpriseCore.PidUri].FirstOrDefault(); Assert.Contains(Graph.Metadata.Constants.Identifier.HasUriTemplate, identifier.Properties); var template = identifier.Properties[Graph.Metadata.Constants.Identifier.HasUriTemplate]; Assert.Contains("https://pid.bayer.com/kos/19050#14d9eeb8-d85d-446d-9703-3a0f43482f5a", template); }