/// <summary> /// Expands the check. /// </summary> /// <param name="element">The element.</param> /// <param name="metadata">The metadata.</param> /// <returns> /// A sequence of check elements. /// </returns> private static IEnumerable <XElement> ExpandCheck(XElement element, IDbMetadata metadata) { var entityName = element.FindAncestorElementAttribute("Entity", "Name"); if (element.Attribute("Match") == null || entityName == null) { yield return(element); } else { Regex match = new Regex(element.Attribute("Match").Value, RegexOptions.IgnoreCase); var matchedTables = metadata .AllColumns(entityName) .Where(t => match.IsMatch(t)); foreach (var column in matchedTables) { var expandedElement = new XElement(element); expandedElement.SetAttributeValue("Field", column); element.Parent.Add(expandedElement); RaiseExpansionEvent(expandedElement, match.ToString(), column); yield return(expandedElement); } } }
public void CreateOperations() { IDbProvider dbProvider = mocks.StrictMock <IDbProvider>(); IDbConnection mockConnection = mocks.StrictMock <IDbConnection>(); Expect.Call(dbProvider.CreateConnection()).Return(mockConnection).Repeat.Once(); IDbCommand mockCommand = (IDbCommand)mocks.CreateMock(typeof(IDbCommand)); Expect.Call(dbProvider.CreateCommand()).Return(mockCommand).Repeat.Once(); IDbDataParameter mockParameter = (IDbDataParameter)mocks.CreateMock(typeof(IDbDataParameter)); Expect.Call(dbProvider.CreateParameter()).Return(mockParameter).Repeat.Once(); IDbDataAdapter mockDataAdapter = (IDbDataAdapter)mocks.CreateMock(typeof(IDbDataAdapter)); Expect.Call(dbProvider.CreateDataAdapter()).Return(mockDataAdapter).Repeat.Once(); DbCommandBuilder mockDbCommandBuilder = (DbCommandBuilder)mocks.CreateMock(typeof(DbCommandBuilder)); Expect.Call(dbProvider.CreateCommandBuilder()).Return(mockDbCommandBuilder).Repeat.Once(); Expect.Call(dbProvider.CreateParameterName("p1")).Return("@p1").Repeat.Once(); Expect.Call(dbProvider.CreateParameterNameForCollection("c1")).Return("cc1"); IDbMetadata mockDbMetaData = (IDbMetadata)mocks.CreateMock(typeof(IDbMetadata)); Expect.Call(dbProvider.DbMetadata).Return(mockDbMetaData); Exception e = new Exception("foo"); Expect.Call(dbProvider.ExtractError(e)).Return("badsql").Repeat.Once(); DbException dbException = (DbException)mocks.CreateMock(typeof(DbException)); MultiDelegatingDbProvider multiDbProvider = new MultiDelegatingDbProvider(); IDictionary targetDbProviders = new Hashtable(); targetDbProviders.Add("db1", dbProvider); multiDbProvider.DefaultDbProvider = dbProvider; multiDbProvider.TargetDbProviders = targetDbProviders; multiDbProvider.AfterPropertiesSet(); mocks.ReplayAll(); Assert.IsNotNull(multiDbProvider.CreateConnection()); Assert.IsNotNull(multiDbProvider.CreateCommand()); Assert.IsNotNull(multiDbProvider.CreateParameter()); Assert.IsNotNull(multiDbProvider.CreateDataAdapter()); Assert.IsNotNull(multiDbProvider.CreateCommandBuilder() as DbCommandBuilder); Assert.AreEqual("@p1", multiDbProvider.CreateParameterName("p1")); Assert.AreEqual("cc1", multiDbProvider.CreateParameterNameForCollection("c1")); Assert.IsNotNull(multiDbProvider.DbMetadata); Assert.AreEqual("badsql", multiDbProvider.ExtractError(e)); Assert.IsTrue(multiDbProvider.IsDataAccessException(dbException)); Assert.IsFalse(multiDbProvider.IsDataAccessException(e)); mocks.VerifyAll(); }
/// <summary> /// Expands the entities. /// </summary> /// <param name="element">The element.</param> /// <param name="metadata">The metadata.</param> /// <returns> /// A sequence of expanded entities. /// </returns> private static IEnumerable <XElement> ExpandEntity(XElement element, IDbMetadata metadata) { if (element.Attribute("Match") == null) { yield return(element); } else { Regex match = new Regex(element.Attribute("Match").Value, RegexOptions.IgnoreCase); var matchedTables = metadata .AllTables() .Where(t => match.IsMatch(t)); foreach (var table in matchedTables) { var expandedElement = new XElement(element); expandedElement.SetAttributeValue("Name", table); element.Parent.Add(expandedElement); RaiseExpansionEvent(expandedElement, match.ToString(), table); yield return(expandedElement); } } }
public CheckScriptParserFacts() { this.metadata = Substitute.For <IDbMetadata>(); this.metadata.AllTables().Returns( new string[] { "dw.TableA", "dw.TableB", "dw.TableC", "dbo.TableC" }); this.document = XDocument.Parse(Xml, LoadOptions.SetLineInfo); }
/// <summary> /// Initializes a new instance of the <see cref="DbProvider"/> class. /// </summary> /// <param name="dbMetadata">The db metadata.</param> public DbProvider(IDbMetadata dbMetadata) { this.dbMetadata = dbMetadata; newCommand = DynamicConstructor.Create(dbMetadata.CommandType.GetConstructor(Type.EmptyTypes)); newConnection = DynamicConstructor.Create(dbMetadata.ConnectionType.GetConstructor(Type.EmptyTypes)); newCommandBuilder = DynamicConstructor.Create(dbMetadata.CommandBuilderType.GetConstructor(Type.EmptyTypes)); newDataAdapter = DynamicConstructor.Create(dbMetadata.DataAdapterType.GetConstructor(Type.EmptyTypes)); newParameter = DynamicConstructor.Create(dbMetadata.ParameterType.GetConstructor(Type.EmptyTypes)); }
public void CreateOperations() { IDbProvider dbProvider = A.Fake <IDbProvider>(); IDbConnection mockConnection = A.Fake <IDbConnection>(); A.CallTo(() => dbProvider.CreateConnection()).Returns(mockConnection).Once(); IDbCommand mockCommand = A.Fake <IDbCommand>(); A.CallTo(() => dbProvider.CreateCommand()).Returns(mockCommand).Once(); IDbDataParameter mockParameter = A.Fake <IDbDataParameter>(); A.CallTo(() => dbProvider.CreateParameter()).Returns(mockParameter).Once(); IDbDataAdapter mockDataAdapter = A.Fake <IDbDataAdapter>(); A.CallTo(() => dbProvider.CreateDataAdapter()).Returns(mockDataAdapter).Once(); DbCommandBuilder mockDbCommandBuilder = A.Fake <DbCommandBuilder>(); A.CallTo(() => dbProvider.CreateCommandBuilder()).Returns(mockDbCommandBuilder).Once(); A.CallTo(() => dbProvider.CreateParameterName("p1")).Returns("@p1").Once(); A.CallTo(() => dbProvider.CreateParameterNameForCollection("c1")).Returns("cc1"); IDbMetadata mockDbMetaData = A.Fake <IDbMetadata>(); A.CallTo(() => dbProvider.DbMetadata).Returns(mockDbMetaData); Exception e = new Exception("foo"); A.CallTo(() => dbProvider.ExtractError(e)).Returns("badsql").Once(); DbException dbException = A.Fake <DbException>(); MultiDelegatingDbProvider multiDbProvider = new MultiDelegatingDbProvider(); IDictionary targetDbProviders = new Hashtable(); targetDbProviders.Add("db1", dbProvider); multiDbProvider.DefaultDbProvider = dbProvider; multiDbProvider.TargetDbProviders = targetDbProviders; multiDbProvider.AfterPropertiesSet(); Assert.IsNotNull(multiDbProvider.CreateConnection()); Assert.IsNotNull(multiDbProvider.CreateCommand()); Assert.IsNotNull(multiDbProvider.CreateParameter()); Assert.IsNotNull(multiDbProvider.CreateDataAdapter()); Assert.IsNotNull(multiDbProvider.CreateCommandBuilder() as DbCommandBuilder); Assert.AreEqual("@p1", multiDbProvider.CreateParameterName("p1")); Assert.AreEqual("cc1", multiDbProvider.CreateParameterNameForCollection("c1")); Assert.IsNotNull(multiDbProvider.DbMetadata); Assert.AreEqual("badsql", multiDbProvider.ExtractError(e)); Assert.IsTrue(multiDbProvider.IsDataAccessException(dbException)); Assert.IsFalse(multiDbProvider.IsDataAccessException(e)); }
/// <summary> /// Initializes a new instance of the <see cref="DbProvider"/> class. /// </summary> /// <param name="dbMetadata">The db metadata.</param> public DbProvider(IDbMetadata dbMetadata) { this.dbMetadata = dbMetadata; newCommand = DynamicConstructor.Create(dbMetadata.CommandType.GetConstructor(Type.EmptyTypes)); // Oracle needs custom bind by name property set to true as it's false by default var bindByNameProperty = dbMetadata.CommandType.GetProperty("BindByName"); if (bindByNameProperty != null && bindByNameProperty.CanWrite) { commandBindByName = DynamicProperty.Create(bindByNameProperty); } newConnection = DynamicConstructor.Create(dbMetadata.ConnectionType.GetConstructor(Type.EmptyTypes)); newCommandBuilder = DynamicConstructor.Create(dbMetadata.CommandBuilderType.GetConstructor(Type.EmptyTypes)); newDataAdapter = DynamicConstructor.Create(dbMetadata.DataAdapterType.GetConstructor(Type.EmptyTypes)); newParameter = DynamicConstructor.Create(dbMetadata.ParameterType.GetConstructor(Type.EmptyTypes)); }
public TestDbProvider() { IDbProvider provider = DbProviderFactory.GetDbProvider("SqlServer-1.1"); dbMetadata = provider.DbMetadata; }
/// <summary> /// Initializes a new instance of the <see cref="SqlFireDbProvider"/> class. /// </summary> /// <param name="dbMetadata">The db metadata.</param> public SqlFireDbProvider(IDbMetadata dbMetadata) { _dbMetadata = dbMetadata; }
public TestDbProvider() { IDbProvider provider = DbProviderFactory.GetDbProvider("System.Data.SqlClient"); dbMetadata = provider.DbMetadata; }