public void GetAllWithPredicates_Customer_Succeed()
        {
            //Arrange
            using (var context = new ManagementContext())
            {
                var executor = new SqlExecutor(context.Database.Connection.ConnectionString);
                executor.ExecuteScript(Path.Combine(Environment.CurrentDirectory, "Scripts", "2 - Customers.sql"));

                var unitOfWork         = new DatabaseUnitOfWork(context);
                var customerRepository = new CustomerRepository(unitOfWork);

                //Act
                var predicates = CustomerRepository.Predicates(p => p.Id > 2, p => p.Code.StartsWith("A"));
                var total      = customerRepository.GetAll <Customer>(predicates, null, null).Count();

                //Assert
                Assert.AreEqual(3, total);
            }
        }
        public void GetPaginated_Customer_Succeed(PaginatedData paginatedData)
        {
            //Arrange
            using (var context = new ManagementContext())
            {
                var executor = new SqlExecutor(context.Database.Connection.ConnectionString);
                executor.ExecuteScript(Path.Combine(Environment.CurrentDirectory, "Scripts", "2 - Customers.sql"));

                var unitOfWork         = new DatabaseUnitOfWork(context);
                var customerRepository = new CustomerRepository(unitOfWork);

                //Act
                PaginatedResult <Customer> result = customerRepository.GetPaginated(null, null, p => p.Id, paginatedData.PageIndex, paginatedData.PageSize);

                //Assert
                Assert.AreEqual(paginatedData.ResultCount, result.Result.Count());
                Assert.AreEqual(paginatedData.PageIndex, result.PageIndex);
                Assert.AreEqual(paginatedData.PageSize, result.PageSize);
                Assert.AreEqual(paginatedData.TotalCount, result.TotalCount);
                Assert.AreEqual(paginatedData.TotalPageCount, result.TotalPageCount);
                Assert.AreEqual(paginatedData.HasPreviousPage, result.HasPreviousPage);
                Assert.AreEqual(paginatedData.HasNextPage, result.HasNextPage);
            }
        }
        public void GetPaginated_Customer_Succeed(PaginatedData paginatedData)
        {
            //Arrange            
            using (var context = new ManagementContext())
            {
                var executor = new SqlExecutor(context.Database.Connection.ConnectionString);
                executor.ExecuteScript(Path.Combine(Environment.CurrentDirectory, "Scripts", "2 - Customers.sql"));

                var unitOfWork = new DatabaseUnitOfWork(context);
                var customerRepository = new CustomerRepository(unitOfWork);

                //Act
                PaginatedResult<Customer> result = customerRepository.GetPaginated(null, null, p => p.Id, paginatedData.PageIndex, paginatedData.PageSize);

                //Assert
                Assert.AreEqual(paginatedData.ResultCount, result.Result.Count());
                Assert.AreEqual(paginatedData.PageIndex, result.PageIndex);
                Assert.AreEqual(paginatedData.PageSize, result.PageSize);
                Assert.AreEqual(paginatedData.TotalCount, result.TotalCount);
                Assert.AreEqual(paginatedData.TotalPageCount, result.TotalPageCount);
                Assert.AreEqual(paginatedData.HasPreviousPage, result.HasPreviousPage);
                Assert.AreEqual(paginatedData.HasNextPage, result.HasNextPage);
            }
        }
        public void GetAllWithPredicates_Customer_Succeed()
        {
            //Arrange            
            using (var context = new ManagementContext())
            {
                var executor = new SqlExecutor(context.Database.Connection.ConnectionString);
                executor.ExecuteScript(Path.Combine(Environment.CurrentDirectory, "Scripts", "2 - Customers.sql"));

                var unitOfWork = new DatabaseUnitOfWork(context);
                var customerRepository = new CustomerRepository(unitOfWork);

                //Act
                var predicates = CustomerRepository.Predicates(p => p.Id > 2, p => p.Code.StartsWith("A"));
                var total = customerRepository.GetAll<Customer>(predicates, null, null).Count();

                //Assert
                Assert.AreEqual(3, total);
            }
        }