Select improvements and alias parsing.

Insert evolved.
This commit is contained in:
grzegorz.russek
2013-06-04 22:16:40 +00:00
parent 02cd81aab5
commit de58df8c60
7 changed files with 167 additions and 18 deletions

View File

@@ -436,6 +436,29 @@ namespace DynamORM.Tests.Select
Assert.AreEqual(exp.last, o.last);
}
/// <summary>Test dynamic duplicate column name ocurrance.</summary>
[Test]
public void TestDuplicateColumnNameException()
{
Assert.Throws<ArgumentException>(() => GetTestBuilder()
.Where(x => x.id == 19)
.Select(x => new { id = x.id, first = x.first, last = x.last })
.Select(x => x.last.As(x.first)) // Make last be first
.Execute()
.First());
}
[Test]
public void TestEmptyColumnName()
{
var v = GetTestBuilder()
.Select(x => x.first, x => x.Count(x.first))
.GroupBy(x => x.first)
.OrderBy(x => x.Desc(2))
.Execute()
.ToList();
}
#endregion Select
#region Where

View File

@@ -482,6 +482,20 @@ namespace DynamORM.Tests.Select
Assert.AreEqual("SELECT \"dbo\".\"Users\".\"UserName\" AS \"Name\" FROM \"dbo\".\"Users\"", cmd.CommandText());
}
/// <summary>
/// Tests select field with alias.
/// </summary>
[Test]
public void TestSelectFieldAlias3()
{
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
cmd.From(u => u.dbo.Users.As(u.u))
.Select(u => u.UserName.As(u.Name));
Assert.AreEqual("SELECT u.\"UserName\" AS \"Name\" FROM \"dbo\".\"Users\" AS u", cmd.CommandText());
}
/// <summary>
/// Tests select aggregate field with alias (Sum).
/// </summary>

View File

@@ -38,7 +38,7 @@ namespace DynamORM.Tests.Select
/// <summary>Test typed ORM.</summary>
/// <typeparam name="T">Type to test.</typeparam>
[TestFixture(typeof(users))]
public class TypedAccessTests<T> : TestsBase
public class TypedAccessTests<T> : TestsBase where T : class
{
/// <summary>Setup test parameters.</summary>
[TestFixtureSetUp]
@@ -97,6 +97,18 @@ namespace DynamORM.Tests.Select
Assert.AreEqual(200, list.Count);
}
/// <summary>Test load all rows into mapped list alternate way.</summary>
[Test]
public virtual void TestTypedGetAll3()
{
var list = GetTestBuilder()
.From(x => x(typeof(T)).As(x.t))
.Execute<T>()
.ToList();
Assert.AreEqual(200, list.Count);
}
/// <summary>Test unknown op.</summary>
[Test]
public virtual void TestTypedUnknownOperation()