Exemple #1
0
        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");
        }
Exemple #2
0
        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();
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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");
        }