Skip to content

Commit 62fcfc8

Browse files
committed
1 parent ec8a55a commit 62fcfc8

2 files changed

Lines changed: 43 additions & 20 deletions

File tree

Simple.Data.InMemoryTest/InMemoryTests.cs

Lines changed: 42 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,15 @@ public void TestFindAllByExcludedPartialName()
8484
Assert.IsNotNull(records);
8585
Assert.AreEqual(2, records.Count);
8686
}
87-
87+
8888
[Test]
8989
public void SelectShouldReturnSubsetOfColumns()
9090
{
9191
Database.UseMockAdapter(new InMemoryAdapter());
9292
var db = Database.Open();
9393
db.Test.Insert(Id: 1, Name: "Alice");
9494
db.Test.Insert(Id: 2, Name: "Bob");
95-
List<IDictionary<string,object>> records = db.Test.All().Select(db.Test.Name).ToList<IDictionary<string,object>>();
95+
List<IDictionary<string, object>> records = db.Test.All().Select(db.Test.Name).ToList<IDictionary<string, object>>();
9696
Assert.IsNotNull(records);
9797
Assert.AreEqual(2, records.Count);
9898
Assert.False(records[0].ContainsKey("Id"));
@@ -191,7 +191,7 @@ public void TestUpdate()
191191
Database.UseMockAdapter(adapter);
192192
var db = Database.Open();
193193
var alice = db.Test.Insert(Id: 1, Name: "Alice");
194-
var allyce = new {Id = 1, Name = "Allyce"};
194+
var allyce = new { Id = 1, Name = "Allyce" };
195195
int updated = db.Test.Update(allyce);
196196
Assert.AreEqual(1, updated);
197197
var record = db.Test.FindById(1);
@@ -271,18 +271,18 @@ public void TestSkipAndTake()
271271
[Test]
272272
public void TestJoin()
273273
{
274-
var adapter = new InMemoryAdapter();
275-
adapter.ConfigureJoin("Customer", "ID", "Orders", "Order", "CustomerID", "Customer");
276-
Database.UseMockAdapter(adapter);
277-
var db = Database.Open();
278-
db.Customer.Insert(ID: 1, Name: "NASA");
279-
db.Customer.Insert(ID: 2, Name: "ACME");
280-
db.Order.Insert(ID: 1, CustomerID: 1, Date: new DateTime(1997, 1, 12));
281-
db.Order.Insert(ID: 2, CustomerID: 2, Date: new DateTime(2001, 1, 1));
282-
283-
var customers = db.Customer.FindAll(db.Customer.Orders.Date < new DateTime(1999, 12, 31)).ToList();
284-
Assert.IsNotNull(customers);
285-
Assert.AreEqual(1, customers.Count);
274+
var adapter = new InMemoryAdapter();
275+
adapter.ConfigureJoin("Customer", "ID", "Orders", "Order", "CustomerID", "Customer");
276+
Database.UseMockAdapter(adapter);
277+
var db = Database.Open();
278+
db.Customer.Insert(ID: 1, Name: "NASA");
279+
db.Customer.Insert(ID: 2, Name: "ACME");
280+
db.Order.Insert(ID: 1, CustomerID: 1, Date: new DateTime(1997, 1, 12));
281+
db.Order.Insert(ID: 2, CustomerID: 2, Date: new DateTime(2001, 1, 1));
282+
283+
var customers = db.Customer.FindAll(db.Customer.Orders.Date < new DateTime(1999, 12, 31)).ToList();
284+
Assert.IsNotNull(customers);
285+
Assert.AreEqual(1, customers.Count);
286286
}
287287

288288
/// <summary>
@@ -320,7 +320,7 @@ public void FindAllWhenUsingNamePropertyShouldWork()
320320

321321
var categories = db.Users.FindAll(db.User.Categories.Name == "Category 1").ToList();
322322
Assert.NotNull(categories);
323-
Assert.AreEqual(1, categories.Count);
323+
Assert.AreEqual(1, categories.Count);
324324
}
325325

326326
[Test]
@@ -338,7 +338,7 @@ public void FindAllWhenUsingAnyOldPropertyNameShouldWork()
338338

339339
var categories = db.Users.FindAll(db.User.Categories.CategoryName == "Category 1").ToList();
340340
Assert.NotNull(categories);
341-
Assert.AreEqual(1, categories.Count);
341+
Assert.AreEqual(1, categories.Count);
342342
}
343343

344344
[Test]
@@ -479,7 +479,7 @@ public void BulkInsertWithCallbackShouldWork()
479479
Database.UseMockAdapter(new InMemoryAdapter());
480480
var db = Database.Open();
481481
ErrorCallback callback = (o, e) => true; // Continue processing
482-
db.Users.Insert(new[] { new {Id= 1, Name= "Alice", Age= 30},new {Id= 2, Name= "Bob", Age= 40}}, callback);
482+
db.Users.Insert(new[] { new { Id = 1, Name = "Alice", Age = 30 }, new { Id = 2, Name = "Bob", Age = 40 } }, callback);
483483
Assert.AreEqual(2, db.Users.GetCount());
484484
}
485485

@@ -490,7 +490,7 @@ public void BulkInsertWithoutCallbackShouldWork()
490490
Database.UseMockAdapter(new InMemoryAdapter());
491491
var db = Database.Open();
492492
ErrorCallback callback = (o, e) => true; // Continue processing
493-
db.Users.Insert(new[] { new {Id= 1, Name= "Alice", Age= 30},new {Id= 2, Name= "Bob", Age= 40}});
493+
db.Users.Insert(new[] { new { Id = 1, Name = "Alice", Age = 30 }, new { Id = 2, Name = "Bob", Age = 40 } });
494494
Assert.AreEqual(2, db.Users.GetCount());
495495
}
496496

@@ -502,5 +502,28 @@ private static int ThreadTestHelper(int userId)
502502
db.Users.Insert(Id: userId, Email: "foo");
503503
return Database.Default.Users.FindByEmail("foo").Id;
504504
}
505+
506+
[Test]
507+
public void TestJoinWithAlias()
508+
{
509+
var adapter = new InMemoryAdapter();
510+
adapter.ConfigureJoin("Customer", "ID", "Customer", "Orders", "CustomerID", "Orders");
511+
Database.UseMockAdapter(adapter);
512+
var db = Database.Open();
513+
db.Customer.Insert(ID: 1, Name: "NASA");
514+
db.Customer.Insert(ID: 2, Name: "ACME");
515+
db.Orders.Insert(ID: 1, Name: "Order1", CustomerID: 1);
516+
db.Orders.Insert(ID: 2, Name: "Order2", CustomerID: 2);
517+
db.Orders.Insert(ID: 3, Name: "Order3", CustomerID: 2);
518+
519+
IEnumerable<dynamic> orders = db.Orders.Query()
520+
.Where(db.Orders.Customer.Name == "ACME")
521+
.Select(db.Orders.Name.As("OrderName"),
522+
db.Orders.Customer.Name.As("CustomerName"))
523+
.ToList();
524+
Assert.IsNotNull(orders);
525+
Assert.AreEqual(2, orders.Count());
526+
Assert.AreEqual(2, orders.Count(x => x.CustomerName == "ACME"));
527+
}
505528
}
506529
}

Simple.Data/QueryPolyfills/ObjectValueResolver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ public override void CopyValue(IDictionary<string, object> source, IDictionary<s
2020
public override object GetValue(IDictionary<string, object> source, IEnumerable<IDictionary<string, object>> sourceAggregationValues = null)
2121
{
2222
if (source == null) return null;
23-
if (source.ContainsKey(_reference.GetName())) return source[_reference.GetName()];
2423
if (_reference.HasOwner() && source.ContainsKey(_reference.GetOwner().GetName()))
2524
{
2625
var childDictionary = source[_reference.GetOwner().GetName()] as IDictionary<string, object>;
2726
return GetValue(childDictionary);
2827
}
28+
if (source.ContainsKey(_reference.GetName())) return source[_reference.GetName()];
2929
return null;
3030
}
3131
}

0 commit comments

Comments
 (0)