public void Should_set_GeneratedIdProperty()
        {
            var sqlMetadata = new SqlMetadata<TestObject>();

            Assert.AreEqual("Id", sqlMetadata.GeneratedIdProperty.ColumnName);
            Assert.AreEqual("Id", sqlMetadata.GeneratedIdProperty.PropertyName);
        }
Exemple #2
0
        public async Task SaveToFileAsync_WithValidSchema_ShouldWriteReadableFile()
        {
            // arrange
            var metadata1 = new SqlMetadata();
            var metadata2 = new SqlMetadata();

            await metadata1.LoadFromDatabaseAsync(_connectionString);

            var fileName = Path.GetTempFileName();

            // act
            await metadata1.SaveToFileAsync(fileName);

            await metadata2.LoadFromFileAsync(fileName);

            // assert
            Assert.Equal(metadata1.TablesMetadata.Rows.Count, metadata2.TablesMetadata.Rows.Count);
            Assert.Equal(metadata1.IndexesMetadata.Rows.Count, metadata2.IndexesMetadata.Rows.Count);
            Assert.Equal(metadata1.ForeignKeysMetadata.Rows.Count, metadata2.ForeignKeysMetadata.Rows.Count);
            Assert.Equal(metadata1.CheckConstraintsMetadata.Rows.Count, metadata2.CheckConstraintsMetadata.Rows.Count);
            Assert.Equal(metadata1.DefaultConstraintsMetadata.Rows.Count, metadata2.DefaultConstraintsMetadata.Rows.Count);
            Assert.Equal(metadata1.TriggersMetadata.Rows.Count, metadata2.TriggersMetadata.Rows.Count);
            Assert.Equal(metadata1.ViewsMetadata.Rows.Count, metadata2.ViewsMetadata.Rows.Count);
            Assert.Equal(metadata1.StoredProceduresMetadata.Rows.Count, metadata2.StoredProceduresMetadata.Rows.Count);
            Assert.Equal(metadata1.StoredProcedureParametersMetadata.Rows.Count, metadata2.StoredProcedureParametersMetadata.Rows.Count);
            Assert.Equal(metadata1.FunctionsMetadata.Rows.Count, metadata2.FunctionsMetadata.Rows.Count);
            Assert.Equal(metadata1.FunctionParametersMetadata.Rows.Count, metadata2.FunctionParametersMetadata.Rows.Count);
        }
        public void Should_set_TreeParentId_property()
        {
            var sqlMetadata = new SqlMetadata<TestObjectWithTreeId>();

            Assert.IsNotNull(sqlMetadata.TreeParentIdProperty);
            Assert.AreEqual("ParentId", sqlMetadata.TreeParentIdProperty.ColumnName);
            Assert.AreEqual("ParentId", sqlMetadata.TreeParentIdProperty.PropertyName);
        }
        public void Should_set_containerIds_property()
        {
            var sqlMetadata = new SqlMetadata<TestObjectWithContainerId>();

            Assert.IsNotNull(sqlMetadata.ContainerIdProperties);
            Assert.AreEqual(1, sqlMetadata.ContainerIdProperties.Count);
            Assert.AreEqual("ParentId", sqlMetadata.ContainerIdProperties[0].ColumnName);
            Assert.AreEqual("ParentId", sqlMetadata.ContainerIdProperties[0].PropertyName);
        }
        public void Should_create_binary_import_command_excluding_generated_column()
        {
            var factory = new BinaryImportCommandFactory();
            var metadata = new SqlMetadata<TestObjectWithIdentity>();

            var commandString = factory.Create(metadata);
            const string expectedCommandString = @"COPY ""TestWithIdentity"" (""StringColumn"",""BoolProperty"") FROM STDIN BINARY";

            Assert.AreEqual(expectedCommandString, commandString);
        }
        public void WriteAllFiles_WithSqlDatabase_ShouldWriteFiles()
        {
            // arrange
            var connectionString = @"Data Source=(localdb)\MSSQLLocalDB; Initial Catalog=AdventureWorks2016; Integrated Security=True;";

            var metadata = new SqlMetadata();

            metadata.LoadFromDatabase(connectionString);

            var database = new SqlDatabase();

            database.LoadFromMetadata(metadata);

            // act

            // assert
        }
Exemple #7
0
        public async Task LoadFromDatabaseAsync_WithValidConnectionString_ShouldLoadSuccessfully()
        {
            // arrange
            var metadata = new SqlMetadata();

            // act
            await metadata.LoadFromDatabaseAsync(_connectionString);

            // assert
            Assert.NotEmpty(metadata.TablesMetadata.Rows);
            Assert.NotEmpty(metadata.IndexesMetadata.Rows);
            Assert.NotEmpty(metadata.ForeignKeysMetadata.Rows);
            Assert.NotEmpty(metadata.CheckConstraintsMetadata.Rows);
            Assert.NotEmpty(metadata.DefaultConstraintsMetadata.Rows);
            Assert.NotEmpty(metadata.TriggersMetadata.Rows);
            Assert.NotEmpty(metadata.ViewsMetadata.Rows);
            Assert.NotEmpty(metadata.StoredProceduresMetadata.Rows);
            Assert.NotEmpty(metadata.StoredProcedureParametersMetadata.Rows);
            Assert.NotEmpty(metadata.FunctionsMetadata.Rows);
            Assert.NotEmpty(metadata.FunctionParametersMetadata.Rows);
        }
Exemple #8
0
        public async Task LoadFromMetadata_WithPopulatedMetadata_ShouldLoadSuccessfully()
        {
            // arrange
            var database = new SqlDatabase();

            var metadata = new SqlMetadata();
            await metadata.LoadFromDatabaseAsync(_connectionString);

            // act
            database.LoadFromMetadata(metadata);

            // assert
            Assert.Equal(new SqlConnectionStringBuilder(_connectionString).InitialCatalog, database.Name);
            Assert.NotEmpty(database.Schemas);

            Assert.NotEmpty(database.Tables);
            Assert.True(database.Tables.All(x => x.Columns.Any()));

            Assert.NotEmpty(database.Views);
            Assert.True(database.Views.All(x => x.Columns.Any()));

            Assert.NotEmpty(database.Indexes);
            Assert.True(database.Indexes.All(x => x.KeyColumns.Any()));
            Assert.Contains(database.Indexes, x => x.IncludedColumns.Any());

            Assert.NotEmpty(database.ForeignKeys);
            Assert.True(database.ForeignKeys.All(x => x.Columns.Any()));
            Assert.True(database.ForeignKeys.All(x => x.PrimaryKey != null));

            Assert.NotEmpty(database.CheckConstraints);
            Assert.True(database.CheckConstraints.All(x => x.Column != null));

            Assert.NotEmpty(database.DefaultConstraints);
            Assert.True(database.DefaultConstraints.All(x => x.Column != null));

            Assert.NotEmpty(database.Triggers);
            Assert.NotEmpty(database.StoredProcedures);
            Assert.NotEmpty(database.Functions);
        }
        public void Should_not_set_containerIds_property()
        {
            var sqlMetadata = new SqlMetadata<TestObjectWithoutGeneratedColumn>();

            Assert.AreEqual(0, sqlMetadata.ContainerIdProperties.Count);
        }
        public void Should_not_set_GeneratedIdProperty()
        {
            var sqlMetadata = new SqlMetadata<TestObjectWithoutGeneratedColumn>();

            Assert.IsNull(sqlMetadata.GeneratedIdProperty);
        }
 public void Should_set_TableName()
 {
     var sqlMetadata = new SqlMetadata<TestObject>();
     Assert.AreEqual("TestObjectTableName", sqlMetadata.TableName);
 }
        public void Should_set_AllProperites()
        {
            var sqlMetadata = new SqlMetadata<TestObject>();

            Assert.AreEqual(4, sqlMetadata.AllProperties.Count);
        }