예제 #1
0
        public void ExecuteRowTyped_Test()
        {
            using (var cmd = new DatabaseCommand(_connection))
            {
                cmd.Log         = Console.WriteLine;
                cmd.CommandText = "SELECT * FROM EMP WHERE EMPNO = 7369";
                EMP emp = cmd.ExecuteRow <EMP>();

                Assert.AreEqual(7369, emp.EmpNo);
            }
        }
예제 #2
0
        public void ExecuteRow_NoData_Test()
        {
            using (var cmd = new DatabaseCommand(_connection))
            {
                cmd.Log         = Console.WriteLine;
                cmd.CommandText = "SELECT * FROM EMP WHERE EMPNO = 99999";
                EMP emp = cmd.ExecuteRow <EMP>();

                Assert.AreEqual(null, emp);
            }
        }
예제 #3
0
        public void ExecuteNonQuery_Transaction_Test()
        {
            using (var cmd = new DatabaseCommand(_connection))
            {
                cmd.Log = Console.WriteLine;
                cmd.CommandText.AppendLine(" DELETE FROM EMP ");

                cmd.TransactionBegin();

                cmd.ExecuteNonQuery();
                cmd.TransactionRollback();

                Assert.AreEqual(EMP.GetEmployeesCount(_connection), 14);
            }
        }
예제 #4
0
        public void ExecuteTableTyped_Test()
        {
            using (var cmd = new DatabaseCommand(_connection))
            {
                cmd.Log         = Console.WriteLine;
                cmd.CommandText = " SELECT EMPNO, ENAME, HIREDATE, COMM, MGR FROM EMP ";
                EMP[] data  = cmd.ExecuteTable <EMP>().ToArray();
                EMP   smith = data.FirstOrDefault(i => i.EmpNo == 7369);

                Assert.AreEqual(EMP.Smith.EmpNo, smith.EmpNo);
                Assert.AreEqual(EMP.Smith.EName, smith.EName);
                Assert.AreEqual(EMP.Smith.HireDate, smith.HireDate);
                Assert.AreEqual(EMP.Smith.Comm, smith.Comm);
            }
        }
예제 #5
0
        public void ExecuteTableTypedWithColumnAttribute_Test()
        {
            using (var cmd = new DatabaseCommand(_connection))
            {
                cmd.Log         = Console.WriteLine;
                cmd.CommandText = " SELECT EMPNO, ENAME, SAL, HIREDATE, COMM, MGR FROM EMP ";
                var data  = cmd.ExecuteTable <EMP>();
                EMP smith = data.FirstOrDefault(i => i.EmpNo == 7369);

                Assert.AreEqual(smith.EmpNo, EMP.Smith.EmpNo);
                Assert.AreEqual(smith.EName, EMP.Smith.EName);
                Assert.AreEqual(smith.HireDate, EMP.Smith.HireDate);
                Assert.AreEqual(smith.Comm, EMP.Smith.Comm);
                Assert.AreEqual(smith.Salary, EMP.Smith.Salary);
            }
        }
예제 #6
0
        public async Task ExecuteNonQueryAsync_Transaction_Test()
        {
            using (var cmd = new DatabaseCommand(_connection))
            {
                cmd.Log = Console.WriteLine;
                cmd.CommandText.AppendLine(" DELETE FROM EMP ");

                cmd.TransactionBegin();

                int count = await cmd.ExecuteNonQueryAsync();

                cmd.TransactionRollback();

                Assert.AreEqual(14, count);
                Assert.AreEqual(14, EMP.GetEmployeesCount(_connection));
            }
        }
예제 #7
0
        public void ExecuteRowWithConverter_Test()
        {
            using (var cmd = new DatabaseCommand(_connection))
            {
                cmd.Log         = Console.WriteLine;
                cmd.CommandText = " SELECT * FROM EMP WHERE EMPNO = 7369";
                EMP emp = cmd.ExecuteRow <EMP>((row) =>
                {
                    return(new EMP()
                    {
                        EmpNo = Convert.ToInt32(row["EMPNO"]),
                        EName = Convert.ToString(row["ENAME"])
                    });
                });

                Assert.AreEqual(7369, emp.EmpNo);
            }
        }
예제 #8
0
        public void ExecuteNonQuery_TransactionForTwoCommands_Test()
        {
            DbTransaction currentTransaction;

            using (var cmd = new DatabaseCommand(_connection))
            {
                cmd.Log = Console.WriteLine;
                cmd.CommandText.AppendLine(" DELETE FROM EMP ");

                currentTransaction = cmd.TransactionBegin();
                cmd.ExecuteNonQuery();

                Assert.AreEqual(EMP.GetEmployeesCount(currentTransaction), 0);     // Inside the transaction

                cmd.TransactionRollback();

                Assert.AreEqual(EMP.GetEmployeesCount(_connection), 14);           // Ouside the transaction
            }
        }
예제 #9
0
        public void Transaction_GetInternalTransaction_Test()
        {
            using (var cmd = new DatabaseCommand(_connection))
            {
                cmd.Log = Console.WriteLine;
                cmd.CommandText.AppendLine(" DELETE FROM EMP ");

                var trans1 = DataExtensions.GetTransaction(_connection);

                var trans2A = cmd.TransactionBegin();
                var trans2B = DataExtensions.GetTransaction(_connection);

                cmd.ExecuteNonQuery();
                cmd.TransactionRollback();

                var trans3 = DataExtensions.GetTransaction(_connection);

                Assert.AreEqual(EMP.GetEmployeesCount(_connection), 14);
                Assert.AreEqual(null, trans1);
                Assert.AreEqual(trans2A, trans2B);
                Assert.AreEqual(null, trans3);
            }
        }
예제 #10
0
        public void ExecuteNonQuery_DefineTransactionBefore_Test()
        {
            using (var transaction = _connection.BeginTransaction())
            {
                using (var cmd = new DatabaseCommand(transaction))
                {
                    cmd.Log = Console.WriteLine;
                    cmd.CommandText.AppendLine(" INSERT INTO EMP (EMPNO, ENAME) VALUES (1234, 'ABC') ");
                    cmd.ExecuteNonQuery();
                }

                using (var cmd = new DatabaseCommand(transaction))
                {
                    cmd.Log = Console.WriteLine;
                    cmd.CommandText.AppendLine(" INSERT INTO EMP (EMPNO, ENAME) VALUES (9876, 'XYZ') ");
                    cmd.ExecuteNonQuery();
                }

                transaction.Rollback();

                Assert.AreEqual(EMP.GetEmployeesCount(_connection), 14);
            }
        }