public WithStandardTestData() { DB.CreateAllTables(); DB.PurgeAll(); Random rnd = new Random(); Customer[] customers = new Customer[NUM_CUSTOMERS]; Product[] products = new Product[NUM_PRODUCTS]; for (int productIndex = 0; productIndex < NUM_PRODUCTS; productIndex++) { Product product = new Product() { ProductID = "" + (char)('A' + productIndex), Description = "Product " + (productIndex + 1), MinQty = 1, Price = (decimal) (rnd.Next(100, 20000) / 100.0) }; DB.Products.Insert(product); products[productIndex] = product; } for (int customerIndex = 0; customerIndex < NUM_CUSTOMERS; customerIndex++) { Customer customer = new Customer { Name = "Customer " + (customerIndex + 1) }; customer.Save(); customers[customerIndex] = customer; for (int orderIndex = 0; orderIndex < customerIndex%10; orderIndex++) { var order = new Order { CustomerID = customers[customerIndex].CustomerID, Remark = new string((char) ('A' + rnd.Next(0, 26)), 1), OrderDate = DateTime.Now }; order.Save(); for (int itemIndex = 0; itemIndex < customerIndex%5; itemIndex++) { var item = new OrderItem { OrderID = order.OrderID, Description = "Item " + (orderIndex + 1) + "/" + (itemIndex + 1), Qty = (short) rnd.Next(1, 10), Price = (double) products[itemIndex].Price, ProductID = itemIndex == 0 ? null : products[itemIndex].ProductID }; item.Save(); } } } FIRST_CUSTOMERID = customers[0].CustomerID; }
public void RandomCreation() { Random rnd = new Random(); Customer cust = new Customer(); cust.Name = "A"; cust.Save(); double total = 0.0; for (int i = 0; i < 5; i++) { Order order = new Order { Customer = cust }; order.Save(); for (int j = 0; j < 20; j++) { int qty = rnd.Next(1, 10); double price = rnd.NextDouble() * 500.0; OrderItem item = new OrderItem() { Description = "test", Qty = (short)qty, Price = price, OrderID = order.OrderID }; item.Save(); total += qty * price; } } var orders = DB.Orders.ToArray(); Assert.AreEqual(5, orders.Length); double total2 = DB.OrderItems.Sum(item => item.Qty*item.Price); Assert.AreEqual(total, total2, 0.000001); foreach (Order order in orders) { Vx.LoadRelations(order, o => o.Customer, o => o.OrderItems); Assert.AreEqual(cust.CustomerID, order.Customer.CustomerID); Assert.AreEqual(20, order.OrderItems.Count); Assert.AreEqual(cust.Name, order.Customer.Name); DB.OrderItems.Delete(order.OrderItems.First()); } total2 = DB.OrderItems.Sum(item => item.Qty * item.Price); total.Should().BeGreaterThan(total2); Assert.AreEqual(95, DB.OrderItems.Count()); }