public void AddDatabase_NoDatabases_AddsDatabaseConfig()
        {
            // Arrange
            var config = new HarnessConfiguration
            {
                Databases = new List <DatabaseConfig>()
            };

            var expected = new HarnessConfiguration
            {
                Databases = new List <DatabaseConfig>
                {
                    new DatabaseConfig {
                        DatabaseName = "test"
                    }
                }
            };


            // Act
            config.AddDatabase("test");


            // Assert
            Assert.Equal(expected, config, Comparers.HarnessConfigurationComparer());
        }
예제 #2
0
        public void GetMongoConfiguration_GivenValidJson_ReturnsExpectedSettings()
        {
            // Arrange
            var testFilePath = "anyFilePath.json";

            var fakeFileSystem = Substitute.For <IFileSystem>();

            fakeFileSystem
            .ReadAllText(Arg.Any <string>())
            .Returns(this.TestSettingsString);
            fakeFileSystem
            .FileExists(Arg.Any <string>())
            .Returns(true);
            fakeFileSystem
            .GetFileExtension(testFilePath)
            .Returns(".json");

            var expected = this.TestSettings;

            var classUnderTest = new SettingsLoader(fakeFileSystem);


            // Act
            var result =
                classUnderTest.GetMongoConfiguration(testFilePath);


            // Assert
            Assert.Equal(expected, result, Comparers.HarnessConfigurationComparer());
        }
        public void SetConventions_ValidConfigAndConventionPack_AddsConventionsToConfig()
        {
            // Arrange
            var pack = new ConventionPack {
                new CamelCaseElementNameConvention()
            };

            var config = new HarnessConfiguration
            {
                Databases = new List <DatabaseConfig>
                {
                    new DatabaseConfig
                    {
                        ConnectionString = "connString",
                        DatabaseName     = "dbName",
                        DropFirst        = true,
                    }
                }
            };

            var expected = new HarnessConfiguration
            {
                Databases = new List <DatabaseConfig>
                {
                    new DatabaseConfig
                    {
                        ConnectionString = "connString",
                        DatabaseName     = "dbName",
                        DropFirst        = true,
                    }
                },
                Conventions = new ConventionConfig
                {
                    Name           = "conventions",
                    ConventionPack = pack,
                    Filter         = x => true
                }
            };

            // Act
            config.SetConventions(pack, x => true);

            // Assert
            Assert.Equal(expected, config, Comparers.HarnessConfigurationComparer());
        }
        public void AddDatabase_ExisitngDatabase_AddsAdditionalDatabaseConfig()
        {
            // Arrange
            var config = new HarnessConfiguration
            {
                Conventions = null,
                Databases   = new List <DatabaseConfig>
                {
                    new DatabaseConfig {
                        DatabaseName = "test"
                    }
                }
            };

            var expected = new HarnessConfiguration
            {
                Conventions = null,
                Databases   = new List <DatabaseConfig>
                {
                    new DatabaseConfig {
                        DatabaseName = "test"
                    },
                    new DatabaseConfig {
                        DatabaseName = "second test"
                    }
                }
            };


            // Act
            config.AddDatabase("second test");


            // Assert
            Assert.Equal(expected, config, Comparers.HarnessConfigurationComparer());
        }
예제 #5
0
        public void SettingsBuilderTest_ConventionPack()
        {
            // Arrange
            var expected = new HarnessConfiguration
            {
                Conventions = new ConventionConfig
                {
                    Name           = "conventions",
                    ConventionPack = new ConventionPack
                    {
                        new CamelCaseElementNameConvention()
                    },
                    Filter = x => true
                },
                Databases = new List <DatabaseConfig>
                {
                    new DatabaseConfig
                    {
                        CollectionNameSuffix = "CS-1",
                        ConnectionString     = "connString-1",
                        DatabaseName         = "DB-1",
                        DropFirst            = true,
                        Collections          = new List <CollectionConfig>
                        {
                            new CollectionConfig
                            {
                                CollectionName   = "C-1",
                                DataFileLocation = "file-1",
                                DropFirst        = true
                            },
                            new CollectionConfig
                            {
                                CollectionName   = "C-2",
                                DataFileLocation = "file-2",
                                DropFirst        = true
                            }
                        }
                    },
                    new DatabaseConfig
                    {
                        CollectionNameSuffix = "CS-2",
                        ConnectionString     = "connString-2",
                        DatabaseName         = "DB-2",
                        DropFirst            = true,
                        Collections          = new List <CollectionConfig>
                        {
                            new CollectionConfig
                            {
                                CollectionName   = "C-3",
                                DataFileLocation = "file-3",
                                DropFirst        = true
                            },
                            new CollectionConfig
                            {
                                CollectionName   = "C-4",
                                DataFileLocation = "file-4",
                                DropFirst        = true
                            }
                        }
                    }
                }
            };

            // Act
            var result =
                new SettingsBuilder()
                .AddConvention(new ConventionPack {
                new CamelCaseElementNameConvention()
            }, x => true)
                .AddDatabase("DB-1")
                .WithConnectionString("connString-1")
                .WithCollectionNameSuffix("CS-1")
                .DropDatabaseFirst()
                .AddCollection("C-1", true, "file-1")
                .AddCollection("C-2", true, "file-2")
                .AddDatabase("DB-2")
                .WithConnectionString("connString-2")
                .WithCollectionNameSuffix("CS-2")
                .DropDatabaseFirst()
                .AddCollection("C-3", true, "file-3")
                .AddCollection("C-4", true, "file-4")
                .Build();

            // Assert
            Assert.Equal(expected, result, Comparers.HarnessConfigurationComparer());
        }