Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        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());
        }
Ejemplo n.º 5
0
        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");
        }
Ejemplo n.º 6
0
        public void TestInitializesWithoutErrors()
        {
            Mock <IQueryDefinition> moqIQueryDefinition = new Mock <IQueryDefinition>();

            _ = new DataBaseExtractor("", moqIQueryDefinition.Object);
        }