public void DetectChanges_GivenTableDefinitionNameChange_ReturnsModelWithChanges() { //Arrange DatasetDefinition newDefinition = new DatasetDefinition { Name = "name2", TableDefinitions = new List <TableDefinition> { new TableDefinition { Name = "name2", FieldDefinitions = new List <FieldDefinition>() } } }; DatasetDefinition existingDefinition = new DatasetDefinition { Name = "name2", TableDefinitions = new List <TableDefinition> { new TableDefinition { Name = "name1", FieldDefinitions = new List <FieldDefinition>() } } }; DefinitionChangesDetectionService service = new DefinitionChangesDetectionService(); //Act DatasetDefinitionChanges changes = service.DetectChanges(newDefinition, existingDefinition); //Assert changes .HasChanges .Should() .BeTrue(); changes .TableDefinitionChanges .First() .HasChanges .Should() .BeTrue(); changes .TableDefinitionChanges .First() .ChangeTypes .First() .Should() .Be(TableDefinitionChangeType.DefinitionName); changes .TableDefinitionChanges .First() .TableDefinition .Name .Should() .Be("name2"); }
public void DetectChanges_GivenNoChanges_ReturnsModelWithNoChanges() { //Arrange DatasetDefinition newDefinition = new DatasetDefinition { Name = "name" }; DatasetDefinition existingDefinition = new DatasetDefinition { Name = "name" }; DefinitionChangesDetectionService service = new DefinitionChangesDetectionService(); //Act DatasetDefinitionChanges changes = service.DetectChanges(newDefinition, existingDefinition); //Assert changes .HasChanges .Should() .BeFalse(); }
public void DetectChanges_GivenNewTableDefinitionHasFieldTypeChange_ReturnsModelWithChanges() { //Arrange DatasetDefinition newDefinition = new DatasetDefinition { Name = "name2", TableDefinitions = new List <TableDefinition> { new TableDefinition { Name = "name1", FieldDefinitions = new List <FieldDefinition> { new FieldDefinition { Id = "123", Name = "field1", Type = FieldType.String } } } } }; DatasetDefinition existingDefinition = new DatasetDefinition { Name = "name2", TableDefinitions = new List <TableDefinition> { new TableDefinition { Name = "name1", FieldDefinitions = new List <FieldDefinition> { new FieldDefinition { Id = "123", Name = "field1", Type = FieldType.Decimal }, } } } }; DefinitionChangesDetectionService service = new DefinitionChangesDetectionService(); //Act DatasetDefinitionChanges changes = service.DetectChanges(newDefinition, existingDefinition); //Assert changes .HasChanges .Should() .BeTrue(); changes .TableDefinitionChanges .First() .HasChanges .Should() .BeTrue(); changes .TableDefinitionChanges .First() .FieldChanges .First() .ChangeTypes .First() .Should() .Be(FieldDefinitionChangeType.FieldType); }
public void DetectChanges_GivenNewTableDefinitionHasMultipleChanges_ReturnsModelWithChanges() { //Arrange DatasetDefinition newDefinition = new DatasetDefinition { Name = "name2", TableDefinitions = new List <TableDefinition> { new TableDefinition { Name = "name1", FieldDefinitions = new List <FieldDefinition> { new FieldDefinition { Id = "123", Name = "field2", IsAggregable = false }, new FieldDefinition { Id = "456", Name = "field3", IsAggregable = false }, new FieldDefinition { Id = "789", Name = "field4", IsAggregable = false } } } } }; DatasetDefinition existingDefinition = new DatasetDefinition { Name = "name2", TableDefinitions = new List <TableDefinition> { new TableDefinition { Name = "name1", FieldDefinitions = new List <FieldDefinition> { new FieldDefinition { Id = "123", Name = "field1", IsAggregable = true }, } } } }; DefinitionChangesDetectionService service = new DefinitionChangesDetectionService(); //Act DatasetDefinitionChanges changes = service.DetectChanges(newDefinition, existingDefinition); //Assert changes .HasChanges .Should() .BeTrue(); changes .TableDefinitionChanges .First() .FieldChanges .Should() .HaveCount(3); changes .TableDefinitionChanges .First() .FieldChanges .Count(m => m.ChangeTypes.First() == FieldDefinitionChangeType.AddedField) .Should() .Be(2); changes .TableDefinitionChanges .First() .FieldChanges .Count(m => m.ChangeTypes.First() == FieldDefinitionChangeType.FieldName) .Should() .Be(1); }
public void DetectChanges_GivenNewTableDefinitionHasChangedFieldAggrgableFalse_ReturnsModelWithChanges() { //Arrange DatasetDefinition newDefinition = new DatasetDefinition { Name = "name2", TableDefinitions = new List <TableDefinition> { new TableDefinition { Name = "name1", FieldDefinitions = new List <FieldDefinition> { new FieldDefinition { Id = "123", Name = "field1", IsAggregable = false } } } } }; DatasetDefinition existingDefinition = new DatasetDefinition { Name = "name2", TableDefinitions = new List <TableDefinition> { new TableDefinition { Name = "name1", FieldDefinitions = new List <FieldDefinition> { new FieldDefinition { Id = "123", Name = "field1", IsAggregable = true }, } } } }; DefinitionChangesDetectionService service = new DefinitionChangesDetectionService(); //Act DatasetDefinitionChanges changes = service.DetectChanges(newDefinition, existingDefinition); //Assert changes .HasChanges .Should() .BeTrue(); changes .TableDefinitionChanges .First() .HasChanges .Should() .BeTrue(); changes .TableDefinitionChanges .First() .FieldChanges .First() .ChangeTypes .First() .Should() .Be(FieldDefinitionChangeType.IsNotAggregable); }
public void DetectChanges_GivenNewTableDefinitionHasLessFields_ReturnsModelWithChanges() { //Arrange DatasetDefinition newDefinition = new DatasetDefinition { Name = "name2", TableDefinitions = new List <TableDefinition> { new TableDefinition { Name = "name1", FieldDefinitions = new List <FieldDefinition> { new FieldDefinition { Id = "123" } } } } }; DatasetDefinition existingDefinition = new DatasetDefinition { Name = "name2", TableDefinitions = new List <TableDefinition> { new TableDefinition { Name = "name1", FieldDefinitions = new List <FieldDefinition> { new FieldDefinition { Id = "123" }, new FieldDefinition { Id = "456" } } } } }; DefinitionChangesDetectionService service = new DefinitionChangesDetectionService(); //Act DatasetDefinitionChanges changes = service.DetectChanges(newDefinition, existingDefinition); //Assert changes .HasChanges .Should() .BeTrue(); changes .TableDefinitionChanges .First() .HasChanges .Should() .BeTrue(); changes .TableDefinitionChanges .First() .FieldChanges .First() .ChangeTypes .First() .Should() .Be(FieldDefinitionChangeType.RemovedField); changes .TableDefinitionChanges .First() .FieldChanges .First() .FieldDefinition .Id .Should() .Be("456"); }