public void When_TableExists_is_executed_and_table_does_notexists_Should_return_false()
        {
            // arrange
            var di           = DependencyInjectionFactory.ConfigureDependencyInjection();
            var clientConfig = di.GetService <IClientConfig>();

            if (!clientConfig.IsAssigned())
            {
                throw new Exception("clientconfig not returned by dependency injection");
            }

            clientConfig.DefaultDatabase = "TestClassGenerator";

            var client = new SqlClient(new SqlClientRepository(clientConfig));

            IDatabaseStructure target = new DatabaseStructure(client);

            target.BuildStructure();

            // act
            var tableExists = client.TableExists("Test666");

            // assert
            tableExists.Should().BeFalse();
        }
        public void BuildStructureWithDifferentConnectionNameTest()
        {
            // arrange
            var di           = DependencyInjectionFactory.ConfigureDependencyInjection();
            var clientConfig = di.GetService <IClientConfig>();

            if (!clientConfig.IsAssigned())
            {
                throw new Exception("clientconfig not returned by dependency injection");
            }

            clientConfig.DefaultDatabase = "SchemaDatabaseDevelopment";

            var client = new SqlClient(new SqlClientRepository(clientConfig));

            IDatabaseStructure target = new DatabaseStructure(client);

            // act
            target.BuildStructure();

            // assert
            target.Tables.Should().HaveCount(8); // TestClassGenerator heeft nu 6 tabellen

            target.Tables.First(x => x.Name == "Test6").PrimaryKey.Should().Be("Test6Id");
        }
        public void When_GetTypedCommaFields_executed_on_table_Should_return_a_string_with_all_ColumnNames_concatenated()
        {
            // arrange
            var di           = DependencyInjectionFactory.ConfigureDependencyInjection();
            var clientConfig = di.GetService <IClientConfig>();

            if (!clientConfig.IsAssigned())
            {
                throw new Exception("clientconfig not returned by dependency injection");
            }

            clientConfig.DefaultDatabase = "SchemaDatabaseDevelopment";

            var client = new SqlClient(new SqlClientRepository(clientConfig));

            IDatabaseStructure target = new DatabaseStructure(client);

            target.BuildStructure();

            var table          = target.Tables.First(x => x.Name == "Test5");
            var columnNameList = new List <string> {
                "naam", "Omschrijving"
            };

            // act
            var columnString = table.ColumnDataItems.GetFieldNamesAsParameters(columnNameList);

            // assert
            columnString.Should().Be("string naam, string omschrijving");
        }
        public void BuildStructureTest()
        {
            // arrange
            var di           = DependencyInjectionFactory.ConfigureDependencyInjection();
            var clientConfig = di.GetService <IClientConfig>();

            if (!clientConfig.IsAssigned())
            {
                throw new Exception("clientconfig not returned by dependency injection");
            }

            clientConfig.DefaultDatabase = "TestClassGenerator";

            var client = new SqlClient(new SqlClientRepository(clientConfig));

            IDatabaseStructure target = new DatabaseStructure(client);

            // act
            target.BuildStructure();

            // assert
            target.Tables.Should().HaveCount(8); // TestClassGenerator has 7 tables
        }
        public void When_BuildStructure_of_hMailServer_Should_generate_structure()
        {
            // arrange
            var di           = DependencyInjectionFactory.ConfigureDependencyInjection();
            var clientConfig = di.GetService <IClientConfig>();

            if (!clientConfig.IsAssigned())
            {
                throw new Exception("clientconfig not returned by dependency injection");
            }

            clientConfig.DefaultDatabase = "hMailServer";

            var client = new SqlClient(new SqlClientRepository(clientConfig));

            IDatabaseStructure target = new DatabaseStructure(client);

            // act
            target.BuildStructure();

            // assert
            target.Tables.Should().HaveCount(34); // hmailserver contains 34 tables
        }
        public void BuildStructureWithDBMenuConnectionName()
        {
            // arrange
            var di           = DependencyInjectionFactory.ConfigureDependencyInjection();
            var clientConfig = di.GetService <IClientConfig>();

            if (!clientConfig.IsAssigned())
            {
                throw new Exception("clientconfig not returned by dependency injection");
            }

            clientConfig.DefaultDatabase = "TestClassGenerator";

            var client = new SqlClient(new SqlClientRepository(clientConfig));

            IDatabaseStructure target = new DatabaseStructure(client);

            // act
            target.BuildStructure();

            // assert
            target.Tables.First(x => x.Name == "TestInt").HasGuidId.Should().BeTrue();
        }
        public void BuildStructureWithBlockedHackersConnectionName()
        {
            // arrange
            var di           = DependencyInjectionFactory.ConfigureDependencyInjection();
            var clientConfig = di.GetService <IClientConfig>();

            if (!clientConfig.IsAssigned())
            {
                throw new Exception("clientconfig not returned by dependency injection");
            }

            clientConfig.DefaultDatabase = "BlockedHackers";

            var client = new SqlClient(new SqlClientRepository(clientConfig));

            IDatabaseStructure target = new DatabaseStructure(client);

            // act
            target.BuildStructure();

            // assert
            target.Tables.First(x => x.Name == "Blocked").PrimaryKey.Should().Be("BlockedId");
        }