Example #1
0
        public void K_DataContext_Reader_All_Should_Return_An_Empty_Object_List_When_Query_Do_Not_Found_Items()
        {
            using (var context = new DataContext())
            {
                var cars = context.All <Car>("SELECT * FROM Car WHERE Name = 'Fusca'");

                cars.Should().BeEmpty();
            }
        }
        public void Execute()
        {
            var manufacturerId = 0;

            BeginTest.To(new DataContext())
                .Should("Get datacontext transaction mode").Assert(d => d.TransactionMode == Transaction.Begin)
                .Should("Get a value from database").Assert(d =>
                {
                    manufacturerId = d.GetValue<int>("SELECT TOP 1 TheId FROM Le_Manufacturer");
                    return manufacturerId > 0;
                })
                .Should("Insert car with a transactional datacontext").Assert(d =>
                {
                    var car = new Car { Name = "Esprit", ModelYear = 1976, ManufacturerId = manufacturerId };
                    var id = d.Execute("INSERT INTO Car VALUES (@Name, @ModelYear, @Date, @Chassis, @Mileage, @ManufacturerId)", car);
                    return id > 0;
                })
                .Should("Select new car without commit datacontext").Assert(d =>
                {
                    var car = d.First<Car>("SELECT * FROM Car WHERE Mileage IS NULL");
                    return car != null;
                })
                .Should("Commit datacontext transaction").Assert(d =>
                {
                    d.Commit();
                    return true;
                })
                .Should("Select commited data on database with another datacontext").Assert(d =>
                {
                    using (var dataContext = new DataContext())
                    {
                        var cars = dataContext.All<Car>("SELECT * FROM Car");
                        return cars.Count == 1;
                    }
                })
                .Should("Get values from database").Assert(d =>
                {
                    var mileages = d.GetValues<double?>("SELECT Mileage FROM Car");
                    return mileages.Count == 1 && mileages[0] == null;
                })
                .Should("Throw error when property format exception").Assert(d =>
                {
                    try
                    {
                        var car = d.First<ErrorCar>("SELECT * FROM Car");
                    }
                    catch (FormatException) { return true; }

                    return false;
                })
                .Should("Dispose datacontext close connection and transaction").Assert(d =>
                {
                    d.Dispose();
                    return d.Provider.DbConnection.State == ConnectionState.Closed;
                });
        }
Example #3
0
        public void G_DataContext_Should_Execute_A_Procedure()
        {
            using (var context = new DataContext())
            {
                var procedureParams = new { Status = "active" };
                var whoResults      = context.All <WhoResult>("EXEC sp_who @Status", procedureParams);

                whoResults.Should().Contain(r => r.dbname == "ThunderTest" && r.cmd == "SELECT");
            }
        }
        public void DataContext_Should_Get_A_List_Of_Objects_From_Database()
        {
            using (var context = new DataContext())
            {
                var cars = context.All <object>("SELECT * FROM Airplane");
            }

            connectionMock.Verify(c => c.Open(), Times.Once());
            connectionMock.Verify(c => c.Close(), Times.Once());
            connectionMock.Verify(c => c.BeginTransaction(), Times.Never());
            commandMock.Verify(c => c.ExecuteReader(), Times.Once());
            commandMock.VerifySet(c => c.CommandText = "SELECT * FROM Airplane");
            providerMock.Object.DbTransaction.Should().BeNull();
            dataReaderMock.Verify(r => r.Read(), Times.Once());
        }
Example #5
0
        private IEnumerable <T> Execute(DataContext context, string query, params object[] queryParams)
        {
            var finalQuery = ResolveProjection(query, context);

            try
            {
                return(context.All <T>(finalQuery, queryParams));
            }
            finally
            {
                if (DataContext == null)
                {
                    context.Dispose();
                }
            }
        }
Example #6
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 #7
0
 public IEnumerator <WebDecorator> GetEnumerator()
 {
     return(DataContext.All <Web>().ToList().Select(w => new WebDecorator(w, this.DataContext)).GetEnumerator());
 }
        public void K_DataContext_Reader_All_Should_Return_An_Empty_Object_List_When_Query_Do_Not_Found_Items()
        {
            using (var context = new DataContext())
            {
                var cars = context.All<Car>("SELECT * FROM Car WHERE Name = 'Fusca'");

                cars.Should().BeEmpty();
            }
        }
        public void G_DataContext_Should_Execute_A_Procedure()
        {
            using (var context = new DataContext())
            {
                var procedureParams = new { Status = "active" };
                var whoResults = context.All<WhoResult>("EXEC sp_who @Status", procedureParams);

                whoResults.Should().Contain(r => r.dbname == "ThunderTest" && r.cmd == "SELECT");
            }
        }
Example #10
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");
            }
        }
        public void DataContext_Should_Get_A_List_Of_Objects_From_Database()
        {
            using (var context = new DataContext())
            {
                var cars = context.All<object>("SELECT * FROM Airplane");
            }

            connectionMock.Verify(c => c.Open(), Times.Once());
            connectionMock.Verify(c => c.Close(), Times.Once());
            connectionMock.Verify(c => c.BeginTransaction(), Times.Never());
            commandMock.Verify(c => c.ExecuteReader(), Times.Once());
            commandMock.VerifySet(c => c.CommandText = "SELECT * FROM Airplane");
            providerMock.Object.DbTransaction.Should().BeNull();
            dataReaderMock.Verify(r => r.Read(), Times.Once());
        }
Example #12
0
 /// <summary>
 /// Gets all roles
 /// </summary>
 /// <returns>A queryable role collection.</returns>
 public IQueryable <Role> GetAllRoles()
 {
     return(DataContext.All <Role>());
 }