public void TestAdd_Items() { //创建两个商品 var product1 = new Product(_random.Next(999999999)) { Name = "dotnet", Code = "1", Price = 10 }; _productRepository.Add(product1); var product2 = new Product(_random.Next(999999999)) { Name = "dotnetcore", Code = "2", Price = 20 }; _productRepository.Add(product2); _unitOfWork.Commit(); _unitOfWork.ClearCache(); //创建订单,添加两个订单明细 Guid orderId = Guid.NewGuid(); var order = new Order(orderId) { Name = "Order", Code = "123" }; order.AddItem(product1, 2); order.AddItem(product2, 3); _orderRepository.Add(order); _unitOfWork.Commit(); _unitOfWork.ClearCache(); //验证 var result = _orderRepository.Find().Include(t => t.Items).FirstOrDefault(t => t.Id == orderId); Assert.Equal("123", result.Code); Assert.Equal(2, result.Items.Count); //从外部无法通过导航属性添加订单明细,必须调用AddItem方法 var item = new OrderItem(Guid.NewGuid(), result); item.Booking(product1, 2); var items = result.Items.ToList(); items.Add(item); _unitOfWork.Commit(); _unitOfWork.ClearCache(); result = _orderRepository.Find().Include(t => t.Items).FirstOrDefault(t => t.Id == orderId); Assert.Equal(2, result.Items.Count); }
public void TestAdd() { int id = _random.Next(999999999); var product = new Product(id) { Name = "Name", Code = "Code" }; product.ProductType = new ProductType("Type", new List <ProductProperty>() { new ProductProperty("A", "1"), new ProductProperty("B", "2") }); _productRepository.Add(product); _unitOfWork.Commit(); Product result = _productRepository.GetById(id); Assert.Equal(id, result.Id); Assert.Equal("Type", result.ProductType.Name); Assert.Equal("2", result.ProductType.Properties.ToList()[1].Value); }