public void ConnectionStringPart_Should_Return_DbConnectionFactory_On_Create()
        {
            // Arrange
            ConnectionStringsCatalog catalog = new ConnectionStringsCatalog();

            // Act
            IQueryable<Func<DbConnection>> parts = catalog.Parts.Select(p => p.CreatePart()
                                                                                 .GetExportedObject(p.ExportDefinitions.Single()))
                .Select(p => p as Func<DbConnection>);
            IEnumerable<ConnectionStringSettings> connectionStrings = ConfigurationManager.ConnectionStrings
                .Cast<ConnectionStringSettings>();

            // Assert
            EnumerableAssert.ElementsMatch(parts,
                                           connectionStrings,
                                           (part, setting) => part != null);
        }
        public void ConnectionStringPart_Should_Export_ConnectionStringName_As_Contract()
        {
            // Arrange
            ConnectionStringsCatalog catalog = new ConnectionStringsCatalog();

            // Act
            IQueryable<ExportDefinition> exports = catalog.Parts.Select(p => p.ExportDefinitions.Single());
            IEnumerable<ConnectionStringSettings> connectionStrings = ConfigurationManager.ConnectionStrings
                .Cast<ConnectionStringSettings>();

            // Assert
            EnumerableAssert.ElementsMatch(exports,
                                           connectionStrings,
                                           (export, setting) => String.Equals(export.ContractName,
                                                                              setting.Name,
                                                                              StringComparison.OrdinalIgnoreCase));
        }
        public void Parts_Should_Contain_One_Part_Per_ConnectionString()
        {
            // Arrange
            ConnectionStringsCatalog catalog = new ConnectionStringsCatalog();

            // Act
            int partCount = catalog.Parts.Count();

            // Assert
            Assert.AreEqual(ConfigurationManager.ConnectionStrings.Count, partCount);
        }