public async Task ProcessChange_GivenMessageWithNoDefinitionChanges_LogsAndReturns() { //Arrange const string definitionId = "123456"; DatasetDefinitionChanges datasetDefinitionChanges = new DatasetDefinitionChanges { Id = definitionId }; string json = JsonConvert.SerializeObject(datasetDefinitionChanges); Message message = new Message(Encoding.UTF8.GetBytes(json)); ILogger logger = CreateLogger(); DatasetDefinitionNameChangeProcessor processor = CreateProcessor(logger: logger); //Act await processor.Process(message); //Assert logger .Received(1) .Information(Arg.Is($"No dataset definition name change for definition id '{definitionId}'")); }
public async Task ProcessChange_GivenMessageWithDefinitionChanges_CallsServices() { //Arrange const string definitionId = "123456"; const string definitionName = "New def name"; DatasetDefinitionChanges datasetDefinitionChanges = new DatasetDefinitionChanges { Id = definitionId, NewName = definitionName }; datasetDefinitionChanges.DefinitionChanges.Add(DefinitionChangeType.DefinitionName); string json = JsonConvert.SerializeObject(datasetDefinitionChanges); Message message = new Message(Encoding.UTF8.GetBytes(json)); ILogger logger = CreateLogger(); IDefinitionSpecificationRelationshipService definitionSpecificationRelationshipService = CreateDefinitionSpecificationRelationshipService(); IDatasetService datasetService = CreateDataService(); DatasetDefinitionNameChangeProcessor processor = CreateProcessor(definitionSpecificationRelationshipService, datasetService, logger); //Act await processor.Process(message); //Assert await definitionSpecificationRelationshipService .Received(1) .UpdateRelationshipDatasetDefinitionName(Arg.Is <Reference>(m => m.Id == definitionId && m.Name == definitionName)); await datasetService .Received(1) .UpdateDatasetAndVersionDefinitionName(Arg.Is <Reference>(m => m.Id == definitionId && m.Name == definitionName)); logger .Received() .Information(Arg.Is($"Updating relationships for updated definition name with definition id '{definitionId}'")); logger .Received(1) .Information(Arg.Is($"Updating datasets for updated definition name with definition id '{definitionId}'")); }
public void ProcessChange_GivenANullModel_ThrowsException() { //Arrange Message message = new Message(); DatasetDefinitionNameChangeProcessor processor = CreateProcessor(); //Act Func <Task> test = async() => await processor.Process(message); //Assert test .Should() .ThrowExactly <NonRetriableException>() .Which .Message .Should() .Be("Message does not contain a valid dataset definition change model"); }
public async Task ProcessChange_GivenFeatureToggleSwitchOff_DoesNotProcess() { //Arrange Message message = new Message(); ILogger logger = CreateLogger(); IFeatureToggle featureToggle = CreateFeatureToggle(false); DatasetDefinitionNameChangeProcessor processor = CreateProcessor(logger: logger, featureToggle: featureToggle); //Act await processor.Process(message); //Assert logger .DidNotReceive() .Information(Arg.Is("Checking for changes before proceeding")); }