Skip to content

Commit 8e6d19f

Browse files
committed
Default name for Function calls as {FunctionName}_{FieldName}
1 parent 66a2692 commit 8e6d19f

2 files changed

Lines changed: 42 additions & 6 deletions

File tree

Simple.Data.InMemoryTest/InMemoryTests.cs

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,18 +65,54 @@ public void SelectShouldReturnSubsetOfColumns()
6565
}
6666

6767
[Test]
68-
public void SelectWithAggregateShouldReturnAggregates()
68+
public void SelectWithAverageShouldReturnAverage()
69+
{
70+
var db = CreateAggregateTestDb();
71+
var records = db.Test.All().Select(db.Test.Name, db.Test.Age.Average().As("AverageAge")).ToList();
72+
Assert.AreEqual(2, records.Count);
73+
Assert.AreEqual(25, records[0].AverageAge);
74+
Assert.AreEqual(45, records[1].AverageAge);
75+
}
76+
77+
[Test]
78+
public void SelectWithSumShouldReturnSum()
79+
{
80+
var db = CreateAggregateTestDb();
81+
var records = db.Test.All().Select(db.Test.Name, db.Test.Age.Sum().As("SumAge")).ToList();
82+
Assert.AreEqual(2, records.Count);
83+
Assert.AreEqual(50, records[0].SumAge);
84+
Assert.AreEqual(90, records[1].SumAge);
85+
}
86+
87+
[Test]
88+
public void SelectWithMinShouldReturnMin()
89+
{
90+
var db = CreateAggregateTestDb();
91+
var records = db.Test.All().Select(db.Test.Name, db.Test.Age.Min().As("MinAge")).ToList();
92+
Assert.AreEqual(2, records.Count);
93+
Assert.AreEqual(20, records[0].MinAge);
94+
Assert.AreEqual(40, records[1].MinAge);
95+
}
96+
97+
[Test]
98+
public void SelectWithMaxShouldReturnMax()
99+
{
100+
var db = CreateAggregateTestDb();
101+
var records = db.Test.All().Select(db.Test.Name, db.Test.Age.Max().As("MaxAge")).ToList();
102+
Assert.AreEqual(2, records.Count);
103+
Assert.AreEqual(30, records[0].MaxAge);
104+
Assert.AreEqual(50, records[1].MaxAge);
105+
}
106+
107+
private static dynamic CreateAggregateTestDb()
69108
{
70109
Database.UseMockAdapter(new InMemoryAdapter());
71110
var db = Database.Open();
72111
db.Test.Insert(Id: 1, Name: "Alice", Age: 20);
73112
db.Test.Insert(Id: 2, Name: "Alice", Age: 30);
74113
db.Test.Insert(Id: 3, Name: "Bob", Age: 40);
75114
db.Test.Insert(Id: 4, Name: "Bob", Age: 50);
76-
var records = db.Test.All().Select(db.Test.Name, db.Test.Age.Average().As("AverageAge")).ToList();
77-
Assert.AreEqual(2, records.Count);
78-
Assert.AreEqual(25, records[0].AverageAge);
79-
Assert.AreEqual(45, records[1].AverageAge);
115+
return db;
80116
}
81117

82118
[Test]

Simple.Data/FunctionReference.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public FunctionReference As(string alias)
5050

5151
public override string GetAliasOrName()
5252
{
53-
return GetAlias() ?? _name;
53+
return GetAlias() ?? _name + "_" + _argument.GetAliasOrName();
5454
}
5555

5656
public bool IsAggregate

0 commit comments

Comments
 (0)