forked from ThatRendle/Simple.Data
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOrderDetailTests.cs
More file actions
85 lines (74 loc) · 2.47 KB
/
OrderDetailTests.cs
File metadata and controls
85 lines (74 loc) · 2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using NUnit.Framework;
namespace Simple.Data.SqlTest
{
[TestFixture]
public class OrderDetailTests
{
[TestFixtureSetUp]
public void Setup()
{
DatabaseHelper.Reset();
}
[Test]
public void TestOrderDetail()
{
var db = DatabaseHelper.Open();
var order = db.Orders.FindByOrderDate(new DateTime(2010,10,10));
Assert.IsNotNull(order);
var orderItem = order.OrderItems.FirstOrDefault();
var item = orderItem.Item;
Assert.IsNotNull(item);
Assert.AreEqual("Widget", item.Name);
}
[Test]
public void TestOrderDetailFromList()
{
var db = DatabaseHelper.Open();
var orders = db.Orders.FindAllByOrderDate(new DateTime(2010,10,10));
Assert.IsNotNull(orders);
foreach (var order in orders)
{
var orderItem = order.OrderItems.FirstOrDefault();
var item = orderItem.Item;
Assert.IsNotNull(item);
Assert.AreEqual("Widget", item.Name);
}
}
[Test]
public void TestComplexObjectCreation()
{
var db = DatabaseHelper.Open();
var row = db.Customers.FindByCustomerId(1);
Customer customer = row;
customer.Orders.AddRange(row.Orders.Cast<Order>());
Assert.AreEqual("Test", customer.Name);
Assert.AreEqual(1, customer.Orders.Count);
Assert.AreEqual(1, customer.Orders.First().OrderId);
Assert.AreEqual(1, customer.Orders.First().CustomerId);
Assert.AreEqual(new DateTime(2010, 10, 10), customer.Orders.First().OrderDate);
}
}
class Customer
{
private readonly List<Order> _orders = new List<Order>();
public List<Order> Orders
{
get { return _orders; }
}
public int CustomerId { get; set; }
public string Name { get; set; }
public string Address { get; set; }
}
class Order
{
public int OrderId { get; set; }
public DateTime OrderDate { get; set; }
public int CustomerId { get; set; }
public Customer Customer { get; set; }
}
}