public void TestReturnsExpectedRows() { string sql = "SELECT code AS code, description AS description, price AS price FROM items;"; Mock <IQueryDefinition> mock = new Mock <IQueryDefinition>(); mock.Setup(_ => _.Connection()).Returns(this.Connection); mock.Setup(_ => _.Query()).Returns(sql); mock.Setup(_ => _.Parameters()).Returns(new List <Parameter>()); DataBaseExtractor model = new DataBaseExtractor("", mock.Object); IQueryResult result = model.Extract(); IEnumerator <object[]> rowsEnumerator = result.ResultRows().GetEnumerator(); Assert.IsTrue(rowsEnumerator.MoveNext()); object[] currentRow = rowsEnumerator.Current; Assert.AreEqual(this.ItemA.Code, int.Parse(currentRow[0].ToString())); Assert.AreEqual(this.ItemA.Description, currentRow[1]); Assert.AreEqual(this.ItemA.Price, decimal.Parse(currentRow[2].ToString())); Assert.IsTrue(rowsEnumerator.MoveNext()); currentRow = rowsEnumerator.Current; Assert.AreEqual(this.ItemB.Code, int.Parse(currentRow[0].ToString())); Assert.AreEqual(this.ItemB.Description, currentRow[1]); Assert.AreEqual(this.ItemB.Price, decimal.Parse(currentRow[2].ToString())); Assert.IsFalse(rowsEnumerator.MoveNext()); }
public void TestUsesAnOpenConnectionAndKeepsItOpen() { string sql = "SELECT description FROM items;"; Mock <IQueryDefinition> mockQueryDefinition = new Mock <IQueryDefinition>(); mockQueryDefinition.Setup(_ => _.Connection()).Returns(this.Connection); mockQueryDefinition.Setup(_ => _.Query()).Returns(sql); DataBaseExtractor model = new DataBaseExtractor("extractor", mockQueryDefinition.Object); model.Extract(); Assert.AreEqual(ConnectionState.Open, this.Connection.State); }
public void TestReturnsValidObject() { string sql = "SELECT code AS code, description AS description, price AS price FROM items;"; Mock <IQueryDefinition> mock = new Mock <IQueryDefinition>(); mock.Setup(_ => _.Connection()).Returns(this.Connection); mock.Setup(_ => _.Query()).Returns(sql); mock.Setup(_ => _.Parameters()).Returns(new List <Parameter>()); DataBaseExtractor model = new DataBaseExtractor("", mock.Object); IQueryResult result = model.Extract(); Assert.IsNotNull(result); Assert.IsNotNull(result.ResultRows()); Assert.IsNotNull(result.ColumnsNames()); }
public void TestResturnsExpectedColumnNames() { string sql = "SELECT code AS code, description AS description, price AS price FROM items;"; Mock <IQueryDefinition> mock = new Mock <IQueryDefinition>(); mock.Setup(_ => _.Connection()).Returns(this.Connection); mock.Setup(_ => _.Query()).Returns(sql); mock.Setup(_ => _.Parameters()).Returns(new List <Parameter>()); DataBaseExtractor model = new DataBaseExtractor("", mock.Object); IQueryResult result = model.Extract(); IEnumerator <string> columnEnumerator = result.ColumnsNames().GetEnumerator(); Assert.IsTrue(columnEnumerator.MoveNext()); Assert.AreEqual("code", columnEnumerator.Current); Assert.IsTrue(columnEnumerator.MoveNext()); Assert.AreEqual("description", columnEnumerator.Current); Assert.IsTrue(columnEnumerator.MoveNext()); Assert.AreEqual("price", columnEnumerator.Current); Assert.IsFalse(columnEnumerator.MoveNext()); }
public void TestUsesParameters() { string sql = "SELECT description FROM items WHERE code = ?;"; Mock <IQueryDefinition> mock = new Mock <IQueryDefinition>(); mock.Setup(_ => _.Connection()).Returns(this.Connection); mock.Setup(_ => _.Query()).Returns(sql); mock.Setup(_ => _.Parameters()).Returns( new List <Parameter>() { Parameter.NewInstance("?", this.ItemA.Code, DbType.Int32) } ); DataBaseExtractor model = new DataBaseExtractor("", mock.Object); IQueryResult result = model.Extract(); Assert.AreEqual(3, mock.Invocations.Count); IEnumerator <IInvocation> invocationsEnumerator = mock.Invocations.GetEnumerator(); List <string> calledMethods = new List <string>(); invocationsEnumerator.MoveNext(); IInvocation invocation = invocationsEnumerator.Current; calledMethods.Add(invocation.Method.Name); invocationsEnumerator.MoveNext(); invocation = invocationsEnumerator.Current; calledMethods.Add(invocation.Method.Name); invocationsEnumerator.MoveNext(); invocation = invocationsEnumerator.Current; calledMethods.Add(invocation.Method.Name); CollectionAssert.Contains(calledMethods, "Parameters"); }
public void TestInitializesWithoutErrors() { Mock <IQueryDefinition> moqIQueryDefinition = new Mock <IQueryDefinition>(); _ = new DataBaseExtractor("", moqIQueryDefinition.Object); }