示例#1
0
        public void TestUpdateOperationMySql()
        {
            var connection = new MySqlConnection(ConfigurationManager.ConnectionStrings["MySql"].ConnectionString);

            connection.Open();

            var trans = connection.BeginTransaction();

            using (var conn = connection)
            {
                IScriptBuilder builder = new ScriptMySqlBuilder();

                var cliente = new Cliente()
                {
                    Id = 1, Nome = "Moisés", Ativo = true
                };

                var createTableScript = builder.GetCreateTableCommand <Cliente>();
                builder.Execute(createTableScript, conn, trans);

                var lastId = conn.InsertReturningId <Cliente>(cliente, trans);
                Assert.AreEqual(1, lastId);

                cliente.Id   = lastId;
                cliente.Nome = "João";
                conn.Update <Cliente>(cliente);
                trans.Rollback();

                conn.Execute("drop table `Cliente`");
            }
        }
示例#2
0
        public void TestMySqlSelectWithWhereScript()
        {
            IScriptBuilder builder = new ScriptMySqlBuilder();

            var cliente = new Cliente()
            {
                Id = 1, Nome = "Moisés", Ativo = true
            };

            var sqlUpdate         = builder.GetSelectCommand <Cliente>(cliente, c => c.Id == 1);
            var resultadoEsperado = "select `Id`, `Nome`, `Ativo`, `TotalPedidos`, `ValorTotalNotasFiscais`, `Credito`, `UltimoValorDeCompra` from `Cliente` where (`Id` = 1)";

            Assert.AreEqual(resultadoEsperado, sqlUpdate);
        }
示例#3
0
        public void TestMySqlUpdateScriptComValorNulo()
        {
            IScriptBuilder builder = new ScriptMySqlBuilder();

            var cliente = new Cliente()
            {
                Id = 1, Nome = "Moisés", Ativo = true, TotalPedidos = 55, ValorTotalNotasFiscais = 1000.55, Credito = 2000.53m, UltimoValorDeCompra = null
            };

            var sqlUpdate         = builder.GetUpdateCommand <Cliente>(cliente);
            var resultadoEsperado = "update `Cliente` set `Nome`='Moisés', `Ativo`=1, `TotalPedidos`=55, `ValorTotalNotasFiscais`=1000.55, `Credito`=2000.53, `UltimoValorDeCompra`=null where `Id`=1";

            Assert.AreEqual(resultadoEsperado, sqlUpdate);
        }
示例#4
0
        public void TestMySqlInsertScript()
        {
            IScriptBuilder builder = new ScriptMySqlBuilder();

            var cliente = new Cliente()
            {
                Id = 1, Nome = "Moisés", Ativo = true, TotalPedidos = 20, ValorTotalNotasFiscais = 2000.95, Credito = 10, UltimoValorDeCompra = 1000.95m
            };

            var sqlDelete         = builder.GetInsertCommand <Cliente>(cliente);
            var resultadoEsperado = "insert into `Cliente` (`Nome`, `Ativo`, `TotalPedidos`, `ValorTotalNotasFiscais`, `Credito`, `UltimoValorDeCompra`) values ('Moisés', 1, 20, 2000.95, 10, 1000.95)";

            Assert.AreEqual(resultadoEsperado, sqlDelete);
        }
示例#5
0
        public void TestMySqlCreateTable()
        {
            IScriptBuilder builder = new ScriptMySqlBuilder();

            var cliente = new Cliente()
            {
                Id = 1, Nome = "Moisés", Ativo = true
            };

            var createTableScript = builder.GetCreateTableCommand <Cliente>();
            var resultadoEsperado = "create table `Cliente` (`Id` int not null auto_increment, `Nome` nvarchar(255), `Ativo` boolean, `TotalPedidos` int, `ValorTotalNotasFiscais` double, `Credito` decimal(18,6), `UltimoValorDeCompra` decimal(18,6) null, primary key (`Id`))";

            Assert.AreEqual(resultadoEsperado, createTableScript);
        }
示例#6
0
        public void TestMySqlDeleteScript()
        {
            IScriptBuilder builder = new ScriptMySqlBuilder();

            var cliente = new Cliente()
            {
                Id = 1, Nome = "Moisés", Ativo = true
            };

            var sqlDelete         = builder.GetDeleteCommand <Cliente>(cliente, 1);
            var resultadoEsperado = "delete from `Cliente` where Id=1";

            Assert.AreEqual(resultadoEsperado, sqlDelete);
        }
示例#7
0
        public void TestSelectOperationMySql()
        {
            var connection = new MySqlConnection(ConfigurationManager.ConnectionStrings["MySql"].ConnectionString);

            connection.Open();

            using (var scope = new TransactionScope())
            {
                using (var conn = connection)
                {
                    IScriptBuilder builder = new ScriptMySqlBuilder();

                    var cliente = new Cliente()
                    {
                        Id = 1, Nome = "Moisés", Ativo = true
                    };
                    var cliente2 = new Cliente()
                    {
                        Id = 2, Nome = "José", Ativo = true
                    };

                    var createTableScript = builder.GetCreateTableCommand <Cliente>();
                    var insertScript1     = builder.GetInsertCommand <Cliente>(cliente);
                    var insertScript2     = builder.GetInsertCommand <Cliente>(cliente2);
                    builder.Execute(createTableScript, conn);
                    builder.Execute(insertScript1, conn);
                    builder.Execute(insertScript2, conn);

                    var clientes = conn.GetAll <Cliente>();
                    Assert.AreEqual(2, clientes.Count());
                    Assert.AreEqual("Moisés", clientes.ToList()[0].Nome);
                    Assert.AreEqual("José", clientes.ToList()[1].Nome);

                    conn.Execute("drop table `Cliente`");
                }
            }
        }