/// <summary> /// Test passing null as XML to constructor /// </summary> public virtual void ConstructorNullXml() { XmlElement configurationXml = null; var loader = new DatabaseConfigurationProviderWrapper(configurationXml); var repository = loader.GetConfigurationRepository(); Assert.IsNotNull(repository); Assert.AreEqual(0, repository.Count); }
/// <summary> /// Test constructor by pass simple types for only provider /// </summary> public virtual void ConstructorSingleProvider() { var possibleDataSizeTypes = EnumeratorInformation <DataSizeType> .Values; var expected = new Dictionary <string, IDatabaseConfiguration>(StringComparer.OrdinalIgnoreCase); var rootXml = DatabaseConfigurationProviderWrapper.CreateRootXml(); var providerName = TestUtility.CreateRandomName("Provider{0}"); var types = new Dictionary <string, IDataType>(StringComparer.OrdinalIgnoreCase); var commands = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase); var configuration = DatabaseConfigurationProviderWrapper.CreateDatabaseConfiguration(types, commands); expected.Add(providerName, configuration); var providerXml = DatabaseConfigurationProviderWrapper.AddProviderXml(rootXml, providerName); // Add type XML string typeName; IDataType dataType; foreach (var sizeType in possibleDataSizeTypes) { typeName = TestUtility.CreateRandomName("Type{0}"); DatabaseConfigurationProviderWrapper.AddTypeXml(providerXml, typeName, sizeType); dataType = DatabaseConfigurationProviderWrapper.CreateDataType(typeName, sizeType); types.Add(typeName, dataType); } typeName = TestUtility.CreateRandomName("Type{0}"); DatabaseConfigurationProviderWrapper.AddTypeXml(providerXml, typeName); dataType = DatabaseConfigurationProviderWrapper.CreateDataType(typeName, DataSizeType.NotRequired); types.Add(typeName, dataType); // Add command XML int commandCount = 3; for (var i = 0; i < commandCount; i++) { var commandName = TestUtility.CreateRandomName("name{0}"); var commandText = TestUtility.CreateRandomName("text{0}"); var commandXml = DatabaseConfigurationProviderWrapper.AddCommandXml(providerXml, commandName, commandText, i % 2 == 0); commands.Add(commandName, commandText); } var loader = new DatabaseConfigurationProviderWrapper(rootXml); var actual = loader.GetConfigurationRepository(); Assert.AreReadOnlyDictionaryEqual( expected, actual, (x, y) => { Assert.AreReadOnlyDictionaryEqual(x.QueryCommands, y.QueryCommands); Assert.AreReadOnlyDictionaryEqual( x.SupportedTypes, y.SupportedTypes, (a, b) => { Assert.AreEqual(a.TypeName, b.TypeName); Assert.AreEqual(a.DataSize.SizeType, b.DataSize.SizeType); Assert.AreEqual(a.DataSize.Size, b.DataSize.Size); }); }); }