public void DataContext_Should_Execute_And_Commit_Some_SQL_Commands_Without_Transaction()
        {
            using (var context = new DataContext(Transaction.No))
            {
                context.Execute("DELETE FROM Airplane");

                // After the first Execute, simulates the connection state to "open".
                connectionMock.Setup(c => c.State).Returns(ConnectionState.Open);

                context.Execute("DELETE FROM Tools");
            }

            connectionMock.Verify(c => c.CreateCommand(), Times.Exactly(2));
            connectionMock.Verify(c => c.Open(), Times.Once());
            connectionMock.Verify(c => c.BeginTransaction(), Times.Never());
            connectionMock.Verify(c => c.Close(), Times.Once());
            commandMock.Verify(c => c.ExecuteNonQuery(), Times.Exactly(2));
            commandMock.VerifySet(c => c.CommandText = "DELETE FROM Airplane");
            commandMock.VerifySet(c => c.CommandText = "DELETE FROM Tools");
            commandMock.VerifySet(c => c.Connection = connectionMock.Object);
            commandMock.VerifySet(c => c.Transaction = transactionMock.Object, Times.Never());
            commandMock.Verify(c => c.CreateParameter(), Times.Never());
            transactionMock.Verify(t => t.Commit(), Times.Never());
            providerMock.Object.DbTransaction.Should().BeNull();
        }
        private void CreateTables()
        {
            var createManufacturerTable = new StringBuilder("CREATE TABLE Le_Manufacturer (")
                .Append("[TheId] NUMERIC(8) NOT NULL IDENTITY PRIMARY KEY,")
                .Append("[Name] VARCHAR(32) NOT NULL,")
                .Append("[BuildYear] NUMERIC(4) NOT NULL)")
                .ToString();

            var createCarTable = new StringBuilder("CREATE TABLE Car (")
                .Append("[Id] NUMERIC(8) NOT NULL IDENTITY PRIMARY KEY,")
                .Append("[Name] VARCHAR(32) NOT NULL,")
                .Append("[ModelYear] NUMERIC(4) NOT NULL,")
                .Append("[Date] DATETIME NOT NULL,")
                .Append("[Chassis] VARCHAR(32) NOT NULL,")
                .Append("[Mileage] FLOAT,")
                .Append("[ManufacturerId] NUMERIC(8) REFERENCES Le_Manufacturer(TheId))")
                .ToString();

            using (var data = new DataContext())
            {
                data.Execute(createManufacturerTable);
                data.Execute(createCarTable);
                data.Commit();
            }
        }
Example #3
0
        /// <summary>
        /// 添加一个问卷的参与人员和结果查询人员(先删除再添加)
        /// </summary>
        /// <param name="votePartakeUsers">参与人员</param>
        /// <param name="voteResultUsers">结果查询人员</param>
        /// <returns></returns>
        public int Add(List <Model.VotePartakeUser> votePartakeUsers, List <Model.VoteResultUser> voteResultUsers)
        {
            if (votePartakeUsers == null || votePartakeUsers.Count == 0)
            {
                return(0);
            }
            Guid voteId = votePartakeUsers.First().VoteId;

            using (var db = new DataContext())
            {
                db.Execute("DELETE FROM RF_VotePartakeUser WHERE VoteId={0}", voteId);
                if (votePartakeUsers != null && votePartakeUsers.Count > 0)
                {
                    db.AddRange(votePartakeUsers);
                }
                db.Execute("DELETE FROM RF_VoteResultUser WHERE VoteId={0}", voteId);
                if (voteResultUsers != null && voteResultUsers.Count > 0)
                {
                    db.AddRange(voteResultUsers);
                }
                //更新问卷状态为已发布
                db.Execute("UPDATE RF_Vote SET Status=1,PublishTime={0} WHERE Id={1}", DateExtensions.Now, voteId);
                return(db.SaveChanges());
            }
        }
Example #4
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="voteResults"></param>
        /// <returns></returns>
        public int AddRange(List <Model.VoteResult> voteResults)
        {
            if (voteResults == null || voteResults.Count == 0)
            {
                return(0);
            }
            Guid voteId = voteResults.First().VoteId;
            Guid userId = voteResults.First().UserId;

            using (var db = new DataContext())
            {
                db.Execute("DELETE FROM RF_VoteResult WHERE VoteId={0} AND UserId={1}", voteId, userId);
                db.AddRange(voteResults);
                //修改状态为已提交
                db.Execute("UPDATE RF_VotePartakeUser SET Status=1,SubmitTime={0} WHERE VoteId={1} AND UserId={2}", DateExtensions.Now, voteId, userId);
                //修改问卷状态
                if (db.GetDataTable("SELECT Id FROM RF_VotePartakeUser WHERE Status=0 And VoteId={0} AND UserId!={1}", voteId, userId).Rows.Count == 0)
                {
                    db.Execute("UPDATE RF_Vote SET Status=3 WHERE Id={0}", voteId);
                }
                else
                {
                    db.Execute("UPDATE RF_Vote SET Status=2 WHERE Id={0}", voteId);
                }
                return(db.SaveChanges());
            }
        }
        public void DataContext_Should_Execute_And_Commit_Some_SQL_Commands_Without_Transaction()
        {
            using (var context = new DataContext(Transaction.No))
            {
                context.Execute("DELETE FROM Airplane");

                // After the first Execute, simulates the connection state to "open".
                connectionMock.Setup(c => c.State).Returns(ConnectionState.Open);

                context.Execute("DELETE FROM Tools");
            }

            connectionMock.Verify(c => c.CreateCommand(), Times.Exactly(2));
            connectionMock.Verify(c => c.Open(), Times.Once());
            connectionMock.Verify(c => c.BeginTransaction(), Times.Never());
            connectionMock.Verify(c => c.Close(), Times.Once());
            commandMock.Verify(c => c.ExecuteNonQuery(), Times.Exactly(2));
            commandMock.VerifySet(c => c.CommandText = "DELETE FROM Airplane");
            commandMock.VerifySet(c => c.CommandText = "DELETE FROM Tools");
            commandMock.VerifySet(c => c.Connection  = connectionMock.Object);
            commandMock.VerifySet(c => c.Transaction = transactionMock.Object, Times.Never());
            commandMock.Verify(c => c.CreateParameter(), Times.Never());
            transactionMock.Verify(t => t.Commit(), Times.Never());
            providerMock.Object.DbTransaction.Should().BeNull();
        }
        private void CreateTables()
        {
            var createManufacturerTable = new StringBuilder("CREATE TABLE Le_Manufacturer (")
                                          .Append("[TheId] NUMERIC(8) NOT NULL IDENTITY PRIMARY KEY,")
                                          .Append("[Name] VARCHAR(32) NOT NULL,")
                                          .Append("[BuildYear] NUMERIC(4) NOT NULL)")
                                          .ToString();

            var createCarTable = new StringBuilder("CREATE TABLE Car (")
                                 .Append("[Id] NUMERIC(8) NOT NULL IDENTITY PRIMARY KEY,")
                                 .Append("[Name] VARCHAR(32),")
                                 .Append("[ModelYear] NUMERIC(4) NOT NULL,")
                                 .Append("[CreatedAt] DATETIME NOT NULL,")
                                 .Append("[Chassis] VARCHAR(32) NOT NULL,")
                                 .Append("[Mileage] FLOAT,")
                                 .Append("[Category] NUMERIC(1) NOT NULL,")
                                 .Append("[ManufacturerId] NUMERIC(8) REFERENCES Le_Manufacturer(TheId))")
                                 .ToString();

            using (var data = new DataContext())
            {
                data.Execute(createManufacturerTable);
                data.Execute(createCarTable);
                data.Commit();
            }
        }
Example #7
0
 /// <summary>
 /// 删除一个文档
 /// </summary>
 /// <param name="doc">文档实体</param>
 /// <returns></returns>
 public int Delete(Guid id)
 {
     using (var db = new DataContext())
     {
         db.Execute("DELETE FROM RF_Doc WHERE Id={0}", id);
         db.Execute("DELETE FROM RF_DocUser WHERE DocId={0}", id);
         return(db.SaveChanges());
     }
 }
Example #8
0
 /// <summary>
 /// 删除一个问卷的所有参与人员和结果查询人员
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public int DeleteByVoteId(Guid voteId)
 {
     using (var db = new DataContext())
     {
         db.Execute("DELETE FROM RF_VotePartakeUser WHERE VoteId={0}", voteId);
         db.Execute("DELETE FROM RF_VoteResultUser WHERE VoteId={0}", voteId);
         //更新问卷状态为未发布
         db.Execute("UPDATE RF_Vote SET Status=0,PublishTime=NULL WHERE Id={0}", voteId);
         return(db.SaveChanges());
     }
 }
Example #9
0
 /// <summary>
 /// 删除
 /// </summary>
 /// <param name="id"></param>
 /// <param name="isDeleteOptions">是否删除选项</param>
 /// <returns></returns>
 public int Delete(Guid id, bool isDeleteOptions = true)
 {
     using (var db = new DataContext())
     {
         db.Execute("DELETE FROM RF_VoteItem WHERE Id={0}", id);
         if (isDeleteOptions)
         {
             db.Execute("DELETE FROM RF_VoteItemOption WHERE VoteId={0}", id);
         }
         return(db.SaveChanges());
     }
 }
Example #10
0
 /// <summary>
 /// 修改状态
 /// </summary>
 /// <param name="id">收件箱ID</param>
 /// <param name="status">状态</param>
 /// <param name="isUpdateDate">是否更新阅读时间</param>
 /// <returns></returns>
 public int UpdateIsRead(Guid id, int status, bool isUpdateDate = false)
 {
     using (var db = new DataContext())
     {
         if (isUpdateDate)
         {
             db.Execute("UPDATE RF_MailInBox SET IsRead={0},ReadDateTime={1} WHERE Id={2}", status, DateExtensions.Now, id);
         }
         else
         {
             db.Execute("UPDATE RF_MailInBox SET IsRead={0} WHERE Id={1}", status, id);
         }
         return(db.SaveChanges());
     }
 }
Example #11
0
 /// <summary>
 /// 撤回邮件
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public bool Withdraw(Guid id)
 {
     using (var db = new DataContext())
     {
         Model.MailOutBox mailOutBox = db.Find <Model.MailOutBox>(id);
         if (null == mailOutBox)
         {
             return(false);
         }
         db.Execute("DELETE RF_MailInBox WHERE OutBoxId={0}", id);
         db.Execute("UPDATE RF_MailOutBox SET Status=0 WHERE Id={0}", id);
         db.SaveChanges();
         return(true);
     }
 }
Example #12
0
        /// <summary>
        /// Re-index database tables
        /// </summary>
        public Task ReIndexTablesAsync()
        {
            using (new ReaderWriteLockDisposable(_locker))
                DataContext.Execute("VACUUM;");

            return(Task.CompletedTask);
        }
Example #13
0
 public void I_DataContext_Should_Throws_An_Exception_When_Execute_An_Incorrect_Command()
 {
     using (var context = new DataContext())
     {
         context.Execute("DELETE FROM Blargh");
     }
 }
        public void DataObjectQuery_Should_Select_All_Items_From_Database_With_Parameter_Binding_And_Context_Transaction()
        {
            commandMock.Setup(c => c.CommandText).Returns("SELECT [Id], [Name], [FirstFlight] FROM Airplane WHERE Name = @Name");

            using (var context = new DataContext())
            {
                // Execute a command to open transaction.
                context.Execute("DELETE FROM Airplane");

                // Simulate connection open state later the first execute.
                connectionMock.Setup(c => c.State).Returns(ConnectionState.Open);

                select.With(context).All("WHERE Name = @Name", new { Name = "Omega" });

                context.Commit();
            }

            connectionMock.Verify(c => c.CreateCommand(), Times.Exactly(2));
            connectionMock.Verify(c => c.Open(), Times.Once());
            connectionMock.Verify(c => c.BeginTransaction(), Times.Once());
            connectionMock.Verify(c => c.Close(), Times.Once());
            commandMock.Verify(c => c.ExecuteReader(), Times.Once());
            commandMock.VerifySet(c => c.CommandText = "SELECT [Id], [Name], [FirstFlight] FROM Airplane WHERE Name = @Name");
            commandMock.VerifySet(c => c.Connection = connectionMock.Object);
            commandMock.VerifySet(c => c.Transaction = transactionMock.Object);
            commandMock.Verify(c => c.CreateParameter(), Times.Once());
            parameterMock.VerifySet(p => p.ParameterName = "@Name");
            parameterMock.VerifySet(p => p.Value = "Omega");
            parameterCollectionMock.Verify(p => p.Add(parameterMock.Object), Times.Once());
            transactionMock.Verify(t => t.Commit(), Times.Once());
        }
 private void DropDatabase()
 {
     using (var data = new DataContext("Master", Transaction.No))
     {
         data.Execute("DROP DATABASE ThunderTest");
     }
 }
Example #16
0
 private void DropDatabase()
 {
     using (var data = new DataContext("Master", Transaction.No))
     {
         data.Execute("DROP DATABASE ThunderTest");
     }
 }
Example #17
0
        public Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken)
        {
            var authorization = context.Request.Headers.Authorization;

            if (authorization != null &&
                string.Equals(authorization.Scheme, "Basic", StringComparison.OrdinalIgnoreCase) &&
                !string.IsNullOrEmpty(authorization.Parameter))
            {
                if (ExtractUserNameAndPassword(authorization.Parameter, out var userName, out var password))
                {
                    DataContext.Execute(dataContext =>
                    {
                        var user = dataContext.SysUsers.FirstOrDefault(sysUser => sysUser.Username.Equals(userName));
                        if (user != null && user.Password.Equals(password))
                        {
                            var identity      = new GenericIdentity(userName, "Basic");
                            context.Principal = new GenericPrincipal(identity, new[] { user.SysUserRole.Name });
                        }
                        else
                        {
                            context.ErrorResult =
                                new AuthenticationFailureResult("Invalid username or password", context.Request);
                        }
                    });
                }
                else
                {
                    context.ErrorResult = new AuthenticationFailureResult("Unable to extract authentication details from request",
                                                                          context.Request);
                }
            }
Example #18
0
 private void CreateDatabase()
 {
     using (var data = new DataContext("Master", Transaction.No))
     {
         data.Execute("CREATE DATABASE ThunderTest");
     }
 }
Example #19
0
        /// <summary>
        /// Method is used to get the owner status
        /// </summary>
        /// <param name="OwnerID">Owner Id</param>
        /// <returns></returns>
        private string GetOwnerStatus(int OwnerID)
        {
            string sql = "";

            ADODB.Recordset rsTemp = null;
            int             count  = 0;

            try
            {
                sql    = "select FEATURE_STATE_C from COMMON_N where g3e_id={0}";
                rsTemp = DataContext.Execute(string.Format(sql, OwnerID), out count, (int)ADODB.CommandTypeEnum.adCmdText, null);
                if (rsTemp != null && rsTemp.RecordCount > 0)
                {
                    rsTemp.MoveFirst();
                    return((String)rsTemp.Fields["FEATURE_STATE_C"].Value);
                }
            }
            catch
            {
                throw;
            }
            finally
            {
                rsTemp = null;
            }
            return(null);
        }
Example #20
0
        public void F_DataContext_Should_Read_Data_With_One_Field_And_Insert_A_Data_With_Some_Parameters_Types()
        {
            using (var context = new DataContext())
            {
                var selectParameters = new { Name = "Lotus" };
                var manufacturer     = context.First <Manufacturer>("SELECT TheId FROM Le_Manufacturer WHERE Name = @Name", selectParameters);

                var insertParameters = new Car
                {
                    Name           = "Esprit Turbo",
                    ModelYear      = 1981,
                    Mileage        = 318.19850801,
                    ManufacturerId = manufacturer.TheId,
                    Category       = CarCategory.Sport
                };

                context.Execute("INSERT INTO Car VALUES (@Name, @ModelYear, @CreatedAt, @Chassis, @Mileage, @Category, @ManufacturerId)", insertParameters);
                var car = context.First <Car>("SELECT TOP 1 * FROM Car");
                context.Commit();

                car.Id.Should().BeGreaterThan(0);
                car.Name.Should().Be("Esprit Turbo");
                car.ModelYear.Should().Be(1981);
                car.Mileage.Should().Be(318.19850801);
                car.ManufacturerId.Should().Be(manufacturer.TheId);
                car.CreatedAt.Date.Should().Be(DateTime.Today.Date);
                car.Category.Should().Be(CarCategory.Sport);
            }
        }
Example #21
0
        public void DataObjectQuery_Should_Select_All_Items_From_Database_With_Array_Parameter_Binding_And_Context_Transaction()
        {
            commandMock.Setup(c => c.CommandText).Returns("SELECT [Id], [Name], [FirstFlight] FROM Airplane WHERE Name = @0");

            using (var context = new DataContext())
            {
                // Execute a command to open transaction.
                context.Execute("DELETE FROM Airplane");

                // Simulate connection open state later the first execute.
                connectionMock.Setup(c => c.State).Returns(ConnectionState.Open);

                select.With(context).All("WHERE Name = @0", "Omega");

                context.Commit();
            }

            connectionMock.Verify(c => c.CreateCommand(), Times.Exactly(2));
            connectionMock.Verify(c => c.Open(), Times.Once());
            connectionMock.Verify(c => c.BeginTransaction(), Times.Once());
            connectionMock.Verify(c => c.Close(), Times.Once());
            commandMock.Verify(c => c.ExecuteReader(), Times.Once());
            commandMock.VerifySet(c => c.CommandText = "SELECT [Id], [Name], [FirstFlight] FROM Airplane WHERE Name = @0");
            commandMock.VerifySet(c => c.Connection  = connectionMock.Object);
            commandMock.VerifySet(c => c.Transaction = transactionMock.Object);
            commandMock.Verify(c => c.CreateParameter(), Times.Once());
            parameterMock.VerifySet(p => p.ParameterName = "@0");
            parameterMock.VerifySet(p => p.Value         = "Omega");
            parameterCollectionMock.Verify(p => p.Add(parameterMock.Object), Times.Once());
            transactionMock.Verify(t => t.Commit(), Times.Once());
        }
 private void CreateDatabase()
 {
     using (var data = new DataContext("Master", Transaction.No))
     {
         data.Execute("CREATE DATABASE ThunderTest");
     }
 }
Example #23
0
 /// <summary>
 /// 删除一个文件的分享记录
 /// </summary>
 /// <param name="fileId"></param>
 /// <returns></returns>
 public int DeleteByFileId(string fileId)
 {
     using (var db = new DataContext())
     {
         db.Execute("DELETE FROM RF_UserFileShare WHERE FileId={0}", fileId);
         return(db.SaveChanges());
     }
 }
Example #24
0
 /// <summary>
 /// 更新文档
 /// </summary>
 /// <param name="doc">文档实体</param>
 /// <param name="users">阅读人员</param>
 public int Update(Model.Doc doc, List <Model.User> users = null)
 {
     using (var db = new DataContext())
     {
         db.Update(doc);
         //更新阅读人员
         if (null != users)
         {
             db.Execute("DELETE FROM RF_DocUser WHERE DocId={0}", doc.Id);
             foreach (var user in users)
             {
                 db.Execute("INSERT INTO RF_DocUser VALUES({0},{1},{2},{3})", doc.Id, user.Id, 0, null);
             }
         }
         return(db.SaveChanges());
     }
 }
Example #25
0
 /// <summary>
 /// 删除一个流程的实例
 /// </summary>
 /// <param name="flowId"></param>
 /// <returns></returns>
 public int DeleteByFlowId(Guid flowId)
 {
     using (var db = new DataContext())
     {
         db.Execute("DELETE FROM RF_FlowTask WHERE FlowId={0}", flowId);
         return(db.SaveChanges());
     }
 }
Example #26
0
 /// <summary>
 /// 更新阅读次数
 /// </summary>
 /// <param name="doc"></param>
 /// <returns></returns>
 public int UpdateReadCount(Model.Doc doc)
 {
     using (var db = new DataContext())
     {
         db.Execute("UPDATE RF_Doc SET ReadCount=ReadCount+1 WHERE Id={0}", doc.Id);
         return(db.SaveChanges());
     }
 }
Example #27
0
 /// <summary>
 /// 删除
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public int Delete(Guid id)
 {
     using (var db = new DataContext())
     {
         db.Execute("DELETE FROM RF_VoteResult WHERE Id={0}", id);
         return(db.SaveChanges());
     }
 }
Example #28
0
 /// <summary>
 /// 删除
 /// </summary>
 /// <param name="mailOutBox"></param>
 /// <returns></returns>
 public int Delete(Guid id)
 {
     using (var db = new DataContext())
     {
         db.Execute("DELETE RF_MailOutBox WHERE Id={0}", id);
         return(db.SaveChanges());
     }
 }
Example #29
0
 /// <summary>
 /// 删除动态流程
 /// </summary>
 /// <param name="stepId">动态步骤ID</param>
 /// <param name="groupId">组ID</param>
 /// <returns></returns>
 public int Delete(Guid stepId, Guid groupId)
 {
     using (var db = new DataContext())
     {
         db.Execute("DELETE FROM RF_FlowDynamic WHERE StepId={0} AND GroupId={1}", stepId, groupId);
         return(db.SaveChanges());
     }
 }
Example #30
0
 /// <summary>
 /// 更新阅读人员状态
 /// </summary>
 /// <param name="docId">文档ID</param>
 /// <param name="userId">人员ID</param>
 /// <param name="isRead">是否阅读</param>
 public int UpdateIsRead(Guid docId, Guid userId, int isRead)
 {
     using (var db = new DataContext())
     {
         db.Execute("UPDATE RF_DocUser SET IsRead={0},ReadTime={1} WHERE DocId={2} AND UserId={3}",
                    isRead, 1 == isRead ? DateExtensions.Now : new DateTime?(), docId, userId);
         return(db.SaveChanges());
     }
 }
Example #31
0
        public int ExecuteStoredProcedure(string procedureName, params StoreParameter[] parameters)
        {
            var procBuilder = new StoredProcedureBuilder(procedureName, DataContext);

            procBuilder.AddParameters(parameters);
            var _sql = procBuilder.Build();

            return(DataContext.Execute(_sql.SQL, CommandType.StoredProcedure, _sql.Arguments));
        }
Example #32
0
 /// <summary>
 /// 删除一个用户的快捷菜单
 /// </summary>
 /// <param name="userShortcuts">快捷菜单实体</param>
 /// <returns></returns>
 public int Delete(Guid userId)
 {
     ClearCache();
     using (var db = new DataContext())
     {
         db.Execute("DELETE FROM RF_UserShortcut WHERE UserId={0}", userId);
         return(db.SaveChanges());
     }
 }
        /// <summary>
        /// Set table identity (is supported)
        /// </summary>
        /// <typeparam name="TEntity">Entity</typeparam>
        /// <param name="ident">Identity value</param>
        public void SetTableIdent <TEntity>(int ident) where TEntity : BaseEntity
        {
            using (new ReaderWriteLockDisposable(_locker))
            {
                var tableName = DataContext.GetTable <TEntity>().TableName;

                DataContext.Execute($"update sqlite_sequence set seq = {ident} where name = \"{tableName}\"");
            }
        }
Example #34
0
 /// <summary>
 /// 更新一个消息为已读
 /// </summary>
 /// <param name="messageUsers"></param>
 /// <returns></returns>
 public int UpdateIsRead(Guid messageId, Guid userId)
 {
     using (var db = new DataContext())
     {
         db.Execute("UPDATE RF_MessageUser SET IsRead=1,ReadTime={0} WHERE MessageId={1} AND UserId={2}",
                    DateExtensions.Now, messageId, userId);
         return(db.SaveChanges());
     }
 }
Example #35
0
        public void H_DataContext_Reader_Should_Translate_DBNull_To_Null_Value()
        {
            using (var context = new DataContext())
            {
                context.Execute("UPDATE Car SET Name = NULL WHERE Name = 'Esprit Turbo'");
                var car = context.First <Car>("SELECT * FROM Car WHERE Name IS NULL");

                car.Name.Should().BeNull();
            }
        }
        public void DataContext_Should_Execute_And_Commit_A_SQL_Command_With_Transaction()
        {
            using (var context = new DataContext())
            {
                context.Execute("DELETE FROM Airplane");
                context.Commit();
            }

            connectionMock.Verify(c => c.CreateCommand(), Times.Once());
            connectionMock.Verify(c => c.Open(), Times.Once());
            connectionMock.Verify(c => c.BeginTransaction(), Times.Once());
            connectionMock.Verify(c => c.Close(), Times.Once());
            commandMock.Verify(c => c.ExecuteNonQuery(), Times.Once());
            commandMock.VerifySet(c => c.CommandText = "DELETE FROM Airplane");
            commandMock.VerifySet(c => c.Connection = connectionMock.Object);
            commandMock.VerifySet(c => c.Transaction = transactionMock.Object);
            commandMock.Verify(c => c.CreateParameter(), Times.Never());
            transactionMock.Verify(t => t.Commit(), Times.Once());
            providerMock.Object.DbTransaction.Should().NotBeNull();
        }
Example #37
0
        public void B_DataContext_Transitional_Should_Execute_A_Insert_SQL_Command_With_Array_Parameters_And_Read_Created_Data_In_Same_And_Count_Data_In_Another_Context()
        {
            using (var context = new DataContext())
            {
                context.Execute("INSERT INTO Le_Manufacturer VALUES (@0, @1)", "McLaren", 1963);
                var manufacturer = context.First<Manufacturer>("SELECT TOP 1 * FROM Le_Manufacturer WHERE Name = @0", "McLaren");
                context.Commit();

                manufacturer.TheId.Should().BeGreaterThan(0);
                manufacturer.Name.Should().Be("McLaren");
                manufacturer.BuildYear.Should().Be(1963);
            }

            using (var context = new DataContext())
            {
                var manufacturerCount = context.GetValue<int>("SELECT COUNT(TheId) FROM Le_Manufacturer");

                manufacturerCount.Should().Be(2);
            }
        }
Example #38
0
        public void A_DataContext_Transitional_Should_Execute_A_Insert_SQL_Command_With_Anonymous_Object_Parameters_And_Read_Created_Data_In_Same_And_Count_Data_In_Another_Context()
        {
            using (var context = new DataContext())
            {
                var insertParameters = new { Name = "Lotus", Year = 1952 };
                context.Execute("INSERT INTO Le_Manufacturer VALUES (@Name, @Year)", insertParameters);
                var manufacturer = context.First<Manufacturer>("SELECT TOP 1 * FROM Le_Manufacturer");
                context.Commit();

                manufacturer.TheId.Should().BeGreaterThan(0);
                manufacturer.Name.Should().Be("Lotus");
                manufacturer.BuildYear.Should().Be(1952);
            }

            using (var context = new DataContext())
            {
                var manufacturerCount = context.GetValue<int>("SELECT COUNT(TheId) FROM Le_Manufacturer");

                manufacturerCount.Should().Be(1);
            }
        }
Example #39
0
        public void L_DataContext_Should_Throws_An_Exeption_When_A_Constraint_Was_Broken()
        {
            using (var context = new DataContext())
            {
                var insertParameters = new Car
                {
                    Name = "AGL 1113",
                    ModelYear = 1964,
                    Mileage = 1567922,
                    ManufacturerId = 98765, // Invalid ManufacturerId
                    Category = CarCategory.Transport
                };

                context.Execute("INSERT INTO Car VALUES (@Name, @ModelYear, @CreatedAt, @Chassis, @Mileage, @Category, @ManufacturerId)", insertParameters);
            }
        }
        public void DataContext_Should_Execute_Command_With_Anonymous_Object_Parameters()
        {
            using (var context = new DataContext())
            {
                var airplane = new { Name = "Fokker Dr.I", FirstFlight = (int?) null };
                var command = "INSERT INTO Airplane VALUES (@Name, @FirstFlight)";
                context.Execute(command, airplane);
            }

            commandMock.Verify(c => c.ExecuteNonQuery(), Times.Once());
            commandMock.Verify(c => c.CreateParameter(), Times.Exactly(2));
            parameterMock.VerifySet(p => p.ParameterName = "Name");
            parameterMock.VerifySet(p => p.ParameterName = "FirstFlight");
            parameterMock.VerifySet(p => p.Value = "Fokker Dr.I");
            parameterMock.VerifySet(p => p.Value = DBNull.Value);
            parameterCollectionMock.Verify(p => p.Add(parameterMock.Object), Times.Exactly(2));
        }
        public void DataContext_Should_Execute_Command_With_Length_One_Array_Parameters()
        {
            commandMock.Setup(c => c.CommandText).Returns("INSERT INTO Airplane VALUES (@0)");

            using (var context = new DataContext())
            {
                context.Execute("INSERT INTO Airplane VALUES (@0)", "Fokker Dr.I");
            }

            commandMock.Verify(c => c.ExecuteNonQuery(), Times.Once());
            commandMock.Verify(c => c.CreateParameter(), Times.Once());
            parameterMock.VerifySet(p => p.ParameterName = "0");
            parameterMock.VerifySet(p => p.Value = "Fokker Dr.I");
            parameterCollectionMock.Verify(p => p.Add(parameterMock.Object), Times.Once());
        }
Example #42
0
        public void D_DataContext_Transitional_Should_Not_Commit_Data_If_Not_Explicit_Commit_Command_Call()
        {
            using (var context = new DataContext())
            {
                var insertParameters = new { Name = "Bentley", Year = 1919 };
                context.Execute("INSERT INTO Le_Manufacturer VALUES (@Name, @Year)", insertParameters);
            }

            using (var context = new DataContext())
            {
                var manufacturers = context.All<Manufacturer>("SELECT * FROM Le_Manufacturer");

                manufacturers.Count().Should().Be(3);
                manufacturers.Should().Contain(m => m.Name == "Lotus");
                manufacturers.Should().Contain(m => m.Name == "General Motors");
            }
        }
Example #43
0
        public void E_DataContext_Transitional_Should_Execute_A_SQL_And_Share_Transaction_With_A_Data_Reader()
        {
            using (var context = new DataContext())
            {
                var insertParameters = new { Name = "BMW", Year = 1916 };
                context.Execute("INSERT INTO Le_Manufacturer VALUES (@Name, @Year)", insertParameters);
                var selectParameters = new { Name = "BMW" };
                var manufacturer = context.First<Manufacturer>("SELECT * FROM Le_Manufacturer WHERE Name = @Name", selectParameters);

                manufacturer.Should().NotBeNull();
            }

            using (var context = new DataContext())
            {
                var selectParameters = new { Name = "BMW" };
                var manufacturer = context.First<Manufacturer>("SELECT * FROM Le_Manufacturer WHERE Name = @Name", selectParameters);

                manufacturer.Should().BeNull();
            }
        }
Example #44
0
        public void F_DataContext_Should_Read_Data_With_One_Field_And_Insert_A_Data_With_Some_Parameters_Types()
        {
            using (var context = new DataContext())
            {
                var selectParameters = new { Name = "Lotus" };
                var manufacturer = context.First<Manufacturer>("SELECT TheId FROM Le_Manufacturer WHERE Name = @Name", selectParameters);

                var insertParameters = new Car
                {
                    Name = "Esprit Turbo",
                    ModelYear = 1981,
                    Mileage = 318.19850801,
                    ManufacturerId = manufacturer.TheId,
                    Category = CarCategory.Sport
                };

                context.Execute("INSERT INTO Car VALUES (@Name, @ModelYear, @CreatedAt, @Chassis, @Mileage, @Category, @ManufacturerId)", insertParameters);
                var car = context.First<Car>("SELECT TOP 1 * FROM Car");
                context.Commit();

                car.Id.Should().BeGreaterThan(0);
                car.Name.Should().Be("Esprit Turbo");
                car.ModelYear.Should().Be(1981);
                car.Mileage.Should().Be(318.19850801);
                car.ManufacturerId.Should().Be(manufacturer.TheId);
                car.CreatedAt.Date.Should().Be(DateTime.Today.Date);
                car.Category.Should().Be(CarCategory.Sport);
            }
        }
Example #45
0
        public void H_DataContext_Reader_Should_Translate_DBNull_To_Null_Value()
        {
            using (var context = new DataContext())
            {
                context.Execute("UPDATE Car SET Name = NULL WHERE Name = 'Esprit Turbo'");
                var car = context.First<Car>("SELECT * FROM Car WHERE Name IS NULL");

                car.Name.Should().BeNull();
            }
        }
Example #46
0
 public void I_DataContext_Should_Throws_An_Exception_When_Execute_An_Incorrect_Command()
 {
     using (var context = new DataContext())
     {
         context.Execute("DELETE FROM Blargh");
     }
 }
Example #47
0
        public void C_DataContext_Non_Transitional_Should_Execute_A_Insert_SQL_Command_With_Object_Parameters_And_Read_Created_Data_In_Same_And_Count_Data()
        {
            using (var context = new DataContext(Transaction.No))
            {
                var insertParameters = new Manufacturer { Name = "General Motors", BuildYear = 1908 };
                context.Execute("INSERT INTO Le_Manufacturer VALUES (@Name, @BuildYear)", insertParameters);
                var manufacturer = context.First<Manufacturer>("SELECT * FROM Le_Manufacturer WHERE BuildYear = 1908");
                var manufacturerCount = context.GetValue<int>("SELECT COUNT(TheId) FROM Le_Manufacturer");

                manufacturer.TheId.Should().BeGreaterThan(0);
                manufacturer.Name.Should().Be("General Motors");
                manufacturer.BuildYear.Should().Be(1908);
                manufacturerCount.Should().Be(3);
            }
        }