예제 #1
0
        public void CreateRangeAsync_PassNUll_ThrowNullArgumentException()
        {
            Customer customer = null;

            var ex = Assert.Throws <AggregateException>(() => { CrudBuilder.Build <CustomerCreate>().Execute(customer).Wait(); });

            Assert.AreEqual(ex.InnerException.GetType(), typeof(ArgumentNullException));
        }
예제 #2
0
        public void Retriever_GetElementsByFilter_RetrunsElementsExpectedCount(string firstName, int expectedCount)
        {
            var filter = CustomerFilter.Create()
                         .SetfirstName(firstName);
            List <Customer> customersResult = CrudBuilder.Build <CustomerQuery>().ApplyFilter(filter).Result;

            Assert.AreEqual(expectedCount, customersResult.Count);
        }
예제 #3
0
        public void DeleteAsync_DeleteElement_Success()
        {
            var customer = Context.Customers.Single(r => r.FirstName == TestCustomer1.FirstName);

            CrudBuilder.Build <CustomerDelete>().Execute(customer).Wait();

            var deletedCustomer = Context.Customers.FirstOrDefault(r => r.FirstName == TestCustomer1.FirstName);

            Assert.IsNull(deletedCustomer);
        }
예제 #4
0
        public void DeleteAsync_DeleteRangeElements_Success()
        {
            var customer  = Context.Customers.Single(r => r.FirstName == TestCustomer1.FirstName);
            var customer2 = Context.Customers.Single(r => r.FirstName == TestCustomer2.FirstName);

            CrudBuilder.Build <CustomersDelete>().Execute(new[] { customer, customer2 }).Wait();

            var customers = Context.Customers.Where(r => r.FirstName == TestCustomer1.FirstName || r.FirstName == TestCustomer2.FirstName).ToList();

            Assert.AreEqual(customers.Count, 0);
        }
예제 #5
0
        public void UpdateAsync_UpdateElement_MutchChangedValue()
        {
            var customer     = Context.Customers.Single(r => r.FirstName == TestCustomer1.FirstName);
            var newFirstName = MethodBase.GetCurrentMethod().Name;

            customer.FirstName = newFirstName;
            CrudBuilder.Build <CustomerUpdate>().Execute(customer).Wait();

            var changedCustomer = Context.Customers.Single(r => r.FirstName == newFirstName);

            Assert.AreEqual(changedCustomer.FirstName, newFirstName);
        }
예제 #6
0
        public void CreateAsync_CreateElement_Success()
        {
            var customer = new Customer {
                FirstName = "Elizabeth", LastName = "Lincoln", Address = "23 Tsawassen Blvd.",
            };

            CrudBuilder.Build <CustomerCreate>().Execute(customer).Wait();

            var existingCustomer = Context.Customers.Single(r => r.Id == customer.Id);

            Assert.AreEqual(existingCustomer?.FirstName, customer.FirstName);
        }
예제 #7
0
        public void UpdateAsync_UpdateRangeElements_Success()
        {
            var customer     = Context.Customers.Single(r => r.FirstName == TestCustomer1.FirstName);
            var customer2    = Context.Customers.Single(r => r.FirstName == TestCustomer2.FirstName);
            var newFirstName = MethodBase.GetCurrentMethod().Name;

            customer.FirstName  = newFirstName;
            customer2.FirstName = newFirstName;

            CrudBuilder.Build <CustomersUpdate>().Execute(new[] { customer, customer2 }).Wait();

            var customers = Context.Customers.Where(r => r.FirstName == newFirstName).ToList();

            Assert.AreEqual(customers.Count, 2);
        }
예제 #8
0
        public void CreateRangeAsync_CreateRangeElements_Success()
        {
            var countsBeforeCreate = Context.Customers.Count();
            var customer1          = new Customer {
                FirstName = "CreateRangeAsync", LastName = "Lincoln", Address = "23 Tsawassen Blvd.",
            };
            var customer2 = new Customer {
                FirstName = "CreateRangeAsync", LastName = "Lincoln", Address = "23 Tsawassen Blvd.",
            };
            var customers = new[] { customer1, customer2 };

            CrudBuilder.Build <CustomersCreate>().Execute(customers.ToList()).Wait();

            Assert.AreEqual(countsBeforeCreate + customers.Length, Context.Customers.Count());
        }
예제 #9
0
        public void RetrieverAsNoTracking_CheckNoTracking_ReturnsNoChanges()
        {
            var newCustomer = new Customer {
                FirstName = MethodBase.GetCurrentMethod().Name
            };

            Context.Add(newCustomer);
            Context.SaveChanges();

            var filter = CustomerFilter.Create()
                         .SetId(newCustomer.Id);
            Customer customer = CrudBuilder.Build <CustomerQuery>().ApplyFilterAsNoTraking(filter).Result.Single();

            customer.FirstName += "_changed";
            Context.SaveChanges();

            var reloadedCustomer = Context.Customers.FirstOrDefault(r => r.Id == newCustomer.Id);

            Assert.AreEqual(reloadedCustomer.FirstName, MethodBase.GetCurrentMethod().Name);
        }
예제 #10
0
        public void Retriever_GetElementById_RetrunsOneElement()
        {
            var customer = new Customer
            {
                Id        = Guid.NewGuid(),
                FirstName = "Sarah",
                LastName  = "Conor",
                Address   = "Sydney",
                Invoices  = new List <Invoice> {
                    new Invoice {
                        Date = DateTime.UtcNow
                    }
                }
            };

            Context.Customers.Add(customer);
            Context.SaveChanges();

            var filter = CustomerFilter.Create()
                         .SetId(customer.Id);
            List <Customer> customersResult = CrudBuilder.Build <CustomerQuery>().ApplyFilter(filter).Result;

            Assert.AreEqual(customer, customersResult.Single());
        }
예제 #11
0
        public void Retriever_GetAllElementsByFilterNull_RetrunsOneElement()
        {
            List <Customer> customersResult = CrudBuilder.Build <CustomerQuery>().ApplyFilter(null).Result;

            Assert.AreEqual(Context.Customers.Count(), customersResult.Count);
        }