This commit is contained in:
grzegorz.russek committed 2018-09-20 05:35:36 +00:00
1 parent fe36953bd5
commit 913d29274e
19 files changed
+605 -383

No files matched your search

+80 -8
View File
@@ -13432,7 +13432,7 @@ namespace DynamORM
var v = prop.Get(val); var v = prop.Get(val);
foreach (var r in prop.Requirements) foreach (var r in prop.Requirements.Where(x => !x.ElementRequirement))
{ {
var valid = r.ValidateSimpleValue(prop, v); var valid = r.ValidateSimpleValue(prop, v);
@@ -13441,8 +13441,42 @@ namespace DynamORM
if (prop.Type.IsArray || prop.IsGnericEnumerable) if (prop.Type.IsArray || prop.IsGnericEnumerable)
{ {
var map = DynamicMapperCache.GetMapper(prop.ArrayType); var map = DynamicMapperCache.GetMapper(prop.ArrayType);
foreach (var item in val as IEnumerable<object>)
var list = v as IEnumerable<object>;
if (list == null)
{
var enumerable = v as IEnumerable;
if (enumerable != null)
list = enumerable.Cast<object>();
}
if (list != null)
foreach (var item in list)
{
if (prop.Requirements.Any(x => x.ElementRequirement))
{
foreach (var re in prop.Requirements.Where(x => x.ElementRequirement))
{
var validelem = re.ValidateSimpleValue(prop.ArrayType, prop.ArrayType.IsGenericEnumerable(), item);
if (validelem == ValidateResult.NotSupported)
{
result.AddRange(map.ValidateObject(item)); result.AddRange(map.ValidateObject(item));
break;
}
else if (validelem != ValidateResult.Valid)
result.Add(new ValidationResult()
{
Property = prop,
Requirement = r,
Value = item,
});
}
}
else
result.AddRange(map.ValidateObject(item));
}
} }
continue; continue;
@@ -13544,7 +13578,7 @@ namespace DynamORM
namespace Validation namespace Validation
{ {
/// <summary>Required attribute can be used to validate fields in objects using mapper class.</summary> /// <summary>Required attribute can be used to validate fields in objects using mapper class.</summary>
[AttributeUsage(AttributeTargets.Property)] [AttributeUsage(AttributeTargets.Property, AllowMultiple = true)]
public class RequiredAttribute : Attribute public class RequiredAttribute : Attribute
{ {
/// <summary>Gets or sets minimum value or length of field.</summary> /// <summary>Gets or sets minimum value or length of field.</summary>
@@ -13559,6 +13593,9 @@ namespace DynamORM
/// <summary>Gets or sets a value indicating whether property value is required or not.</summary> /// <summary>Gets or sets a value indicating whether property value is required or not.</summary>
public bool Required { get; set; } public bool Required { get; set; }
/// <summary>Gets or sets a value indicating whether this is an element requirement.</summary>
public bool ElementRequirement { get; set; }
/// <summary>Initializes a new instance of the <see cref="RequiredAttribute" /> class.</summary> /// <summary>Initializes a new instance of the <see cref="RequiredAttribute" /> class.</summary>
/// <param name="required">This field will be required.</param> /// <param name="required">This field will be required.</param>
public RequiredAttribute(bool required = true) public RequiredAttribute(bool required = true)
@@ -13605,10 +13642,20 @@ namespace DynamORM
internal ValidateResult ValidateSimpleValue(DynamicPropertyInvoker dpi, object val) internal ValidateResult ValidateSimpleValue(DynamicPropertyInvoker dpi, object val)
{ {
if (val == null && Required) return ValidateSimpleValue(dpi.Type, dpi.IsGnericEnumerable, val);
return ValidateResult.ValueIsMissing; }
if (dpi.Type.IsValueType) internal ValidateResult ValidateSimpleValue(Type type, bool isGnericEnumerable, object val)
{
if (val == null)
{
if (Required)
return ValidateResult.ValueIsMissing;
else
return ValidateResult.Valid;
}
if (type.IsValueType)
{ {
if (val is decimal || val is long || val is int || val is float || val is double || val is short || val is byte || if (val is decimal || val is long || val is int || val is float || val is double || val is short || val is byte ||
val is decimal? || val is long? || val is int? || val is float? || val is double? || val is short? || val is byte?) val is decimal? || val is long? || val is int? || val is float? || val is double? || val is short? || val is byte?)
@@ -13639,9 +13686,19 @@ namespace DynamORM
return ValidateResult.Valid; return ValidateResult.Valid;
} }
} }
else if (dpi.Type.IsArray || dpi.IsGnericEnumerable) else if (type.IsArray || isGnericEnumerable)
{ {
var cnt = (val as IEnumerable<object>).Count(); int? cnt = null;
var list = (val as IEnumerable<object>);
if (list != null)
cnt = list.Count();
else
{
var enumerable = (val as IEnumerable);
if (enumerable != null)
cnt = enumerable.Cast<object>().Count();
}
if (Min.HasValue && Min.Value > cnt) if (Min.HasValue && Min.Value > cnt)
return ValidateResult.TooFewElementsInCollection; return ValidateResult.TooFewElementsInCollection;
@@ -13651,6 +13708,21 @@ namespace DynamORM
return ValidateResult.Valid; return ValidateResult.Valid;
} }
else if (type == typeof(string))
{
var str = (string)val;
if (Min.HasValue && Min.Value > str.Length)
return ValidateResult.ValueTooShort;
if (Max.HasValue && Max.Value < str.Length)
return ValidateResult.ValueTooLong;
if (Pattern != null && !Pattern.IsMatch(str))
return ValidateResult.ValueDontMatchPattern;
return ValidateResult.Valid;
}
return ValidateResult.NotSupported; return ValidateResult.NotSupported;
} }
+16 -8
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,7 +10,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>DynamORM.Tests</RootNamespace> <RootNamespace>DynamORM.Tests</RootNamespace>
<AssemblyName>DynamORM.Tests</AssemblyName> <AssemblyName>DynamORM.Tests</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<TargetFrameworkProfile /> <TargetFrameworkProfile />
<AllowUnsafeBlocks>False</AllowUnsafeBlocks> <AllowUnsafeBlocks>False</AllowUnsafeBlocks>
@@ -20,6 +20,8 @@
<SignAssembly>False</SignAssembly> <SignAssembly>False</SignAssembly>
<DelaySign>False</DelaySign> <DelaySign>False</DelaySign>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent> <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugType>Full</DebugType> <DebugType>Full</DebugType>
@@ -63,14 +65,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="nunit.framework">
<HintPath>C:\Program Files %28x86%29\NUnit 2.6.3\bin\framework\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Data.SQLite">
<HintPath>..\..\..\Libs\SQLite\Any\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" /> <Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
@@ -79,6 +75,7 @@
<ItemGroup> <ItemGroup>
<Compile Include="Helpers\Dynamic\DynamicParserTests.cs" /> <Compile Include="Helpers\Dynamic\DynamicParserTests.cs" />
<Compile Include="Helpers\PoolingTests.cs" /> <Compile Include="Helpers\PoolingTests.cs" />
<Compile Include="Helpers\Validation\ObjectValidationTest.cs" />
<Compile Include="Modify\DynamicModificationTests.cs" /> <Compile Include="Modify\DynamicModificationTests.cs" />
<Compile Include="Modify\DynamicNoSchemaModificationTests.cs" /> <Compile Include="Modify\DynamicNoSchemaModificationTests.cs" />
<Compile Include="Modify\DynamicTypeSchemaModificationTests.cs" /> <Compile Include="Modify\DynamicTypeSchemaModificationTests.cs" />
@@ -113,6 +110,17 @@
<Name>DynamORM</Name> <Name>DynamORM</Name>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup>
<PackageReference Include="MSTest.TestAdapter">
<Version>1.2.1</Version>
</PackageReference>
<PackageReference Include="MSTest.TestFramework">
<Version>1.2.1</Version>
</PackageReference>
<PackageReference Include="System.Data.SQLite">
<Version>1.0.109.1</Version>
</PackageReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
+4 -13
View File
@@ -28,25 +28,16 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using NUnit.Framework; using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Helpers namespace DynamORM.Tests.Helpers
{ {
/// <summary>Class responsible for users operations testing.</summary> /// <summary>Class responsible for users operations testing.</summary>
[TestFixture] [TestClass]
public class AttachToDebugger public class AttachToDebugger
{ {
/// <summary>Attach to debugger.</summary>
[Test]
[Explicit("Test for attaching debugger to NUnit test framework")]
public void Attach()
{
if (!Debugger.IsAttached)
Debugger.Launch();
}
/// <summary>Test anonymous type compatibility.</summary> /// <summary>Test anonymous type compatibility.</summary>
[Test] [TestMethod]
public void TestAnonType() public void TestAnonType()
{ {
var a = new { x = 1, y = 2 }; var a = new { x = 1, y = 2 };
@@ -56,7 +47,7 @@ namespace DynamORM.Tests.Helpers
} }
/// <summary>Test anonymous type value.</summary> /// <summary>Test anonymous type value.</summary>
[Test] [TestMethod]
public void TestAnonTypeValue() public void TestAnonTypeValue()
{ {
var a = new { x = 1, y = "bla bla" }; var a = new { x = 1, y = "bla bla" };
@@ -28,39 +28,39 @@
using System; using System;
using DynamORM.Helpers.Dynamics; using DynamORM.Helpers.Dynamics;
using NUnit.Framework; using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Helpers.Dynamic namespace DynamORM.Tests.Helpers.Dynamic
{ {
/// <summary><see cref="DynamicParser"/> tests.</summary> /// <summary><see cref="DynamicParser"/> tests.</summary>
[TestFixture] [TestClass]
public class DynamicParserTests public class DynamicParserTests
{ {
/// <summary> /// <summary>
/// Tests the get member. /// Tests the get member.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestGetMember() public void TestGetMember()
{ {
Func<dynamic, object> f = x => x.SomePropery; Func<dynamic, object> f = x => x.SomePropery;
var val = DynamicParser.Parse(f).Result as DynamicParser.Node.GetMember; var val = DynamicParser.Parse(f).Result as DynamicParser.Node.GetMember;
Assert.NotNull(val); Assert.IsNotNull(val);
Assert.AreEqual("SomePropery", val.Name); Assert.AreEqual("SomePropery", val.Name);
} }
/// <summary> /// <summary>
/// Tests the set member. /// Tests the set member.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSetMember() public void TestSetMember()
{ {
Func<dynamic, object> f = x => x.SomePropery = "value"; Func<dynamic, object> f = x => x.SomePropery = "value";
var val = DynamicParser.Parse(f).Result as DynamicParser.Node.SetMember; var val = DynamicParser.Parse(f).Result as DynamicParser.Node.SetMember;
Assert.NotNull(val); Assert.IsNotNull(val);
Assert.AreEqual("SomePropery", val.Name); Assert.AreEqual("SomePropery", val.Name);
Assert.AreEqual("value", val.Value); Assert.AreEqual("value", val.Value);
} }
@@ -68,34 +68,34 @@ namespace DynamORM.Tests.Helpers.Dynamic
/// <summary> /// <summary>
/// Tests the index of the get. /// Tests the index of the get.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestGetIndex() public void TestGetIndex()
{ {
Func<dynamic, object> f = x => x.SomePropery[0]; Func<dynamic, object> f = x => x.SomePropery[0];
var val = DynamicParser.Parse(f).Result as DynamicParser.Node.GetIndex; var val = DynamicParser.Parse(f).Result as DynamicParser.Node.GetIndex;
Assert.NotNull(val); Assert.IsNotNull(val);
} }
/// <summary> /// <summary>
/// Tests the index of the set. /// Tests the index of the set.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSetIndex() public void TestSetIndex()
{ {
Func<dynamic, object> f = x => x.SomePropery[0] = "value"; Func<dynamic, object> f = x => x.SomePropery[0] = "value";
var val = DynamicParser.Parse(f).Result as DynamicParser.Node.SetIndex; var val = DynamicParser.Parse(f).Result as DynamicParser.Node.SetIndex;
Assert.NotNull(val); Assert.IsNotNull(val);
Assert.AreEqual("value", val.Value); Assert.AreEqual("value", val.Value);
} }
/// <summary> /// <summary>
/// Tests something. /// Tests something.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSomething() public void TestSomething()
{ {
Func<dynamic, object> f = x => x.SomePropery == "value" || x.OtherProperty == -1; Func<dynamic, object> f = x => x.SomePropery == "value" || x.OtherProperty == -1;
@@ -103,16 +103,16 @@ namespace DynamORM.Tests.Helpers.Dynamic
var p = DynamicParser.Parse(f); var p = DynamicParser.Parse(f);
var val = p.Result as DynamicParser.Node.Binary; var val = p.Result as DynamicParser.Node.Binary;
Assert.NotNull(val); Assert.IsNotNull(val);
var left = val.Host as DynamicParser.Node.Binary; var left = val.Host as DynamicParser.Node.Binary;
var right = val.Right as DynamicParser.Node.Binary; var right = val.Right as DynamicParser.Node.Binary;
Assert.NotNull(left); Assert.IsNotNull(left);
Assert.NotNull(right); Assert.IsNotNull(right);
Assert.IsInstanceOf<DynamicParser.Node.GetMember>(left.Host); Assert.IsInstanceOfType(left.Host, typeof(DynamicParser.Node.GetMember));
Assert.IsInstanceOf<DynamicParser.Node.GetMember>(right.Host); Assert.IsInstanceOfType(right.Host, typeof(DynamicParser.Node.GetMember));
Assert.AreEqual("value", left.Right); Assert.AreEqual("value", left.Right);
Assert.AreEqual(-1, right.Right); Assert.AreEqual(-1, right.Right);
+7 -7
View File
@@ -26,23 +26,23 @@
* THE POSSIBILITY OF SUCH DAMAGE. * THE POSSIBILITY OF SUCH DAMAGE.
*/ */
using NUnit.Framework; using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Helpers namespace DynamORM.Tests.Helpers
{ {
/// <summary>Pooling tests.</summary> /// <summary>Pooling tests.</summary>
[TestFixture] [TestClass]
public class PoolingTests : TestsBase public class PoolingTests : TestsBase
{ {
/// <summary>Setup test parameters.</summary> /// <summary>Setup test parameters.</summary>
[TestFixtureSetUp] [TestInitialize]
public virtual void SetUp() public virtual void SetUp()
{ {
CreateTestDatabase(); CreateTestDatabase();
} }
/// <summary>Tear down test objects.</summary> /// <summary>Tear down test objects.</summary>
[TestFixtureTearDown] [TestCleanup]
public virtual void TearDown() public virtual void TearDown()
{ {
DestroyDynamicDatabase(); DestroyDynamicDatabase();
@@ -50,7 +50,7 @@ namespace DynamORM.Tests.Helpers
} }
/// <summary>Test single mode command disposing.</summary> /// <summary>Test single mode command disposing.</summary>
[Test] [TestMethod]
public void TestSingleModeCommand() public void TestSingleModeCommand()
{ {
CreateDynamicDatabase(); CreateDynamicDatabase();
@@ -62,11 +62,11 @@ namespace DynamORM.Tests.Helpers
Database.Dispose(); Database.Dispose();
Database = null; Database = null;
Assert.Throws<DynamicQueryException>(() => cmd.ExecuteScalar()); Assert.ThrowsException<DynamicQueryException>(() => cmd.ExecuteScalar());
} }
/// <summary>Test single mode transaction disposing.</summary> /// <summary>Test single mode transaction disposing.</summary>
[Test] [TestMethod]
public void TestSingleModeTransaction() public void TestSingleModeTransaction()
{ {
try try
@@ -0,0 +1,80 @@
/*
* DynamORM - Dynamic Object-Relational Mapping library.
* Copyright (c) 2012-2015, Grzegorz Russek (grzegorz.russek@gmail.com)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
using DynamORM.Mapper;
using DynamORM.Validation;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Helpers.Validation
{
[TestClass]
public class ObjectValidationTest
{
public class TestObject
{
[Required(1f, 10f)]
public int TestInt { get; set; }
[Required(7, false, false)]
public string CanBeNull { get; set; }
[Required(2, true)]
[Required(7, 18, ElementRequirement = true)]
public decimal[] ArrayTest { get; set; }
}
[TestMethod]
public void ValidateCorrectObject()
{
var result = DynamicMapperCache.GetMapper<TestObject>().ValidateObject(
new TestObject
{
TestInt = 2,
ArrayTest = new decimal[] { 7, 18 },
});
Assert.IsNotNull(result);
Assert.AreEqual(0, result.Count);
}
[TestMethod]
public void ValidateIncorrectObject()
{
var result = DynamicMapperCache.GetMapper<TestObject>().ValidateObject(
new TestObject
{
TestInt = 0,
CanBeNull = string.Empty,
ArrayTest = new decimal[] { 0, 0 },
});
Assert.IsNotNull(result);
Assert.AreEqual(4, result.Count);
}
}
}
@@ -28,16 +28,16 @@
using System; using System;
using DynamORM.Tests.Helpers; using DynamORM.Tests.Helpers;
using NUnit.Framework; using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Modify namespace DynamORM.Tests.Modify
{ {
/// <summary>Test standard dynamic access ORM.</summary> /// <summary>Test standard dynamic access ORM.</summary>
[TestFixture] [TestClass]
public class DynamicModificationTests : TestsBase public class DynamicModificationTests : TestsBase
{ {
/// <summary>Setup test parameters.</summary> /// <summary>Setup test parameters.</summary>
[TestFixtureSetUp] [TestInitialize]
public virtual void SetUp() public virtual void SetUp()
{ {
CreateTestDatabase(); CreateTestDatabase();
@@ -45,7 +45,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Tear down test objects.</summary> /// <summary>Tear down test objects.</summary>
[TestFixtureTearDown] [TestCleanup]
public virtual void TearDown() public virtual void TearDown()
{ {
DestroyDynamicDatabase(); DestroyDynamicDatabase();
@@ -62,14 +62,14 @@ namespace DynamORM.Tests.Modify
#region Insert #region Insert
/// <summary>Test row insertion by dynamic arguments.</summary> /// <summary>Test row insertion by dynamic arguments.</summary>
[Test] [TestMethod]
public void TestInsertByArguments() public void TestInsertByArguments()
{ {
Assert.AreEqual(1, GetTestTable().Insert(code: "201", first: null, last: "Gagarin", email: "juri.gagarin@megacorp.com", quote: "bla, bla, bla")); Assert.AreEqual(1, GetTestTable().Insert(code: "201", first: null, last: "Gagarin", email: "juri.gagarin@megacorp.com", quote: "bla, bla, bla"));
// Verify // Verify
var o = GetTestTable().Single(code: "201"); var o = GetTestTable().Single(code: "201");
Assert.Less(200, o.id); Assert.AreNotEqual(200, o.id);
Assert.AreEqual("201", o.code.ToString()); Assert.AreEqual("201", o.code.ToString());
Assert.AreEqual(null, o.first); Assert.AreEqual(null, o.first);
Assert.AreEqual("Gagarin", o.last); Assert.AreEqual("Gagarin", o.last);
@@ -79,14 +79,14 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Test row insertion by dynamic object.</summary> /// <summary>Test row insertion by dynamic object.</summary>
[Test] [TestMethod]
public void TestInsertByDynamicObjects() public void TestInsertByDynamicObjects()
{ {
Assert.AreEqual(1, GetTestTable().Insert(values: new { code = "202", first = DBNull.Value, last = "Gagarin", email = "juri.gagarin@megacorp.com", quote = "bla, bla, bla" })); Assert.AreEqual(1, GetTestTable().Insert(values: new { code = "202", first = DBNull.Value, last = "Gagarin", email = "juri.gagarin@megacorp.com", quote = "bla, bla, bla" }));
// Verify // Verify
var o = GetTestTable().Single(code: "202"); var o = GetTestTable().Single(code: "202");
Assert.Less(200, o.id); Assert.AreNotEqual(200, o.id);
Assert.AreEqual("202", o.code.ToString()); Assert.AreEqual("202", o.code.ToString());
Assert.AreEqual(null, o.first); Assert.AreEqual(null, o.first);
Assert.AreEqual("Gagarin", o.last); Assert.AreEqual("Gagarin", o.last);
@@ -96,7 +96,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Test row insertion by mapped object.</summary> /// <summary>Test row insertion by mapped object.</summary>
[Test] [TestMethod]
public void TestInsertByMappedObject() public void TestInsertByMappedObject()
{ {
var u = GetTestTable(); var u = GetTestTable();
@@ -113,7 +113,7 @@ namespace DynamORM.Tests.Modify
// Verify // Verify
var o = u.Single(code: "203"); var o = u.Single(code: "203");
Assert.Less(200, o.id); Assert.AreNotEqual(200, o.id);
Assert.AreEqual("203", o.code.ToString()); Assert.AreEqual("203", o.code.ToString());
Assert.AreEqual(null, o.first); Assert.AreEqual(null, o.first);
Assert.AreEqual("Gagarin", o.last); Assert.AreEqual("Gagarin", o.last);
@@ -123,7 +123,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Test row insertion by basic object.</summary> /// <summary>Test row insertion by basic object.</summary>
[Test] [TestMethod]
public void TestInsertByBasicObject() public void TestInsertByBasicObject()
{ {
var u = GetTestTable(); var u = GetTestTable();
@@ -140,7 +140,7 @@ namespace DynamORM.Tests.Modify
// Verify // Verify
var o = u.Single(code: "204"); var o = u.Single(code: "204");
Assert.Less(200, o.id); Assert.AreNotEqual(200, o.id);
Assert.AreEqual("204", o.code.ToString()); Assert.AreEqual("204", o.code.ToString());
Assert.AreEqual(null, o.first); Assert.AreEqual(null, o.first);
Assert.AreEqual("Gagarin", o.last); Assert.AreEqual("Gagarin", o.last);
@@ -154,7 +154,7 @@ namespace DynamORM.Tests.Modify
#region Update #region Update
/// <summary>Test row updating by dynamic arguments.</summary> /// <summary>Test row updating by dynamic arguments.</summary>
[Test] [TestMethod]
public void TestUpdateByArguments() public void TestUpdateByArguments()
{ {
Assert.AreEqual(1, GetTestTable().Update(id: 1, code: "201", first: null, last: "Gagarin", email: "juri.gagarin@megacorp.com", quote: "bla, bla, bla")); Assert.AreEqual(1, GetTestTable().Update(id: 1, code: "201", first: null, last: "Gagarin", email: "juri.gagarin@megacorp.com", quote: "bla, bla, bla"));
@@ -171,7 +171,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Test row updating by dynamic objects.</summary> /// <summary>Test row updating by dynamic objects.</summary>
[Test] [TestMethod]
public void TestUpdateByDynamicObject() public void TestUpdateByDynamicObject()
{ {
Assert.AreEqual(1, GetTestTable().Update(update: new { id = 2, code = "202", first = DBNull.Value, last = "Gagarin", email = "juri.gagarin@megacorp.com", quote = "bla, bla, bla" })); Assert.AreEqual(1, GetTestTable().Update(update: new { id = 2, code = "202", first = DBNull.Value, last = "Gagarin", email = "juri.gagarin@megacorp.com", quote = "bla, bla, bla" }));
@@ -188,7 +188,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Test row updating by mapped object.</summary> /// <summary>Test row updating by mapped object.</summary>
[Test] [TestMethod]
public void TestUpdateByMappedObject() public void TestUpdateByMappedObject()
{ {
var u = GetTestTable(); var u = GetTestTable();
@@ -215,7 +215,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Test row updating by basic object.</summary> /// <summary>Test row updating by basic object.</summary>
[Test] [TestMethod]
public void TestUpdateByBasicObject() public void TestUpdateByBasicObject()
{ {
var u = GetTestTable(); var u = GetTestTable();
@@ -242,7 +242,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Test row updating by dynamic objects.</summary> /// <summary>Test row updating by dynamic objects.</summary>
[Test] [TestMethod]
public void TestUpdateByDynamicObjects() public void TestUpdateByDynamicObjects()
{ {
Assert.AreEqual(1, GetTestTable().Update(values: new { code = "205", first = DBNull.Value, last = "Gagarin", email = "juri.gagarin@megacorp.com", quote = "bla, bla, bla" }, where: new { id = 5 })); Assert.AreEqual(1, GetTestTable().Update(values: new { code = "205", first = DBNull.Value, last = "Gagarin", email = "juri.gagarin@megacorp.com", quote = "bla, bla, bla" }, where: new { id = 5 }));
@@ -259,7 +259,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Test row updating by mapped objects.</summary> /// <summary>Test row updating by mapped objects.</summary>
[Test] [TestMethod]
public void TestUpdateByMappedObjects() public void TestUpdateByMappedObjects()
{ {
var u = GetTestTable(); var u = GetTestTable();
@@ -286,7 +286,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Test row updating by basic objects.</summary> /// <summary>Test row updating by basic objects.</summary>
[Test] [TestMethod]
public void TestUpdateByBasicObjects() public void TestUpdateByBasicObjects()
{ {
var u = GetTestTable(); var u = GetTestTable();
@@ -317,7 +317,7 @@ namespace DynamORM.Tests.Modify
#region Delete #region Delete
/// <summary>Test row deleting by dynamic arguments.</summary> /// <summary>Test row deleting by dynamic arguments.</summary>
[Test] [TestMethod]
public void TestDeleteByArguments() public void TestDeleteByArguments()
{ {
Assert.AreEqual(1, GetTestTable().Delete(code: "10")); Assert.AreEqual(1, GetTestTable().Delete(code: "10"));
@@ -327,7 +327,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Test row deleting by dynamic objects (all except ID should be ignored).</summary> /// <summary>Test row deleting by dynamic objects (all except ID should be ignored).</summary>
[Test] [TestMethod]
public void TestDeleteyDynamicObject() public void TestDeleteyDynamicObject()
{ {
Assert.AreEqual(1, GetTestTable().Delete(delete: new { id = 11, code = 11, first = "Juri", last = "Gagarin", email = "juri.gagarin@megacorp.com", quote = "bla, bla, bla" })); Assert.AreEqual(1, GetTestTable().Delete(delete: new { id = 11, code = 11, first = "Juri", last = "Gagarin", email = "juri.gagarin@megacorp.com", quote = "bla, bla, bla" }));
@@ -337,7 +337,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Test row deleting by mapped object.</summary> /// <summary>Test row deleting by mapped object.</summary>
[Test] [TestMethod]
public void TestDeleteByMappedObject() public void TestDeleteByMappedObject()
{ {
var u = GetTestTable(); var u = GetTestTable();
@@ -357,7 +357,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Test row deleting by basic object.</summary> /// <summary>Test row deleting by basic object.</summary>
[Test] [TestMethod]
public void TestDeleteByBasicObject() public void TestDeleteByBasicObject()
{ {
var u = GetTestTable(); var u = GetTestTable();
@@ -377,7 +377,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Test row deleting by dynamic objects (all except ID should be ignored).</summary> /// <summary>Test row deleting by dynamic objects (all except ID should be ignored).</summary>
[Test] [TestMethod]
public void TestDeleteyDynamicObjectWhere() public void TestDeleteyDynamicObjectWhere()
{ {
Assert.AreEqual(1, GetTestTable().Delete(where: new { id = 14, code = "14" })); Assert.AreEqual(1, GetTestTable().Delete(where: new { id = 14, code = "14" }));
@@ -26,17 +26,17 @@
* THE POSSIBILITY OF SUCH DAMAGE. * THE POSSIBILITY OF SUCH DAMAGE.
*/ */
using NUnit.Framework; using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Modify namespace DynamORM.Tests.Modify
{ {
/// <summary>Test standard dynamic access ORM. With out schema information from database.</summary> /// <summary>Test standard dynamic access ORM. With out schema information from database.</summary>
[TestFixture] [TestClass]
public class DynamicNoSchemaModificationTests : DynamicModificationTests public class DynamicNoSchemaModificationTests : DynamicModificationTests
{ {
/// <summary>Setup test parameters.</summary> /// <summary>Setup test parameters.</summary>
[TestFixtureSetUp] [TestInitialize]
public override void SetUp() public virtual void SetUp()
{ {
CreateTestDatabase(); CreateTestDatabase();
CreateDynamicDatabase( CreateDynamicDatabase(
@@ -28,12 +28,12 @@
using System.Collections.Generic; using System.Collections.Generic;
using DynamORM.Tests.Helpers; using DynamORM.Tests.Helpers;
using NUnit.Framework; using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Modify namespace DynamORM.Tests.Modify
{ {
/// <summary>Test standard dynamic access ORM. With out schema information from database.</summary> /// <summary>Test standard dynamic access ORM. With out schema information from database.</summary>
[TestFixture] [TestClass]
public class DynamicTypeSchemaModificationTests : DynamicModificationTests public class DynamicTypeSchemaModificationTests : DynamicModificationTests
{ {
/// <summary>Create table using specified method.</summary> /// <summary>Create table using specified method.</summary>
@@ -46,7 +46,7 @@ namespace DynamORM.Tests.Modify
/// <summary> /// <summary>
/// Tests the bulk insert. /// Tests the bulk insert.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestBulkInsert() public void TestBulkInsert()
{ {
Assert.AreEqual(2, Database.Insert<users>(new List<users> Assert.AreEqual(2, Database.Insert<users>(new List<users>
+12 -12
View File
@@ -29,18 +29,18 @@
using System.Linq; using System.Linq;
using DynamORM.Builders; using DynamORM.Builders;
using DynamORM.Builders.Implementation; using DynamORM.Builders.Implementation;
using NUnit.Framework; using Microsoft.VisualStudio.TestTools.UnitTesting;
using DynamORM.Tests.Helpers; using DynamORM.Tests.Helpers;
using System.Collections.Generic; using System.Collections.Generic;
namespace DynamORM.Tests.Modify namespace DynamORM.Tests.Modify
{ {
/// <summary>New parser tests.</summary> /// <summary>New parser tests.</summary>
[TestFixture] [TestClass]
public class ParserTests : TestsBase public class ParserTests : TestsBase
{ {
/// <summary>Setup test parameters.</summary> /// <summary>Setup test parameters.</summary>
[TestFixtureSetUp] [TestInitialize]
public virtual void SetUp() public virtual void SetUp()
{ {
CreateTestDatabase(); CreateTestDatabase();
@@ -51,7 +51,7 @@ namespace DynamORM.Tests.Modify
} }
/// <summary>Tear down test objects.</summary> /// <summary>Tear down test objects.</summary>
[TestFixtureTearDown] [TestCleanup]
public virtual void TearDown() public virtual void TearDown()
{ {
DestroyDynamicDatabase(); DestroyDynamicDatabase();
@@ -63,7 +63,7 @@ namespace DynamORM.Tests.Modify
/// <summary> /// <summary>
/// Tests the basic insert. /// Tests the basic insert.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestInsertBasic() public void TestInsertBasic()
{ {
IDynamicInsertQueryBuilder cmd = new DynamicInsertQueryBuilder(Database, "Users"); IDynamicInsertQueryBuilder cmd = new DynamicInsertQueryBuilder(Database, "Users");
@@ -77,7 +77,7 @@ namespace DynamORM.Tests.Modify
/// <summary> /// <summary>
/// Tests the insert with sub query. /// Tests the insert with sub query.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestInsertSubQuery() public void TestInsertSubQuery()
{ {
IDynamicInsertQueryBuilder cmd = new DynamicInsertQueryBuilder(Database, "Users"); IDynamicInsertQueryBuilder cmd = new DynamicInsertQueryBuilder(Database, "Users");
@@ -94,7 +94,7 @@ namespace DynamORM.Tests.Modify
/// <summary> /// <summary>
/// Tests the basic insert using object. /// Tests the basic insert using object.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestInsertBasicObject() public void TestInsertBasicObject()
{ {
IDynamicInsertQueryBuilder cmd = new DynamicInsertQueryBuilder(Database, "Users"); IDynamicInsertQueryBuilder cmd = new DynamicInsertQueryBuilder(Database, "Users");
@@ -108,7 +108,7 @@ namespace DynamORM.Tests.Modify
/// <summary> /// <summary>
/// Tests the insert using object with sub query. /// Tests the insert using object with sub query.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestInsertSubQueryObject() public void TestInsertSubQueryObject()
{ {
IDynamicInsertQueryBuilder cmd = new DynamicInsertQueryBuilder(Database, "Users"); IDynamicInsertQueryBuilder cmd = new DynamicInsertQueryBuilder(Database, "Users");
@@ -134,7 +134,7 @@ namespace DynamORM.Tests.Modify
/// <summary> /// <summary>
/// Tests the basic update. /// Tests the basic update.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestUpdateBasic() public void TestUpdateBasic()
{ {
IDynamicUpdateQueryBuilder cmd = new DynamicUpdateQueryBuilder(Database, "Users"); IDynamicUpdateQueryBuilder cmd = new DynamicUpdateQueryBuilder(Database, "Users");
@@ -149,7 +149,7 @@ namespace DynamORM.Tests.Modify
/// <summary> /// <summary>
/// Tests the insert with sub query. /// Tests the insert with sub query.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestUpdateSubQuery() public void TestUpdateSubQuery()
{ {
IDynamicUpdateQueryBuilder cmd = new DynamicUpdateQueryBuilder(Database, "Users"); IDynamicUpdateQueryBuilder cmd = new DynamicUpdateQueryBuilder(Database, "Users");
@@ -167,7 +167,7 @@ namespace DynamORM.Tests.Modify
/// <summary> /// <summary>
/// Tests the basic insert using object. /// Tests the basic insert using object.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestUpdateBasicObject() public void TestUpdateBasicObject()
{ {
IDynamicUpdateQueryBuilder cmd = new DynamicUpdateQueryBuilder(Database, "Users"); IDynamicUpdateQueryBuilder cmd = new DynamicUpdateQueryBuilder(Database, "Users");
@@ -182,7 +182,7 @@ namespace DynamORM.Tests.Modify
/// <summary> /// <summary>
/// Tests the basic insert using object. /// Tests the basic insert using object.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestUpdateSubQueryObject() public void TestUpdateSubQueryObject()
{ {
IDynamicUpdateQueryBuilder cmd = new DynamicUpdateQueryBuilder(Database, "Users"); IDynamicUpdateQueryBuilder cmd = new DynamicUpdateQueryBuilder(Database, "Users");
+2 -2
View File
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // This code was generated by a tool.
// Runtime Version:4.0.30319.269 // Runtime Version:4.0.30319.42000
// //
// Changes to this file may cause incorrect behavior and will be lost if // Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated. // the code is regenerated.
@@ -19,7 +19,7 @@ namespace DynamORM.Tests.Properties {
// class via a tool like ResGen or Visual Studio. // class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen // To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project. // with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources { internal class Resources {
+84 -84
View File
@@ -30,16 +30,16 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using DynamORM.Builders; using DynamORM.Builders;
using NUnit.Framework; using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Select namespace DynamORM.Tests.Select
{ {
/// <summary>Test standard dynamic access ORM.</summary> /// <summary>Test standard dynamic access ORM.</summary>
[TestFixture] [TestClass]
public class DynamicAccessTests : TestsBase public class DynamicAccessTests : TestsBase
{ {
/// <summary>Setup test parameters.</summary> /// <summary>Setup test parameters.</summary>
[TestFixtureSetUp] [TestInitialize]
public virtual void SetUp() public virtual void SetUp()
{ {
CreateTestDatabase(); CreateTestDatabase();
@@ -47,7 +47,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Tear down test objects.</summary> /// <summary>Tear down test objects.</summary>
[TestFixtureTearDown] [TestCleanup]
public virtual void TearDown() public virtual void TearDown()
{ {
DestroyDynamicDatabase(); DestroyDynamicDatabase();
@@ -71,28 +71,28 @@ namespace DynamORM.Tests.Select
#region Select #region Select
/// <summary>Test unknown op.</summary> /// <summary>Test unknown op.</summary>
[Test] [TestMethod]
public void TestUnknownOperation() public void TestUnknownOperation()
{ {
Assert.Throws<InvalidOperationException>(() => GetTestTable().MakeMeASandwitch(with: "cheese")); Assert.ThrowsException<InvalidOperationException>(() => GetTestTable().MakeMeASandwitch(with: "cheese"));
} }
/// <summary>Test dynamic <c>Count</c> method.</summary> /// <summary>Test dynamic <c>Count</c> method.</summary>
[Test] [TestMethod]
public void TestCount() public void TestCount()
{ {
Assert.AreEqual(200, GetTestTable().Count(columns: "id")); Assert.AreEqual(200, GetTestTable().Count(columns: "id"));
} }
/// <summary>Test dynamic <c>Count</c> method.</summary> /// <summary>Test dynamic <c>Count</c> method.</summary>
[Test] [TestMethod]
public void TestCount2() public void TestCount2()
{ {
Assert.AreEqual(200, GetTestBuilder().Select(x => x.Count(x.id)).Scalar()); Assert.AreEqual(200L, GetTestBuilder().Select(x => x.Count(x.id)).Scalar());
} }
/// <summary>Test count with in statement.</summary> /// <summary>Test count with in statement.</summary>
[Test] [TestMethod]
public void TestSelectInEnumerableCount() public void TestSelectInEnumerableCount()
{ {
Assert.AreEqual(4, GetTestTable().Count(last: new DynamicColumn Assert.AreEqual(4, GetTestTable().Count(last: new DynamicColumn
@@ -103,17 +103,17 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test count with in statement.</summary> /// <summary>Test count with in statement.</summary>
[Test] [TestMethod]
public void TestSelectInEnumerableCount2() public void TestSelectInEnumerableCount2()
{ {
Assert.AreEqual(4, GetTestBuilder() Assert.AreEqual(4L, GetTestBuilder()
.Where(x => x.last.In(new object[] { "Hendricks", "Goodwin", "Freeman" }.Take(3))) .Where(x => x.last.In(new object[] { "Hendricks", "Goodwin", "Freeman" }.Take(3)))
.Select(x => x.Count()) .Select(x => x.Count())
.Scalar()); .Scalar());
} }
/// <summary>Test count with in statement.</summary> /// <summary>Test count with in statement.</summary>
[Test] [TestMethod]
public void TestSelectInArrayCount() public void TestSelectInArrayCount()
{ {
Assert.AreEqual(4, GetTestTable().Count(last: new DynamicColumn Assert.AreEqual(4, GetTestTable().Count(last: new DynamicColumn
@@ -124,24 +124,24 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test count with in statement.</summary> /// <summary>Test count with in statement.</summary>
[Test] [TestMethod]
public void TestSelectInArrayCount2() public void TestSelectInArrayCount2()
{ {
Assert.AreEqual(4, GetTestBuilder() Assert.AreEqual(4L, GetTestBuilder()
.Where(x => x.last.In(new object[] { "Hendricks", "Goodwin", "Freeman" })) .Where(x => x.last.In(new object[] { "Hendricks", "Goodwin", "Freeman" }))
.Select(x => x.Count()) .Select(x => x.Count())
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic <c>First</c> method.</summary> /// <summary>Test dynamic <c>First</c> method.</summary>
[Test] [TestMethod]
public void TestFirst() public void TestFirst()
{ {
Assert.AreEqual(1, GetTestTable().First(columns: "id").id); Assert.AreEqual(1, GetTestTable().First(columns: "id").id);
} }
/// <summary>Test dynamic <c>First</c> method.</summary> /// <summary>Test dynamic <c>First</c> method.</summary>
[Test] [TestMethod]
public void TestFirst2() public void TestFirst2()
{ {
Assert.AreEqual(1, GetTestBuilder() Assert.AreEqual(1, GetTestBuilder()
@@ -151,14 +151,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test dynamic <c>Last</c> method.</summary> /// <summary>Test dynamic <c>Last</c> method.</summary>
[Test] [TestMethod]
public void TestLast() public void TestLast()
{ {
Assert.AreEqual(200, GetTestTable().Last(columns: "id").id); Assert.AreEqual(200, GetTestTable().Last(columns: "id").id);
} }
/// <summary>Test dynamic <c>Last</c> method.</summary> /// <summary>Test dynamic <c>Last</c> method.</summary>
[Test] [TestMethod]
public void TestLast2() public void TestLast2()
{ {
Assert.AreEqual(200, GetTestBuilder() Assert.AreEqual(200, GetTestBuilder()
@@ -168,63 +168,63 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test dynamic <c>Count</c> method.</summary> /// <summary>Test dynamic <c>Count</c> method.</summary>
[Test] [TestMethod]
public void TestCountSpecificRecord() public void TestCountSpecificRecord()
{ {
Assert.AreEqual(1, GetTestTable().Count(first: "Ori")); Assert.AreEqual(1, GetTestTable().Count(first: "Ori"));
} }
/// <summary>Test dynamic <c>Count</c> method.</summary> /// <summary>Test dynamic <c>Count</c> method.</summary>
[Test] [TestMethod]
public void TestCountSpecificRecord2() public void TestCountSpecificRecord2()
{ {
Assert.AreEqual(1, GetTestBuilder() Assert.AreEqual(1L, GetTestBuilder()
.Where(x => x.first == "Ori") .Where(x => x.first == "Ori")
.Select(x => x.Count()) .Select(x => x.Count())
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic <c>Min</c> method.</summary> /// <summary>Test dynamic <c>Min</c> method.</summary>
[Test] [TestMethod]
public void TestMin() public void TestMin()
{ {
Assert.AreEqual(1, GetTestTable().Min(columns: "id")); Assert.AreEqual(1, GetTestTable().Min(columns: "id"));
} }
/// <summary>Test dynamic <c>Min</c> method.</summary> /// <summary>Test dynamic <c>Min</c> method.</summary>
[Test] [TestMethod]
public void TestMin2() public void TestMin2()
{ {
Assert.AreEqual(1, GetTestBuilder() Assert.AreEqual(1L, GetTestBuilder()
.Select(x => x.Min(x.id)) .Select(x => x.Min(x.id))
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic <c>Min</c> method.</summary> /// <summary>Test dynamic <c>Min</c> method.</summary>
[Test] [TestMethod]
public void TestMax() public void TestMax()
{ {
Assert.AreEqual(200, GetTestTable().Max(columns: "id")); Assert.AreEqual(200, GetTestTable().Max(columns: "id"));
} }
/// <summary>Test dynamic <c>Min</c> method.</summary> /// <summary>Test dynamic <c>Min</c> method.</summary>
[Test] [TestMethod]
public void TestMax2() public void TestMax2()
{ {
Assert.AreEqual(200, GetTestBuilder() Assert.AreEqual(200L, GetTestBuilder()
.Select(x => x.Max(x.id)) .Select(x => x.Max(x.id))
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic <c>Min</c> method.</summary> /// <summary>Test dynamic <c>Min</c> method.</summary>
[Test] [TestMethod]
public void TesttAvg() public void TesttAvg()
{ {
Assert.AreEqual(100.5, GetTestTable().Avg(columns: "id")); Assert.AreEqual(100.5, GetTestTable().Avg(columns: "id"));
} }
/// <summary>Test dynamic <c>Min</c> method.</summary> /// <summary>Test dynamic <c>Min</c> method.</summary>
[Test] [TestMethod]
public void TesttAvg2() public void TesttAvg2()
{ {
Assert.AreEqual(100.5, GetTestBuilder() Assert.AreEqual(100.5, GetTestBuilder()
@@ -233,37 +233,37 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test dynamic <c>Sum</c> method.</summary> /// <summary>Test dynamic <c>Sum</c> method.</summary>
[Test] [TestMethod]
public void TestSum() public void TestSum()
{ {
Assert.AreEqual(20100, GetTestTable().Sum(columns: "id")); Assert.AreEqual(20100, GetTestTable().Sum(columns: "id"));
} }
/// <summary>Test dynamic <c>Sum</c> method.</summary> /// <summary>Test dynamic <c>Sum</c> method.</summary>
[Test] [TestMethod]
public void TestSum2() public void TestSum2()
{ {
Assert.AreEqual(20100, GetTestBuilder() Assert.AreEqual(20100L, GetTestBuilder()
.Select(x => x.Sum(x.id)) .Select(x => x.Sum(x.id))
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic <c>Scalar</c> method for invalid operation exception.</summary> /// <summary>Test dynamic <c>Scalar</c> method for invalid operation exception.</summary>
[Test] [TestMethod]
public void TestScalarException() public void TestScalarException()
{ {
Assert.Throws<InvalidOperationException>(() => GetTestTable().Scalar(id: 19)); Assert.ThrowsException<InvalidOperationException>(() => GetTestTable().Scalar(id: 19));
} }
/// <summary>Test dynamic <c>Scalar</c> method.</summary> /// <summary>Test dynamic <c>Scalar</c> method.</summary>
[Test] [TestMethod]
public void TestScalar() public void TestScalar()
{ {
Assert.AreEqual("Ori", GetTestTable().Scalar(columns: "first", id: 19)); Assert.AreEqual("Ori", GetTestTable().Scalar(columns: "first", id: 19));
} }
/// <summary>Test dynamic <c>Scalar</c> method.</summary> /// <summary>Test dynamic <c>Scalar</c> method.</summary>
[Test] [TestMethod]
public void TestScalar2() public void TestScalar2()
{ {
Assert.AreEqual("Ori", GetTestBuilder() Assert.AreEqual("Ori", GetTestBuilder()
@@ -273,7 +273,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test dynamic <c>Scalar</c> method with SQLite specific aggregate.</summary> /// <summary>Test dynamic <c>Scalar</c> method with SQLite specific aggregate.</summary>
[Test] [TestMethod]
public void TestScalarGroupConcat() public void TestScalarGroupConcat()
{ {
// This test should produce something like this: // This test should produce something like this:
@@ -283,7 +283,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test dynamic <c>Scalar</c> method with SQLite specific aggregate.</summary> /// <summary>Test dynamic <c>Scalar</c> method with SQLite specific aggregate.</summary>
[Test] [TestMethod]
public void TestScalarGroupConcat2() public void TestScalarGroupConcat2()
{ {
// This test should produce something like this: // This test should produce something like this:
@@ -296,7 +296,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test dynamic <c>Scalar</c> method with SQLite specific aggregate not using aggregate field.</summary> /// <summary>Test dynamic <c>Scalar</c> method with SQLite specific aggregate not using aggregate field.</summary>
[Test] [TestMethod]
public void TestScalarGroupConcatNoAggregateField() public void TestScalarGroupConcatNoAggregateField()
{ {
// This test should produce something like this: // This test should produce something like this:
@@ -306,7 +306,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test dynamic <c>Scalar</c> method with SQLite specific aggregate not using aggregate field.</summary> /// <summary>Test dynamic <c>Scalar</c> method with SQLite specific aggregate not using aggregate field.</summary>
[Test] [TestMethod]
public void TestScalarGroupConcatNoAggregateField2() public void TestScalarGroupConcatNoAggregateField2()
{ {
// This test should produce something like this: // This test should produce something like this:
@@ -319,7 +319,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test something fancy... like: <code>select "first", count("first") occurs from "users" group by "first" order by 2 desc;</code>.</summary> /// <summary>Test something fancy... like: <code>select "first", count("first") occurs from "users" group by "first" order by 2 desc;</code>.</summary>
[Test] [TestMethod]
public void TestFancyAggregateQuery() public void TestFancyAggregateQuery()
{ {
var v = (GetTestTable().Query(columns: "first,first:occurs:count", group: "first", order: ":desc:2") as IEnumerable<dynamic>).ToList(); var v = (GetTestTable().Query(columns: "first,first:occurs:count", group: "first", order: ":desc:2") as IEnumerable<dynamic>).ToList();
@@ -334,7 +334,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test something fancy... like: <code>select "first", count("first") occurs from "users" group by "first" order by 2 desc;</code>.</summary> /// <summary>Test something fancy... like: <code>select "first", count("first") occurs from "users" group by "first" order by 2 desc;</code>.</summary>
[Test] [TestMethod]
public void TestFancyAggregateQuery2() public void TestFancyAggregateQuery2()
{ {
var v = GetTestBuilder() var v = GetTestBuilder()
@@ -354,14 +354,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("login")) len from "users";</code>.</summary> /// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("login")) len from "users";</code>.</summary>
[Test] [TestMethod]
public void TestAggregateInAggregate() public void TestAggregateInAggregate()
{ {
Assert.AreEqual(12.77, GetTestTable().Scalar(columns: @"length(""login""):len:avg")); Assert.AreEqual(12.77, GetTestTable().Scalar(columns: @"length(""login""):len:avg"));
} }
/// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("login")) len from "users";</code>.</summary> /// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("login")) len from "users";</code>.</summary>
[Test] [TestMethod]
public void TestAggregateInAggregate2() public void TestAggregateInAggregate2()
{ {
Assert.AreEqual(12.77, GetTestBuilder() Assert.AreEqual(12.77, GetTestBuilder()
@@ -370,14 +370,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("email")) len from "users";</code>.</summary> /// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("email")) len from "users";</code>.</summary>
[Test] [TestMethod]
public void TestAggregateInAggregateMark2() public void TestAggregateInAggregateMark2()
{ {
Assert.AreEqual(27.7, GetTestTable().Avg(columns: @"length(""email""):len")); Assert.AreEqual(27.7, GetTestTable().Avg(columns: @"length(""email""):len"));
} }
/// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("email")) len from "users";</code>.</summary> /// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("email")) len from "users";</code>.</summary>
[Test] [TestMethod]
public void TestAggregateInAggregateMark3() public void TestAggregateInAggregateMark3()
{ {
Assert.AreEqual(27.7, GetTestBuilder() Assert.AreEqual(27.7, GetTestBuilder()
@@ -409,7 +409,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test dynamic <c>Single</c> multi.</summary> /// <summary>Test dynamic <c>Single</c> multi.</summary>
[Test] [TestMethod]
public void TestSingleObject() public void TestSingleObject()
{ {
var exp = new { id = 19, first = "Ori", last = "Ellis" }; var exp = new { id = 19, first = "Ori", last = "Ellis" };
@@ -421,7 +421,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test dynamic <c>Single</c> multi.</summary> /// <summary>Test dynamic <c>Single</c> multi.</summary>
[Test] [TestMethod]
public void TestSingleObject2() public void TestSingleObject2()
{ {
var exp = new { id = 19, first = "Ori", last = "Ellis" }; var exp = new { id = 19, first = "Ori", last = "Ellis" };
@@ -437,10 +437,10 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test dynamic duplicate column name occurrence.</summary> /// <summary>Test dynamic duplicate column name occurrence.</summary>
[Test] [TestMethod]
public void TestDuplicateColumnNameException() public void TestDuplicateColumnNameException()
{ {
Assert.Throws<ArgumentException>(() => GetTestBuilder() Assert.ThrowsException<ArgumentException>(() => GetTestBuilder()
.Where(x => x.id == 19) .Where(x => x.id == 19)
.Select(x => new .Select(x => new
{ {
@@ -458,14 +458,14 @@ namespace DynamORM.Tests.Select
#region Where #region Where
/// <summary>Test dynamic where expression equal.</summary> /// <summary>Test dynamic where expression equal.</summary>
[Test] [TestMethod]
public void TestWhereEq() public void TestWhereEq()
{ {
Assert.AreEqual("hoyt.tran", GetTestTable().Single(where: new DynamicColumn("id").Eq(100)).login); Assert.AreEqual("hoyt.tran", GetTestTable().Single(where: new DynamicColumn("id").Eq(100)).login);
} }
/// <summary>Test dynamic where expression equal.</summary> /// <summary>Test dynamic where expression equal.</summary>
[Test] [TestMethod]
public void TestWhereEq2() public void TestWhereEq2()
{ {
Assert.AreEqual("hoyt.tran", GetTestBuilder() Assert.AreEqual("hoyt.tran", GetTestBuilder()
@@ -473,31 +473,31 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test dynamic where expression not equal.</summary> /// <summary>Test dynamic where expression not equal.</summary>
[Test] [TestMethod]
public void TestWhereNot() public void TestWhereNot()
{ {
Assert.AreEqual(199, GetTestTable().Count(where: new DynamicColumn("id").Not(100))); Assert.AreEqual(199, GetTestTable().Count(where: new DynamicColumn("id").Not(100)));
} }
/// <summary>Test dynamic where expression not equal.</summary> /// <summary>Test dynamic where expression not equal.</summary>
[Test] [TestMethod]
public void TestWhereNot2() public void TestWhereNot2()
{ {
Assert.AreEqual(199, GetTestBuilder() Assert.AreEqual(199L, GetTestBuilder()
.Where(x => x.id != 100) .Where(x => x.id != 100)
.Select(x => x.Count()) .Select(x => x.Count())
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic where expression like.</summary> /// <summary>Test dynamic where expression like.</summary>
[Test] [TestMethod]
public void TestWhereLike() public void TestWhereLike()
{ {
Assert.AreEqual(100, GetTestTable().Single(where: new DynamicColumn("login").Like("Hoyt.%")).id); Assert.AreEqual(100, GetTestTable().Single(where: new DynamicColumn("login").Like("Hoyt.%")).id);
} }
/// <summary>Test dynamic where expression like.</summary> /// <summary>Test dynamic where expression like.</summary>
[Test] [TestMethod]
public void TestWhereLike2() public void TestWhereLike2()
{ {
Assert.AreEqual(100, GetTestBuilder() Assert.AreEqual(100, GetTestBuilder()
@@ -505,146 +505,146 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test dynamic where expression not like.</summary> /// <summary>Test dynamic where expression not like.</summary>
[Test] [TestMethod]
public void TestWhereNotLike() public void TestWhereNotLike()
{ {
Assert.AreEqual(199, GetTestTable().Count(where: new DynamicColumn("login").NotLike("Hoyt.%"))); Assert.AreEqual(199, GetTestTable().Count(where: new DynamicColumn("login").NotLike("Hoyt.%")));
} }
/// <summary>Test dynamic where expression not like.</summary> /// <summary>Test dynamic where expression not like.</summary>
[Test] [TestMethod]
public void TestWhereNotLike2() public void TestWhereNotLike2()
{ {
Assert.AreEqual(199, GetTestBuilder() Assert.AreEqual(199L, GetTestBuilder()
.Where(x => x.login.NotLike("Hoyt.%")) .Where(x => x.login.NotLike("Hoyt.%"))
.Select(x => x.Count()) .Select(x => x.Count())
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic where expression not like.</summary> /// <summary>Test dynamic where expression not like.</summary>
[Test] [TestMethod]
public void TestWhereNotLike3() public void TestWhereNotLike3()
{ {
Assert.AreEqual(199, GetTestBuilder() Assert.AreEqual(199L, GetTestBuilder()
.Where(x => !x.login.Like("Hoyt.%")) .Where(x => !x.login.Like("Hoyt.%"))
.Select(x => x.Count()) .Select(x => x.Count())
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic where expression greater.</summary> /// <summary>Test dynamic where expression greater.</summary>
[Test] [TestMethod]
public void TestWhereGt() public void TestWhereGt()
{ {
Assert.AreEqual(100, GetTestTable().Count(where: new DynamicColumn("id").Greater(100))); Assert.AreEqual(100, GetTestTable().Count(where: new DynamicColumn("id").Greater(100)));
} }
/// <summary>Test dynamic where expression greater.</summary> /// <summary>Test dynamic where expression greater.</summary>
[Test] [TestMethod]
public void TestWhereGt2() public void TestWhereGt2()
{ {
Assert.AreEqual(100, GetTestBuilder() Assert.AreEqual(100L, GetTestBuilder()
.Where(x => x.id > 100) .Where(x => x.id > 100)
.Select(x => x.Count()) .Select(x => x.Count())
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic where expression greater or equal.</summary> /// <summary>Test dynamic where expression greater or equal.</summary>
[Test] [TestMethod]
public void TestWhereGte() public void TestWhereGte()
{ {
Assert.AreEqual(101, GetTestTable().Count(where: new DynamicColumn("id").GreaterOrEqual(100))); Assert.AreEqual(101, GetTestTable().Count(where: new DynamicColumn("id").GreaterOrEqual(100)));
} }
/// <summary>Test dynamic where expression greater or equal.</summary> /// <summary>Test dynamic where expression greater or equal.</summary>
[Test] [TestMethod]
public void TestWhereGte2() public void TestWhereGte2()
{ {
Assert.AreEqual(101, GetTestBuilder() Assert.AreEqual(101L, GetTestBuilder()
.Where(x => x.id >= 100) .Where(x => x.id >= 100)
.Select(x => x.Count()) .Select(x => x.Count())
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic where expression less.</summary> /// <summary>Test dynamic where expression less.</summary>
[Test] [TestMethod]
public void TestWhereLt() public void TestWhereLt()
{ {
Assert.AreEqual(99, GetTestTable().Count(where: new DynamicColumn("id").Less(100))); Assert.AreEqual(99, GetTestTable().Count(where: new DynamicColumn("id").Less(100)));
} }
/// <summary>Test dynamic where expression less.</summary> /// <summary>Test dynamic where expression less.</summary>
[Test] [TestMethod]
public void TestWhereLt2() public void TestWhereLt2()
{ {
Assert.AreEqual(99, GetTestBuilder() Assert.AreEqual(99L, GetTestBuilder()
.Where(x => x.id < 100) .Where(x => x.id < 100)
.Select(x => x.Count()) .Select(x => x.Count())
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic where expression less or equal.</summary> /// <summary>Test dynamic where expression less or equal.</summary>
[Test] [TestMethod]
public void TestWhereLte() public void TestWhereLte()
{ {
Assert.AreEqual(100, GetTestTable().Count(where: new DynamicColumn("id").LessOrEqual(100))); Assert.AreEqual(100, GetTestTable().Count(where: new DynamicColumn("id").LessOrEqual(100)));
} }
/// <summary>Test dynamic where expression less or equal.</summary> /// <summary>Test dynamic where expression less or equal.</summary>
[Test] [TestMethod]
public void TestWhereLte2() public void TestWhereLte2()
{ {
Assert.AreEqual(100, GetTestBuilder() Assert.AreEqual(100L, GetTestBuilder()
.Where(x => x.id <= 100) .Where(x => x.id <= 100)
.Select(x => x.Count()) .Select(x => x.Count())
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic where expression between.</summary> /// <summary>Test dynamic where expression between.</summary>
[Test] [TestMethod]
public void TestWhereBetween() public void TestWhereBetween()
{ {
Assert.AreEqual(26, GetTestTable().Count(where: new DynamicColumn("id").Between(75, 100))); Assert.AreEqual(26, GetTestTable().Count(where: new DynamicColumn("id").Between(75, 100)));
} }
/// <summary>Test dynamic where expression between.</summary> /// <summary>Test dynamic where expression between.</summary>
[Test] [TestMethod]
public void TestWhereBetween2() public void TestWhereBetween2()
{ {
Assert.AreEqual(26, GetTestBuilder() Assert.AreEqual(26L, GetTestBuilder()
.Where(x => x.id.Between(75, 100)) .Where(x => x.id.Between(75, 100))
.Select(x => x.Count()) .Select(x => x.Count())
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic where expression in parameters.</summary> /// <summary>Test dynamic where expression in parameters.</summary>
[Test] [TestMethod]
public void TestWhereIn1() public void TestWhereIn1()
{ {
Assert.AreEqual(3, GetTestTable().Count(where: new DynamicColumn("id").In(75, 99, 100))); Assert.AreEqual(3, GetTestTable().Count(where: new DynamicColumn("id").In(75, 99, 100)));
} }
/// <summary>Test dynamic where expression in array.</summary> /// <summary>Test dynamic where expression in array.</summary>
[Test] [TestMethod]
public void TestWhereIn2() public void TestWhereIn2()
{ {
Assert.AreEqual(3, GetTestTable().Count(where: new DynamicColumn("id").In(new[] { 75, 99, 100 }))); Assert.AreEqual(3, GetTestTable().Count(where: new DynamicColumn("id").In(new[] { 75, 99, 100 })));
} }
/// <summary>Test dynamic where expression in parameters.</summary> /// <summary>Test dynamic where expression in parameters.</summary>
[Test] [TestMethod]
public void TestWhereIn3() public void TestWhereIn3()
{ {
Assert.AreEqual(3, GetTestBuilder() Assert.AreEqual(3L, GetTestBuilder()
.Where(x => x.id.In(75, 99, 100)) .Where(x => x.id.In(75, 99, 100))
.Select(x => x.Count()) .Select(x => x.Count())
.Scalar()); .Scalar());
} }
/// <summary>Test dynamic where expression in parameters.</summary> /// <summary>Test dynamic where expression in parameters.</summary>
[Test] [TestMethod]
public void TestWhereIn4() public void TestWhereIn4()
{ {
Assert.AreEqual(3, GetTestBuilder() Assert.AreEqual(3L, GetTestBuilder()
.Where(x => x.id.In(new[] { 75, 99, 100 })) .Where(x => x.id.In(new[] { 75, 99, 100 }))
.Select(x => x.Count()) .Select(x => x.Count())
.Scalar()); .Scalar());
@@ -26,16 +26,16 @@
* THE POSSIBILITY OF SUCH DAMAGE. * THE POSSIBILITY OF SUCH DAMAGE.
*/ */
using NUnit.Framework; using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Select namespace DynamORM.Tests.Select
{ {
/// <summary>Test standard dynamic access ORM. With out schema information from database.</summary> /// <summary>Test standard dynamic access ORM. With out schema information from database.</summary>
[TestFixture] [TestClass]
public class DynamicNoSchemaAccessTests : DynamicAccessTests public class DynamicNoSchemaAccessTests : DynamicAccessTests
{ {
/// <summary>Setup test parameters.</summary> /// <summary>Setup test parameters.</summary>
[TestFixtureSetUp] [TestInitialize]
public override void SetUp() public override void SetUp()
{ {
CreateTestDatabase(); CreateTestDatabase();
@@ -27,12 +27,12 @@
*/ */
using DynamORM.Tests.Helpers; using DynamORM.Tests.Helpers;
using NUnit.Framework; using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Select namespace DynamORM.Tests.Select
{ {
/// <summary>Test standard dynamic access ORM. With out schema information from database.</summary> /// <summary>Test standard dynamic access ORM. With out schema information from database.</summary>
[TestFixture] [TestClass]
public class DynamicTypeSchemaAccessTests : DynamicNoSchemaAccessTests public class DynamicTypeSchemaAccessTests : DynamicNoSchemaAccessTests
{ {
/// <summary>Create table using specified method.</summary> /// <summary>Create table using specified method.</summary>
+22 -22
View File
@@ -29,16 +29,16 @@
using System.Linq; using System.Linq;
using DynamORM.Builders; using DynamORM.Builders;
using DynamORM.Builders.Implementation; using DynamORM.Builders.Implementation;
using NUnit.Framework; using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Select namespace DynamORM.Tests.Select
{ {
/// <summary>Tests of legacy parser methods.</summary> /// <summary>Tests of legacy parser methods.</summary>
[TestFixture] [TestClass]
public class LegacyParserTests : TestsBase public class LegacyParserTests : TestsBase
{ {
/// <summary>Setup test parameters.</summary> /// <summary>Setup test parameters.</summary>
[TestFixtureSetUp] [TestInitialize]
public virtual void SetUp() public virtual void SetUp()
{ {
CreateTestDatabase(); CreateTestDatabase();
@@ -49,7 +49,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Tear down test objects.</summary> /// <summary>Tear down test objects.</summary>
[TestFixtureTearDown] [TestCleanup]
public virtual void TearDown() public virtual void TearDown()
{ {
DestroyDynamicDatabase(); DestroyDynamicDatabase();
@@ -59,7 +59,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression equal. /// Tests the where expression equal.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereEq() public void TestWhereEq()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -73,7 +73,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression equal with brackets. /// Tests the where expression equal with brackets.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereBracketsEq() public void TestWhereBracketsEq()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -88,7 +88,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression equal with brackets and or condition. /// Tests the where expression equal with brackets and or condition.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereBracketsOrEq() public void TestWhereBracketsOrEq()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -103,7 +103,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression equal with brackets. /// Tests the where expression equal with brackets.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereBracketsOrEq2() public void TestWhereBracketsOrEq2()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -120,7 +120,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression equal with brackets. /// Tests the where expression equal with brackets.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereBracketsOrEqForgotToEnd() public void TestWhereBracketsOrEqForgotToEnd()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -139,7 +139,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression not equal. /// Tests the where expression not equal.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereNotEq() public void TestWhereNotEq()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -153,7 +153,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression greater. /// Tests the where expression greater.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereGreater() public void TestWhereGreater()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -167,7 +167,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression greater or equal. /// Tests the where expression greater or equal.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereGreaterOrEqual() public void TestWhereGreaterOrEqual()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -181,7 +181,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression less. /// Tests the where expression less.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereLess() public void TestWhereLess()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -195,7 +195,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression less or equal. /// Tests the where expression less or equal.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereLessOrEqual() public void TestWhereLessOrEqual()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -209,7 +209,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression like. /// Tests the where expression like.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereLike() public void TestWhereLike()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -223,7 +223,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression not like. /// Tests the where expression not like.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereNotLike() public void TestWhereNotLike()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -237,7 +237,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression between. /// Tests the where expression between.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereBetween() public void TestWhereBetween()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -251,7 +251,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression in. /// Tests the where expression in.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereIn() public void TestWhereIn()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -265,7 +265,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the where expression using anonymous types. /// Tests the where expression using anonymous types.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereAnon() public void TestWhereAnon()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -279,7 +279,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the order by column. /// Tests the order by column.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestOrderByCol() public void TestOrderByCol()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -293,7 +293,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the order by column number. /// Tests the order by column number.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestOrderByNum() public void TestOrderByNum()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -307,7 +307,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests the group by column. /// Tests the group by column.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestGroupByCol() public void TestGroupByCol()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
+64 -64
View File
@@ -29,18 +29,18 @@
using System.Linq; using System.Linq;
using DynamORM.Builders; using DynamORM.Builders;
using DynamORM.Builders.Implementation; using DynamORM.Builders.Implementation;
using NUnit.Framework; using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Select namespace DynamORM.Tests.Select
{ {
/// <summary> /// <summary>
/// New parser tests. /// New parser tests.
/// </summary> /// </summary>
[TestFixture] [TestClass]
public class ParserTests : TestsBase public class ParserTests : TestsBase
{ {
/// <summary>Setup test parameters.</summary> /// <summary>Setup test parameters.</summary>
[TestFixtureSetUp] [TestInitialize]
public virtual void SetUp() public virtual void SetUp()
{ {
CreateTestDatabase(); CreateTestDatabase();
@@ -51,7 +51,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Tear down test objects.</summary> /// <summary>Tear down test objects.</summary>
[TestFixtureTearDown] [TestCleanup]
public virtual void TearDown() public virtual void TearDown()
{ {
try try
@@ -65,7 +65,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method. /// Tests from method.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestFromGet() public void TestFromGet()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -77,7 +77,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method with multi tables. /// Tests from method with multi tables.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestFromGetMultiKulti() public void TestFromGetMultiKulti()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -89,7 +89,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method with as expression in text. /// Tests from method with as expression in text.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestFromGetAs1() public void TestFromGetAs1()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -101,7 +101,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method with as expression using lambda. /// Tests from method with as expression using lambda.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestFromGetAs2() public void TestFromGetAs2()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -113,7 +113,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method using text. /// Tests from method using text.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestFromText() public void TestFromText()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -125,7 +125,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method using text with decorators. /// Tests from method using text with decorators.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestFromDecoratedText() public void TestFromDecoratedText()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -137,7 +137,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method using text with as. /// Tests from method using text with as.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestFromTextAs1() public void TestFromTextAs1()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -149,7 +149,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method using invoke with as. /// Tests from method using invoke with as.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestFromTextAs2() public void TestFromTextAs2()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -162,7 +162,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method using invoke with as. /// Tests from method using invoke with as.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestFromTextAs3() public void TestFromTextAs3()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -175,7 +175,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method using invoke with sub query. /// Tests from method using invoke with sub query.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestFromSubQuery1() public void TestFromSubQuery1()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -188,7 +188,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method using invoke with sub query. /// Tests from method using invoke with sub query.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestFromSubQuery2() public void TestFromSubQuery2()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -201,7 +201,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method using invoke with sub query. /// Tests from method using invoke with sub query.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestFromSubQuery3() public void TestFromSubQuery3()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -214,7 +214,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests where method with alias. /// Tests where method with alias.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereAlias() public void TestWhereAlias()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -228,7 +228,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests where method with alias. /// Tests where method with alias.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestHavingAlias() public void TestHavingAlias()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -242,7 +242,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests complex where method with alias. /// Tests complex where method with alias.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereAliasComplex() public void TestWhereAliasComplex()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -258,7 +258,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests where method with alias using in. /// Tests where method with alias using in.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereAliasIn() public void TestWhereAliasIn()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -278,7 +278,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests where method with alias using between. /// Tests where method with alias using between.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereAliasBetween1() public void TestWhereAliasBetween1()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -298,7 +298,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests where method with alias using between. /// Tests where method with alias using between.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereAliasBetween2() public void TestWhereAliasBetween2()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -318,7 +318,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests where method without alias. /// Tests where method without alias.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereNoAlias() public void TestWhereNoAlias()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -332,7 +332,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests where method with full column name. /// Tests where method with full column name.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestWhereNoAliasTableName() public void TestWhereNoAliasTableName()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -346,7 +346,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests simple join method. /// Tests simple join method.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestJoinClassic() public void TestJoinClassic()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -360,7 +360,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests inner join method. /// Tests inner join method.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestInnerJoin() public void TestInnerJoin()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -374,7 +374,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests inner join method with aliases mix. /// Tests inner join method with aliases mix.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestInnerJoin2() public void TestInnerJoin2()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -389,7 +389,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method using invoke with sub query. /// Tests from method using invoke with sub query.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestInnerJoin3() public void TestInnerJoin3()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -404,7 +404,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests from method using invoke with sub query. /// Tests from method using invoke with sub query.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestInnerJoin4() public void TestInnerJoin4()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -419,7 +419,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests left outer join method. /// Tests left outer join method.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestLeftOuterJoin() public void TestLeftOuterJoin()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -433,7 +433,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests left join method. /// Tests left join method.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestLeftJoin() public void TestLeftJoin()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -447,7 +447,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests right outer join method. /// Tests right outer join method.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestRightOuterJoin() public void TestRightOuterJoin()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -461,7 +461,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests right join method. /// Tests right join method.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestRightJoin() public void TestRightJoin()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -475,7 +475,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests complex join with parameters. /// Tests complex join with parameters.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestJoinClassicWithParamAndWhere() public void TestJoinClassicWithParamAndWhere()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -491,7 +491,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select all. /// Tests select all.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectAll1() public void TestSelectAll1()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -505,7 +505,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select all. /// Tests select all.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectAll2() public void TestSelectAll2()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -519,7 +519,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select field. /// Tests select field.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectField1() public void TestSelectField1()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -533,7 +533,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select field. /// Tests select field.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectField2() public void TestSelectField2()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -547,7 +547,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select field with alias. /// Tests select field with alias.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectFieldAlias1() public void TestSelectFieldAlias1()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -561,7 +561,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select field with alias. /// Tests select field with alias.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectFieldAlias2() public void TestSelectFieldAlias2()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -575,7 +575,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select field with alias. /// Tests select field with alias.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectFieldAlias3() public void TestSelectFieldAlias3()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -589,7 +589,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select field with alias. /// Tests select field with alias.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectFieldAlias4() public void TestSelectFieldAlias4()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -603,7 +603,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select aggregate field with alias (Sum). /// Tests select aggregate field with alias (Sum).
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectAggregateField1() public void TestSelectAggregateField1()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -617,7 +617,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select aggregate field with alias (Coalesce). /// Tests select aggregate field with alias (Coalesce).
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectAggregateField2() public void TestSelectAggregateField2()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -632,7 +632,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select aggregate field with alias (Sum). /// Tests select aggregate field with alias (Sum).
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectAggregateField3() public void TestSelectAggregateField3()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -646,7 +646,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select aggregate field with alias (Sum). /// Tests select aggregate field with alias (Sum).
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectAggregateField4() public void TestSelectAggregateField4()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -660,7 +660,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select aggregate field with alias (Sum). /// Tests select aggregate field with alias (Sum).
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectAggregateField5() public void TestSelectAggregateField5()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -674,7 +674,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select from anonymous type. /// Tests select from anonymous type.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectAnon() public void TestSelectAnon()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -692,7 +692,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select escaped case. /// Tests select escaped case.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectCaseEscaped1() public void TestSelectCaseEscaped1()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -707,7 +707,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select escaped case. /// Tests select escaped case.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectCaseEscaped2() public void TestSelectCaseEscaped2()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -722,7 +722,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select escaped case. /// Tests select escaped case.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestCoalesceEscaped() public void TestCoalesceEscaped()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -737,7 +737,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select escaped case. /// Tests select escaped case.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestCoalesce() public void TestCoalesce()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -752,7 +752,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select escaped case. /// Tests select escaped case.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestCoalesceCalculatedArgs() public void TestCoalesceCalculatedArgs()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -771,7 +771,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select escaped case. /// Tests select escaped case.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestCoalesceInWhere() public void TestCoalesceInWhere()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -787,7 +787,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests select escaped case with sub query. /// Tests select escaped case with sub query.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSelectCaseEscapedAndSub() public void TestSelectCaseEscapedAndSub()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -805,7 +805,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests group by. /// Tests group by.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestGroupBy() public void TestGroupBy()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -819,7 +819,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests order by. /// Tests order by.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestOrderBy() public void TestOrderBy()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -833,7 +833,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests order by using string with number. /// Tests order by using string with number.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestOrderByNumberedColumnStr() public void TestOrderByNumberedColumnStr()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -847,7 +847,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests order by using member with number. /// Tests order by using member with number.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestOrderByNumberedColFn() public void TestOrderByNumberedColFn()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -861,7 +861,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests order by using member with field. /// Tests order by using member with field.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestOrderByAlt() public void TestOrderByAlt()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -875,7 +875,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests sub query select. /// Tests sub query select.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSubQuerySelect() public void TestSubQuerySelect()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -892,7 +892,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests sub query where. /// Tests sub query where.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSubQueryWhere() public void TestSubQueryWhere()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -909,7 +909,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests sub query in. /// Tests sub query in.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSubQueryWhereIn() public void TestSubQueryWhereIn()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
@@ -926,7 +926,7 @@ namespace DynamORM.Tests.Select
/// <summary> /// <summary>
/// Tests sub query join. /// Tests sub query join.
/// </summary> /// </summary>
[Test] [TestMethod]
public void TestSubQueryJoin() public void TestSubQueryJoin()
{ {
IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database); IDynamicSelectQueryBuilder cmd = new DynamicSelectQueryBuilder(Database);
+100 -103
View File
@@ -31,28 +31,25 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using DynamORM.Builders; using DynamORM.Builders;
using DynamORM.Tests.Helpers; using DynamORM.Tests.Helpers;
using NUnit.Framework; using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DynamORM.Tests.Select namespace DynamORM.Tests.Select
{ {
/// <summary>Test typed ORM.</summary> /// <summary>Test typed ORM.</summary>
/// <typeparam name="T">Type to test.</typeparam> /// <typeparam name="T">Type to test.</typeparam>
[TestFixture(typeof(users))] [TestClass]
public class TypedAccessTests<T> : TestsBase where T : class public class TypedAccessTests<T> : TestsBase where T : class
{ {
/// <summary>Setup test parameters.</summary> /// <summary>Setup test parameters.</summary>
[TestFixtureSetUp] [TestInitialize]
public virtual void SetUp() public virtual void SetUp()
{ {
CreateTestDatabase(); CreateTestDatabase();
CreateDynamicDatabase(); CreateDynamicDatabase();
// Cache table (profiler freaks out)
GetTestTable();
} }
/// <summary>Tear down test objects.</summary> /// <summary>Tear down test objects.</summary>
[TestFixtureTearDown] [TestCleanup]
public virtual void TearDown() public virtual void TearDown()
{ {
DestroyDynamicDatabase(); DestroyDynamicDatabase();
@@ -76,7 +73,7 @@ namespace DynamORM.Tests.Select
#region Select typed #region Select typed
/// <summary>Test load all rows into mapped list alternate way.</summary> /// <summary>Test load all rows into mapped list alternate way.</summary>
[Test] [TestMethod]
public virtual void TestTypedGetAll() public virtual void TestTypedGetAll()
{ {
var list = (GetTestTable().Query(type: typeof(T)) as IEnumerable<object>).Cast<T>().ToList(); var list = (GetTestTable().Query(type: typeof(T)) as IEnumerable<object>).Cast<T>().ToList();
@@ -85,7 +82,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test load all rows into mapped list alternate way.</summary> /// <summary>Test load all rows into mapped list alternate way.</summary>
[Test] [TestMethod]
public virtual void TestTypedGetAll2() public virtual void TestTypedGetAll2()
{ {
var list = GetTestBuilder() var list = GetTestBuilder()
@@ -98,7 +95,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test load all rows into mapped list alternate way.</summary> /// <summary>Test load all rows into mapped list alternate way.</summary>
[Test] [TestMethod]
public virtual void TestTypedGetAll3() public virtual void TestTypedGetAll3()
{ {
var list = GetTestBuilder() var list = GetTestBuilder()
@@ -110,21 +107,21 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test unknown op.</summary> /// <summary>Test unknown op.</summary>
[Test] [TestMethod]
public virtual void TestTypedUnknownOperation() public virtual void TestTypedUnknownOperation()
{ {
Assert.Throws<InvalidOperationException>(() => GetTestTable().MakeMeASandwitch(type: typeof(T), with: "cheese")); Assert.ThrowsException<InvalidOperationException>(() => GetTestTable().MakeMeASandwitch(type: typeof(T), with: "cheese"));
} }
/// <summary>Test typed <c>Count</c> method.</summary> /// <summary>Test typed <c>Count</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedCount() public virtual void TestTypedCount()
{ {
Assert.AreEqual(200, GetTestTable().Count(type: typeof(T), columns: "id")); Assert.AreEqual(200, GetTestTable().Count(type: typeof(T), columns: "id"));
} }
/// <summary>Test typed <c>Count</c> method.</summary> /// <summary>Test typed <c>Count</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedCount2() public virtual void TestTypedCount2()
{ {
Assert.AreEqual(200, GetTestBuilder() Assert.AreEqual(200, GetTestBuilder()
@@ -134,7 +131,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test count with in statement.</summary> /// <summary>Test count with in statement.</summary>
[Test] [TestMethod]
public virtual void TestTypedSelectInEnumerableCount() public virtual void TestTypedSelectInEnumerableCount()
{ {
Assert.AreEqual(4, GetTestTable().Count(type: typeof(T), last: new DynamicColumn Assert.AreEqual(4, GetTestTable().Count(type: typeof(T), last: new DynamicColumn
@@ -145,7 +142,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test count with in statement.</summary> /// <summary>Test count with in statement.</summary>
[Test] [TestMethod]
public virtual void TestTypedSelectInEnumerableCount2() public virtual void TestTypedSelectInEnumerableCount2()
{ {
Assert.AreEqual(4, GetTestBuilder() Assert.AreEqual(4, GetTestBuilder()
@@ -156,7 +153,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test count with in statement.</summary> /// <summary>Test count with in statement.</summary>
[Test] [TestMethod]
public virtual void TestTypedSelectInArrayCount() public virtual void TestTypedSelectInArrayCount()
{ {
Assert.AreEqual(4, GetTestTable().Count(type: typeof(T), last: new DynamicColumn Assert.AreEqual(4, GetTestTable().Count(type: typeof(T), last: new DynamicColumn
@@ -167,7 +164,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test count with in statement.</summary> /// <summary>Test count with in statement.</summary>
[Test] [TestMethod]
public virtual void TestTypedSelectInArrayCount2() public virtual void TestTypedSelectInArrayCount2()
{ {
Assert.AreEqual(4, GetTestBuilder() Assert.AreEqual(4, GetTestBuilder()
@@ -178,14 +175,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed <c>First</c> method.</summary> /// <summary>Test typed <c>First</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedFirst() public virtual void TestTypedFirst()
{ {
Assert.AreEqual(1, GetTestTable().First(type: typeof(T), columns: "id").id); Assert.AreEqual(1, GetTestTable().First(type: typeof(T), columns: "id").id);
} }
/// <summary>Test typed <c>First</c> method.</summary> /// <summary>Test typed <c>First</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedFirst2() public virtual void TestTypedFirst2()
{ {
Assert.AreEqual(1, GetTestBuilder() Assert.AreEqual(1, GetTestBuilder()
@@ -196,14 +193,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed <c>Last</c> method.</summary> /// <summary>Test typed <c>Last</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedLast() public virtual void TestTypedLast()
{ {
Assert.AreEqual(200, GetTestTable().Last(type: typeof(T), columns: "id").id); Assert.AreEqual(200, GetTestTable().Last(type: typeof(T), columns: "id").id);
} }
/// <summary>Test typed <c>Last</c> method.</summary> /// <summary>Test typed <c>Last</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedLast2() public virtual void TestTypedLast2()
{ {
Assert.AreEqual(200, GetTestBuilder() Assert.AreEqual(200, GetTestBuilder()
@@ -214,21 +211,21 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed <c>Count</c> method.</summary> /// <summary>Test typed <c>Count</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedCountSpecificRecord() public virtual void TestTypedCountSpecificRecord()
{ {
Assert.AreEqual(1, GetTestTable().Count(type: typeof(T), first: "Ori")); Assert.AreEqual(1, GetTestTable().Count(type: typeof(T), first: "Ori"));
} }
/// <summary>Test typed <c>Min</c> method.</summary> /// <summary>Test typed <c>Min</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedMin() public virtual void TestTypedMin()
{ {
Assert.AreEqual(1, GetTestTable().Min(type: typeof(T), columns: "id")); Assert.AreEqual(1, GetTestTable().Min(type: typeof(T), columns: "id"));
} }
/// <summary>Test typed <c>Min</c> method.</summary> /// <summary>Test typed <c>Min</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedMin2() public virtual void TestTypedMin2()
{ {
Assert.AreEqual(1, GetTestBuilder() Assert.AreEqual(1, GetTestBuilder()
@@ -238,14 +235,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed <c>Min</c> method.</summary> /// <summary>Test typed <c>Min</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedMax() public virtual void TestTypedMax()
{ {
Assert.AreEqual(200, GetTestTable().Max(type: typeof(T), columns: "id")); Assert.AreEqual(200, GetTestTable().Max(type: typeof(T), columns: "id"));
} }
/// <summary>Test typed <c>Min</c> method.</summary> /// <summary>Test typed <c>Min</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedMax2() public virtual void TestTypedMax2()
{ {
Assert.AreEqual(200, GetTestBuilder() Assert.AreEqual(200, GetTestBuilder()
@@ -255,14 +252,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed <c>Min</c> method.</summary> /// <summary>Test typed <c>Min</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedtAvg() public virtual void TestTypedtAvg()
{ {
Assert.AreEqual(100.5, GetTestTable().Avg(type: typeof(T), columns: "id")); Assert.AreEqual(100.5, GetTestTable().Avg(type: typeof(T), columns: "id"));
} }
/// <summary>Test typed <c>Min</c> method.</summary> /// <summary>Test typed <c>Min</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedtAvg2() public virtual void TestTypedtAvg2()
{ {
Assert.AreEqual(100.5, GetTestBuilder() Assert.AreEqual(100.5, GetTestBuilder()
@@ -272,14 +269,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed <c>Sum</c> method.</summary> /// <summary>Test typed <c>Sum</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedSum() public virtual void TestTypedSum()
{ {
Assert.AreEqual(20100, GetTestTable().Sum(type: typeof(T), columns: "id")); Assert.AreEqual(20100, GetTestTable().Sum(type: typeof(T), columns: "id"));
} }
/// <summary>Test typed <c>Sum</c> method.</summary> /// <summary>Test typed <c>Sum</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedSum2() public virtual void TestTypedSum2()
{ {
Assert.AreEqual(20100, GetTestBuilder() Assert.AreEqual(20100, GetTestBuilder()
@@ -289,21 +286,21 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed <c>Scalar</c> method for invalid operation exception.</summary> /// <summary>Test typed <c>Scalar</c> method for invalid operation exception.</summary>
[Test] [TestMethod]
public virtual void TestTypedScalarException() public virtual void TestTypedScalarException()
{ {
Assert.Throws<InvalidOperationException>(() => GetTestTable().Scalar(type: typeof(T), id: 19)); Assert.ThrowsException<InvalidOperationException>(() => GetTestTable().Scalar(type: typeof(T), id: 19));
} }
/// <summary>Test typed <c>Scalar</c> method.</summary> /// <summary>Test typed <c>Scalar</c> method.</summary>
[Test] [TestMethod]
public virtual void TestTypedScalar() public virtual void TestTypedScalar()
{ {
Assert.AreEqual("Ori", GetTestTable().Scalar(type: typeof(T), columns: "first", id: 19)); Assert.AreEqual("Ori", GetTestTable().Scalar(type: typeof(T), columns: "first", id: 19));
} }
/// <summary>Test typed <c>Scalar</c> method.</summary> /// <summary>Test typed <c>Scalar</c> method.</summary>
[Test] [TestMethod]
public void TestTypedScalar2() public void TestTypedScalar2()
{ {
Assert.AreEqual("Ori", GetTestBuilder() Assert.AreEqual("Ori", GetTestBuilder()
@@ -314,7 +311,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed <c>Scalar</c> method with SQLite specific aggregate.</summary> /// <summary>Test typed <c>Scalar</c> method with SQLite specific aggregate.</summary>
[Test] [TestMethod]
public virtual void TestTypedScalarGroupConcat() public virtual void TestTypedScalarGroupConcat()
{ {
// This test should produce something like this: // This test should produce something like this:
@@ -324,7 +321,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed <c>Scalar</c> method with SQLite specific aggregate.</summary> /// <summary>Test typed <c>Scalar</c> method with SQLite specific aggregate.</summary>
[Test] [TestMethod]
public virtual void TestTypedScalarGroupConcat2() public virtual void TestTypedScalarGroupConcat2()
{ {
// This test should produce something like this: // This test should produce something like this:
@@ -338,7 +335,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed <c>Scalar</c> method with SQLite specific aggregate not using aggregate field.</summary> /// <summary>Test typed <c>Scalar</c> method with SQLite specific aggregate not using aggregate field.</summary>
[Test] [TestMethod]
public virtual void TestTypedScalarGroupConcatNoAggregateField() public virtual void TestTypedScalarGroupConcatNoAggregateField()
{ {
// This test should produce something like this: // This test should produce something like this:
@@ -348,7 +345,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed <c>Scalar</c> method with SQLite specific aggregate not using aggregate field.</summary> /// <summary>Test typed <c>Scalar</c> method with SQLite specific aggregate not using aggregate field.</summary>
[Test] [TestMethod]
public virtual void TestTypedScalarGroupConcatNoAggregateField2() public virtual void TestTypedScalarGroupConcatNoAggregateField2()
{ {
// This test should produce something like this: // This test should produce something like this:
@@ -362,7 +359,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test something fancy... like: <code>select "first", count("first") aggregatefield from "users" group by "first" order by 2 desc;</code>.</summary> /// <summary>Test something fancy... like: <code>select "first", count("first") aggregatefield from "users" group by "first" order by 2 desc;</code>.</summary>
[Test] [TestMethod]
public virtual void TestTypedFancyAggregateQuery() public virtual void TestTypedFancyAggregateQuery()
{ {
var v = (GetTestTable().Query(type: typeof(T), columns: "first,first:aggregatefield:count", group: "first", order: ":desc:2") as IEnumerable<dynamic>).ToList(); var v = (GetTestTable().Query(type: typeof(T), columns: "first,first:aggregatefield:count", group: "first", order: ":desc:2") as IEnumerable<dynamic>).ToList();
@@ -377,7 +374,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test something fancy... like: <code>select "first", count("first") aggregatefield from "users" group by "first" order by 2 desc;</code>.</summary> /// <summary>Test something fancy... like: <code>select "first", count("first") aggregatefield from "users" group by "first" order by 2 desc;</code>.</summary>
[Test] [TestMethod]
public virtual void TestTypedFancyAggregateQuery2() public virtual void TestTypedFancyAggregateQuery2()
{ {
var v = GetTestBuilder() var v = GetTestBuilder()
@@ -398,14 +395,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("login")) len from "users";</code>.</summary> /// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("login")) len from "users";</code>.</summary>
[Test] [TestMethod]
public virtual void TestTypedAggregateInAggregate() public virtual void TestTypedAggregateInAggregate()
{ {
Assert.AreEqual(12.77, GetTestTable().Scalar(type: typeof(T), columns: @"length(""login""):len:avg")); Assert.AreEqual(12.77, GetTestTable().Scalar(type: typeof(T), columns: @"length(""login""):len:avg"));
} }
/// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("login")) len from "users";</code>.</summary> /// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("login")) len from "users";</code>.</summary>
[Test] [TestMethod]
public virtual void TestTypedAggregateInAggregate2() public virtual void TestTypedAggregateInAggregate2()
{ {
Assert.AreEqual(12.77, GetTestBuilder() Assert.AreEqual(12.77, GetTestBuilder()
@@ -415,14 +412,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("email")) len from "users";</code>.</summary> /// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("email")) len from "users";</code>.</summary>
[Test] [TestMethod]
public virtual void TestTypedAggregateInAggregateMark2() public virtual void TestTypedAggregateInAggregateMark2()
{ {
Assert.AreEqual(27.7, GetTestTable().Avg(type: typeof(T), columns: @"length(""email""):len")); Assert.AreEqual(27.7, GetTestTable().Avg(type: typeof(T), columns: @"length(""email""):len"));
} }
/// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("email")) len from "users";</code>.</summary> /// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("email")) len from "users";</code>.</summary>
[Test] [TestMethod]
public virtual void TestTypedAggregateInAggregateMark3() public virtual void TestTypedAggregateInAggregateMark3()
{ {
Assert.AreEqual(27.7, GetTestBuilder() Assert.AreEqual(27.7, GetTestBuilder()
@@ -456,7 +453,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed <c>Single</c> multi.</summary> /// <summary>Test typed <c>Single</c> multi.</summary>
[Test] [TestMethod]
public virtual void TestTypedSingleObject() public virtual void TestTypedSingleObject()
{ {
var exp = new { id = 19, first = "Ori", last = "Ellis" }; var exp = new { id = 19, first = "Ori", last = "Ellis" };
@@ -468,7 +465,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed <c>Single</c> multi.</summary> /// <summary>Test typed <c>Single</c> multi.</summary>
[Test] [TestMethod]
public virtual void TestTypedSingleObject2() public virtual void TestTypedSingleObject2()
{ {
var exp = new { id = 19, first = "Ori", last = "Ellis" }; var exp = new { id = 19, first = "Ori", last = "Ellis" };
@@ -489,14 +486,14 @@ namespace DynamORM.Tests.Select
#region Where typed #region Where typed
/// <summary>Test typed where expression equal.</summary> /// <summary>Test typed where expression equal.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereEq() public virtual void TestTypedWhereEq()
{ {
Assert.AreEqual("hoyt.tran", GetTestTable().Single(type: typeof(T), where: new DynamicColumn("id").Eq(100)).login); Assert.AreEqual("hoyt.tran", GetTestTable().Single(type: typeof(T), where: new DynamicColumn("id").Eq(100)).login);
} }
/// <summary>Test typed where expression equal.</summary> /// <summary>Test typed where expression equal.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereEq2() public virtual void TestTypedWhereEq2()
{ {
Assert.AreEqual("hoyt.tran", GetTestBuilder() Assert.AreEqual("hoyt.tran", GetTestBuilder()
@@ -505,14 +502,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed where expression not equal.</summary> /// <summary>Test typed where expression not equal.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereNot() public virtual void TestTypedWhereNot()
{ {
Assert.AreEqual(199, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").Not(100))); Assert.AreEqual(199, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").Not(100)));
} }
/// <summary>Test typed where expression not equal.</summary> /// <summary>Test typed where expression not equal.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereNot2() public virtual void TestTypedWhereNot2()
{ {
Assert.AreEqual(199, GetTestBuilder() Assert.AreEqual(199, GetTestBuilder()
@@ -523,14 +520,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed where expression like.</summary> /// <summary>Test typed where expression like.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereLike() public virtual void TestTypedWhereLike()
{ {
Assert.AreEqual(100, GetTestTable().Single(type: typeof(T), where: new DynamicColumn("login").Like("Hoyt.%")).id); Assert.AreEqual(100, GetTestTable().Single(type: typeof(T), where: new DynamicColumn("login").Like("Hoyt.%")).id);
} }
/// <summary>Test typed where expression like.</summary> /// <summary>Test typed where expression like.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereLike2() public virtual void TestTypedWhereLike2()
{ {
Assert.AreEqual(100, GetTestBuilder() Assert.AreEqual(100, GetTestBuilder()
@@ -539,14 +536,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed where expression not like.</summary> /// <summary>Test typed where expression not like.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereNotLike() public virtual void TestTypedWhereNotLike()
{ {
Assert.AreEqual(199, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("login").NotLike("Hoyt.%"))); Assert.AreEqual(199, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("login").NotLike("Hoyt.%")));
} }
/// <summary>Test typed where expression not like.</summary> /// <summary>Test typed where expression not like.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereNotLike2() public virtual void TestTypedWhereNotLike2()
{ {
Assert.AreEqual(199, GetTestBuilder() Assert.AreEqual(199, GetTestBuilder()
@@ -557,7 +554,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed where expression not like.</summary> /// <summary>Test typed where expression not like.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereNotLike3() public virtual void TestTypedWhereNotLike3()
{ {
Assert.AreEqual(199, GetTestBuilder() Assert.AreEqual(199, GetTestBuilder()
@@ -568,14 +565,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed where expression greater.</summary> /// <summary>Test typed where expression greater.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereGt() public virtual void TestTypedWhereGt()
{ {
Assert.AreEqual(100, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").Greater(100))); Assert.AreEqual(100, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").Greater(100)));
} }
/// <summary>Test typed where expression greater.</summary> /// <summary>Test typed where expression greater.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereGt2() public virtual void TestTypedWhereGt2()
{ {
Assert.AreEqual(100, GetTestBuilder() Assert.AreEqual(100, GetTestBuilder()
@@ -586,14 +583,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed where expression greater or equal.</summary> /// <summary>Test typed where expression greater or equal.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereGte() public virtual void TestTypedWhereGte()
{ {
Assert.AreEqual(101, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").GreaterOrEqual(100))); Assert.AreEqual(101, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").GreaterOrEqual(100)));
} }
/// <summary>Test typed where expression greater or equal.</summary> /// <summary>Test typed where expression greater or equal.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereGte2() public virtual void TestTypedWhereGte2()
{ {
Assert.AreEqual(101, GetTestBuilder() Assert.AreEqual(101, GetTestBuilder()
@@ -604,14 +601,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed where expression less.</summary> /// <summary>Test typed where expression less.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereLt() public virtual void TestTypedWhereLt()
{ {
Assert.AreEqual(99, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").Less(100))); Assert.AreEqual(99, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").Less(100)));
} }
/// <summary>Test typed where expression less.</summary> /// <summary>Test typed where expression less.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereLt2() public virtual void TestTypedWhereLt2()
{ {
Assert.AreEqual(99, GetTestBuilder() Assert.AreEqual(99, GetTestBuilder()
@@ -622,14 +619,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed where expression less or equal.</summary> /// <summary>Test typed where expression less or equal.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereLte() public virtual void TestTypedWhereLte()
{ {
Assert.AreEqual(100, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").LessOrEqual(100))); Assert.AreEqual(100, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").LessOrEqual(100)));
} }
/// <summary>Test typed where expression less or equal.</summary> /// <summary>Test typed where expression less or equal.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereLte2() public virtual void TestTypedWhereLte2()
{ {
Assert.AreEqual(100, GetTestBuilder() Assert.AreEqual(100, GetTestBuilder()
@@ -640,14 +637,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed where expression between.</summary> /// <summary>Test typed where expression between.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereBetween() public virtual void TestTypedWhereBetween()
{ {
Assert.AreEqual(26, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").Between(75, 100))); Assert.AreEqual(26, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").Between(75, 100)));
} }
/// <summary>Test typed where expression between.</summary> /// <summary>Test typed where expression between.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereBetween2() public virtual void TestTypedWhereBetween2()
{ {
Assert.AreEqual(26, GetTestBuilder() Assert.AreEqual(26, GetTestBuilder()
@@ -658,21 +655,21 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed where expression in parameters.</summary> /// <summary>Test typed where expression in parameters.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereIn1() public virtual void TestTypedWhereIn1()
{ {
Assert.AreEqual(3, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").In(75, 99, 100))); Assert.AreEqual(3, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").In(75, 99, 100)));
} }
/// <summary>Test typed where expression in array.</summary> /// <summary>Test typed where expression in array.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereIn2() public virtual void TestTypedWhereIn2()
{ {
Assert.AreEqual(3, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").In(new[] { 75, 99, 100 }))); Assert.AreEqual(3, GetTestTable().Count(type: typeof(T), where: new DynamicColumn("id").In(new[] { 75, 99, 100 })));
} }
/// <summary>Test typed where expression in parameters.</summary> /// <summary>Test typed where expression in parameters.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereIn3() public virtual void TestTypedWhereIn3()
{ {
Assert.AreEqual(3, GetTestBuilder() Assert.AreEqual(3, GetTestBuilder()
@@ -683,7 +680,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test typed where expression in array.</summary> /// <summary>Test typed where expression in array.</summary>
[Test] [TestMethod]
public virtual void TestTypedWhereIn4() public virtual void TestTypedWhereIn4()
{ {
Assert.AreEqual(3, GetTestBuilder() Assert.AreEqual(3, GetTestBuilder()
@@ -698,7 +695,7 @@ namespace DynamORM.Tests.Select
#region Select generic #region Select generic
/// <summary>Test load all rows into mapped list alternate way.</summary> /// <summary>Test load all rows into mapped list alternate way.</summary>
[Test] [TestMethod]
public virtual void TestGenericGetAll() public virtual void TestGenericGetAll()
{ {
var list = (GetTestTable().Query<T>() as IEnumerable<object>).Cast<T>().ToList(); var list = (GetTestTable().Query<T>() as IEnumerable<object>).Cast<T>().ToList();
@@ -707,21 +704,21 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test unknown op.</summary> /// <summary>Test unknown op.</summary>
[Test] [TestMethod]
public virtual void TestGenericUnknownOperation() public virtual void TestGenericUnknownOperation()
{ {
Assert.Throws<InvalidOperationException>(() => GetTestTable().MakeMeASandwitch<T>(with: "cheese")); Assert.ThrowsException<InvalidOperationException>(() => GetTestTable().MakeMeASandwitch<T>(with: "cheese"));
} }
/// <summary>Test generic <c>Count</c> method.</summary> /// <summary>Test generic <c>Count</c> method.</summary>
[Test] [TestMethod]
public virtual void TestGenericCount() public virtual void TestGenericCount()
{ {
Assert.AreEqual(200, GetTestTable().Count<T>(columns: "id")); Assert.AreEqual(200, GetTestTable().Count<T>(columns: "id"));
} }
/// <summary>Test count with in statement.</summary> /// <summary>Test count with in statement.</summary>
[Test] [TestMethod]
public virtual void TestGenericSelectInEnumerableCount() public virtual void TestGenericSelectInEnumerableCount()
{ {
Assert.AreEqual(4, GetTestTable().Count<T>(last: new DynamicColumn Assert.AreEqual(4, GetTestTable().Count<T>(last: new DynamicColumn
@@ -732,7 +729,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test count with in statement.</summary> /// <summary>Test count with in statement.</summary>
[Test] [TestMethod]
public virtual void TestGenericSelectInArrayCount() public virtual void TestGenericSelectInArrayCount()
{ {
Assert.AreEqual(4, GetTestTable().Count<T>(last: new DynamicColumn Assert.AreEqual(4, GetTestTable().Count<T>(last: new DynamicColumn
@@ -743,70 +740,70 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test generic <c>First</c> method.</summary> /// <summary>Test generic <c>First</c> method.</summary>
[Test] [TestMethod]
public virtual void TestGenericFirst() public virtual void TestGenericFirst()
{ {
Assert.AreEqual(1, GetTestTable().First<T>(columns: "id").id); Assert.AreEqual(1, GetTestTable().First<T>(columns: "id").id);
} }
/// <summary>Test generic <c>Last</c> method.</summary> /// <summary>Test generic <c>Last</c> method.</summary>
[Test] [TestMethod]
public virtual void TestGenericLast() public virtual void TestGenericLast()
{ {
Assert.AreEqual(200, GetTestTable().Last<T>(columns: "id").id); Assert.AreEqual(200, GetTestTable().Last<T>(columns: "id").id);
} }
/// <summary>Test generic <c>Count</c> method.</summary> /// <summary>Test generic <c>Count</c> method.</summary>
[Test] [TestMethod]
public virtual void TestGenericCountSpecificRecord() public virtual void TestGenericCountSpecificRecord()
{ {
Assert.AreEqual(1, GetTestTable().Count<T>(first: "Ori")); Assert.AreEqual(1, GetTestTable().Count<T>(first: "Ori"));
} }
/// <summary>Test generic <c>Min</c> method.</summary> /// <summary>Test generic <c>Min</c> method.</summary>
[Test] [TestMethod]
public virtual void TestGenericMin() public virtual void TestGenericMin()
{ {
Assert.AreEqual(1, GetTestTable().Min<T>(columns: "id")); Assert.AreEqual(1, GetTestTable().Min<T>(columns: "id"));
} }
/// <summary>Test generic <c>Min</c> method.</summary> /// <summary>Test generic <c>Min</c> method.</summary>
[Test] [TestMethod]
public virtual void TestGenericMax() public virtual void TestGenericMax()
{ {
Assert.AreEqual(200, GetTestTable().Max<T>(columns: "id")); Assert.AreEqual(200, GetTestTable().Max<T>(columns: "id"));
} }
/// <summary>Test generic <c>Min</c> method.</summary> /// <summary>Test generic <c>Min</c> method.</summary>
[Test] [TestMethod]
public virtual void TestGenerictAvg() public virtual void TestGenerictAvg()
{ {
Assert.AreEqual(100.5, GetTestTable().Avg<T>(columns: "id")); Assert.AreEqual(100.5, GetTestTable().Avg<T>(columns: "id"));
} }
/// <summary>Test generic <c>Sum</c> method.</summary> /// <summary>Test generic <c>Sum</c> method.</summary>
[Test] [TestMethod]
public virtual void TestGenericSum() public virtual void TestGenericSum()
{ {
Assert.AreEqual(20100, GetTestTable().Sum<T>(columns: "id")); Assert.AreEqual(20100, GetTestTable().Sum<T>(columns: "id"));
} }
/// <summary>Test generic <c>Scalar</c> method for invalid operation exception.</summary> /// <summary>Test generic <c>Scalar</c> method for invalid operation exception.</summary>
[Test] [TestMethod]
public virtual void TestGenericScalarException() public virtual void TestGenericScalarException()
{ {
Assert.Throws<InvalidOperationException>(() => GetTestTable().Scalar<T>(id: 19)); Assert.ThrowsException<InvalidOperationException>(() => GetTestTable().Scalar<T>(id: 19));
} }
/// <summary>Test generic <c>Scalar</c> method.</summary> /// <summary>Test generic <c>Scalar</c> method.</summary>
[Test] [TestMethod]
public virtual void TestGenericScalar() public virtual void TestGenericScalar()
{ {
Assert.AreEqual("Ori", GetTestTable().Scalar<T>(columns: "first", id: 19)); Assert.AreEqual("Ori", GetTestTable().Scalar<T>(columns: "first", id: 19));
} }
/// <summary>Test generic <c>Scalar</c> method with SQLite specific aggregate.</summary> /// <summary>Test generic <c>Scalar</c> method with SQLite specific aggregate.</summary>
[Test] [TestMethod]
public virtual void TestGenericScalarGroupConcat() public virtual void TestGenericScalarGroupConcat()
{ {
// This test should produce something like this: // This test should produce something like this:
@@ -816,7 +813,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test generic <c>Scalar</c> method with SQLite specific aggregate not using aggregate field.</summary> /// <summary>Test generic <c>Scalar</c> method with SQLite specific aggregate not using aggregate field.</summary>
[Test] [TestMethod]
public virtual void TestGenericScalarGroupConcatNoAggregateField() public virtual void TestGenericScalarGroupConcatNoAggregateField()
{ {
// This test should produce something like this: // This test should produce something like this:
@@ -826,7 +823,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test something fancy... like: <code>select "first", count("first") aggregatefield from "users" group by "first" order by 2 desc;</code>.</summary> /// <summary>Test something fancy... like: <code>select "first", count("first") aggregatefield from "users" group by "first" order by 2 desc;</code>.</summary>
[Test] [TestMethod]
public virtual void TestGenericFancyAggregateQuery() public virtual void TestGenericFancyAggregateQuery()
{ {
var v = (GetTestTable().Query<T>(columns: "first,first:aggregatefield:count", group: "first", order: ":desc:2") as IEnumerable<dynamic>).ToList(); var v = (GetTestTable().Query<T>(columns: "first,first:aggregatefield:count", group: "first", order: ":desc:2") as IEnumerable<dynamic>).ToList();
@@ -841,14 +838,14 @@ namespace DynamORM.Tests.Select
} }
/// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("login")) len from "users";</code>.</summary> /// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("login")) len from "users";</code>.</summary>
[Test] [TestMethod]
public virtual void TestGenericAggregateInAggregate() public virtual void TestGenericAggregateInAggregate()
{ {
Assert.AreEqual(12.77, GetTestTable().Scalar<T>(columns: @"length(""login""):len:avg")); Assert.AreEqual(12.77, GetTestTable().Scalar<T>(columns: @"length(""login""):len:avg"));
} }
/// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("email")) len from "users";</code>.</summary> /// <summary>This time also something fancy... aggregate in aggregate <code>select AVG(LENGTH("email")) len from "users";</code>.</summary>
[Test] [TestMethod]
public virtual void TestGenericAggregateInAggregateMark2() public virtual void TestGenericAggregateInAggregateMark2()
{ {
Assert.AreEqual(27.7, GetTestTable().Avg<T>(columns: @"length(""email""):len")); Assert.AreEqual(27.7, GetTestTable().Avg<T>(columns: @"length(""email""):len"));
@@ -869,7 +866,7 @@ namespace DynamORM.Tests.Select
} }
/// <summary>Test generic <c>Single</c> multi.</summary> /// <summary>Test generic <c>Single</c> multi.</summary>
[Test] [TestMethod]
public virtual void TestGenericSingleObject() public virtual void TestGenericSingleObject()
{ {
var exp = new { id = 19, first = "Ori", last = "Ellis" }; var exp = new { id = 19, first = "Ori", last = "Ellis" };
@@ -885,77 +882,77 @@ namespace DynamORM.Tests.Select
#region Where generic #region Where generic
/// <summary>Test generic where expression equal.</summary> /// <summary>Test generic where expression equal.</summary>
[Test] [TestMethod]
public virtual void TestGenericWhereEq() public virtual void TestGenericWhereEq()
{ {
Assert.AreEqual("hoyt.tran", GetTestTable().Single<T>(where: new DynamicColumn("id").Eq(100)).login); Assert.AreEqual("hoyt.tran", GetTestTable().Single<T>(where: new DynamicColumn("id").Eq(100)).login);
} }
/// <summary>Test generic where expression not equal.</summary> /// <summary>Test generic where expression not equal.</summary>
[Test] [TestMethod]
public virtual void TestGenericWhereNot() public virtual void TestGenericWhereNot()
{ {
Assert.AreEqual(199, GetTestTable().Count<T>(where: new DynamicColumn("id").Not(100))); Assert.AreEqual(199, GetTestTable().Count<T>(where: new DynamicColumn("id").Not(100)));
} }
/// <summary>Test generic where expression like.</summary> /// <summary>Test generic where expression like.</summary>
[Test] [TestMethod]
public virtual void TestGenericWhereLike() public virtual void TestGenericWhereLike()
{ {
Assert.AreEqual(100, GetTestTable().Single<T>(where: new DynamicColumn("login").Like("Hoyt.%")).id); Assert.AreEqual(100, GetTestTable().Single<T>(where: new DynamicColumn("login").Like("Hoyt.%")).id);
} }
/// <summary>Test generic where expression not like.</summary> /// <summary>Test generic where expression not like.</summary>
[Test] [TestMethod]
public virtual void TestGenericWhereNotLike() public virtual void TestGenericWhereNotLike()
{ {
Assert.AreEqual(199, GetTestTable().Count<T>(where: new DynamicColumn("login").NotLike("Hoyt.%"))); Assert.AreEqual(199, GetTestTable().Count<T>(where: new DynamicColumn("login").NotLike("Hoyt.%")));
} }
/// <summary>Test generic where expression greater.</summary> /// <summary>Test generic where expression greater.</summary>
[Test] [TestMethod]
public virtual void TestGenericWhereGt() public virtual void TestGenericWhereGt()
{ {
Assert.AreEqual(100, GetTestTable().Count<T>(where: new DynamicColumn("id").Greater(100))); Assert.AreEqual(100, GetTestTable().Count<T>(where: new DynamicColumn("id").Greater(100)));
} }
/// <summary>Test generic where expression greater or equal.</summary> /// <summary>Test generic where expression greater or equal.</summary>
[Test] [TestMethod]
public virtual void TestGenericWhereGte() public virtual void TestGenericWhereGte()
{ {
Assert.AreEqual(101, GetTestTable().Count<T>(where: new DynamicColumn("id").GreaterOrEqual(100))); Assert.AreEqual(101, GetTestTable().Count<T>(where: new DynamicColumn("id").GreaterOrEqual(100)));
} }
/// <summary>Test generic where expression less.</summary> /// <summary>Test generic where expression less.</summary>
[Test] [TestMethod]
public virtual void TestGenericWhereLt() public virtual void TestGenericWhereLt()
{ {
Assert.AreEqual(99, GetTestTable().Count<T>(where: new DynamicColumn("id").Less(100))); Assert.AreEqual(99, GetTestTable().Count<T>(where: new DynamicColumn("id").Less(100)));
} }
/// <summary>Test generic where expression less or equal.</summary> /// <summary>Test generic where expression less or equal.</summary>
[Test] [TestMethod]
public virtual void TestGenericWhereLte() public virtual void TestGenericWhereLte()
{ {
Assert.AreEqual(100, GetTestTable().Count<T>(where: new DynamicColumn("id").LessOrEqual(100))); Assert.AreEqual(100, GetTestTable().Count<T>(where: new DynamicColumn("id").LessOrEqual(100)));
} }
/// <summary>Test generic where expression between.</summary> /// <summary>Test generic where expression between.</summary>
[Test] [TestMethod]
public virtual void TestGenericWhereBetween() public virtual void TestGenericWhereBetween()
{ {
Assert.AreEqual(26, GetTestTable().Count<T>(where: new DynamicColumn("id").Between(75, 100))); Assert.AreEqual(26, GetTestTable().Count<T>(where: new DynamicColumn("id").Between(75, 100)));
} }
/// <summary>Test generic where expression in parameters.</summary> /// <summary>Test generic where expression in parameters.</summary>
[Test] [TestMethod]
public virtual void TestGenericWhereIn1() public virtual void TestGenericWhereIn1()
{ {
Assert.AreEqual(3, GetTestTable().Count<T>(where: new DynamicColumn("id").In(75, 99, 100))); Assert.AreEqual(3, GetTestTable().Count<T>(where: new DynamicColumn("id").In(75, 99, 100)));
} }
/// <summary>Test generic where expression in array.</summary> /// <summary>Test generic where expression in array.</summary>
[Test] [TestMethod]
public virtual void TestGenericWhereIn2() public virtual void TestGenericWhereIn2()
{ {
Assert.AreEqual(3, GetTestTable().Count<T>(where: new DynamicColumn("id").In(new[] { 75, 99, 100 }))); Assert.AreEqual(3, GetTestTable().Count<T>(where: new DynamicColumn("id").In(new[] { 75, 99, 100 })));
+37 -2
View File
@@ -27,6 +27,7 @@
*/ */
using System; using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Linq.Expressions; using System.Linq.Expressions;
@@ -156,7 +157,7 @@ namespace DynamORM.Mapper
var v = prop.Get(val); var v = prop.Get(val);
foreach (var r in prop.Requirements) foreach (var r in prop.Requirements.Where(x => !x.ElementRequirement))
{ {
var valid = r.ValidateSimpleValue(prop, v); var valid = r.ValidateSimpleValue(prop, v);
@@ -165,8 +166,42 @@ namespace DynamORM.Mapper
if (prop.Type.IsArray || prop.IsGnericEnumerable) if (prop.Type.IsArray || prop.IsGnericEnumerable)
{ {
var map = DynamicMapperCache.GetMapper(prop.ArrayType); var map = DynamicMapperCache.GetMapper(prop.ArrayType);
foreach (var item in val as IEnumerable<object>)
var list = v as IEnumerable<object>;
if (list == null)
{
var enumerable = v as IEnumerable;
if (enumerable != null)
list = enumerable.Cast<object>();
}
if (list != null)
foreach (var item in list)
{
if (prop.Requirements.Any(x => x.ElementRequirement))
{
foreach (var re in prop.Requirements.Where(x => x.ElementRequirement))
{
var validelem = re.ValidateSimpleValue(prop.ArrayType, prop.ArrayType.IsGenericEnumerable(), item);
if (validelem == ValidateResult.NotSupported)
{
result.AddRange(map.ValidateObject(item)); result.AddRange(map.ValidateObject(item));
break;
}
else if (validelem != ValidateResult.Valid)
result.Add(new ValidationResult()
{
Property = prop,
Requirement = r,
Value = item,
});
}
}
else
result.AddRange(map.ValidateObject(item));
}
} }
continue; continue;
+45 -6
View File
@@ -1,4 +1,5 @@
using System; using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
@@ -7,7 +8,7 @@ using DynamORM.Mapper;
namespace DynamORM.Validation namespace DynamORM.Validation
{ {
/// <summary>Required attribute can be used to validate fields in objects using mapper class.</summary> /// <summary>Required attribute can be used to validate fields in objects using mapper class.</summary>
[AttributeUsage(AttributeTargets.Property)] [AttributeUsage(AttributeTargets.Property, AllowMultiple = true)]
public class RequiredAttribute : Attribute public class RequiredAttribute : Attribute
{ {
/// <summary>Gets or sets minimum value or length of field.</summary> /// <summary>Gets or sets minimum value or length of field.</summary>
@@ -22,6 +23,9 @@ namespace DynamORM.Validation
/// <summary>Gets or sets a value indicating whether property value is required or not.</summary> /// <summary>Gets or sets a value indicating whether property value is required or not.</summary>
public bool Required { get; set; } public bool Required { get; set; }
/// <summary>Gets or sets a value indicating whether this is an element requirement.</summary>
public bool ElementRequirement { get; set; }
/// <summary>Initializes a new instance of the <see cref="RequiredAttribute" /> class.</summary> /// <summary>Initializes a new instance of the <see cref="RequiredAttribute" /> class.</summary>
/// <param name="required">This field will be required.</param> /// <param name="required">This field will be required.</param>
public RequiredAttribute(bool required = true) public RequiredAttribute(bool required = true)
@@ -68,10 +72,20 @@ namespace DynamORM.Validation
internal ValidateResult ValidateSimpleValue(DynamicPropertyInvoker dpi, object val) internal ValidateResult ValidateSimpleValue(DynamicPropertyInvoker dpi, object val)
{ {
if (val == null && Required) return ValidateSimpleValue(dpi.Type, dpi.IsGnericEnumerable, val);
return ValidateResult.ValueIsMissing; }
if (dpi.Type.IsValueType) internal ValidateResult ValidateSimpleValue(Type type, bool isGnericEnumerable, object val)
{
if (val == null)
{
if (Required)
return ValidateResult.ValueIsMissing;
else
return ValidateResult.Valid;
}
if (type.IsValueType)
{ {
if (val is decimal || val is long || val is int || val is float || val is double || val is short || val is byte || if (val is decimal || val is long || val is int || val is float || val is double || val is short || val is byte ||
val is decimal? || val is long? || val is int? || val is float? || val is double? || val is short? || val is byte?) val is decimal? || val is long? || val is int? || val is float? || val is double? || val is short? || val is byte?)
@@ -102,9 +116,19 @@ namespace DynamORM.Validation
return ValidateResult.Valid; return ValidateResult.Valid;
} }
} }
else if (dpi.Type.IsArray || dpi.IsGnericEnumerable) else if (type.IsArray || isGnericEnumerable)
{ {
var cnt = (val as IEnumerable<object>).Count(); int? cnt = null;
var list = (val as IEnumerable<object>);
if (list != null)
cnt = list.Count();
else
{
var enumerable = (val as IEnumerable);
if (enumerable != null)
cnt = enumerable.Cast<object>().Count();
}
if (Min.HasValue && Min.Value > cnt) if (Min.HasValue && Min.Value > cnt)
return ValidateResult.TooFewElementsInCollection; return ValidateResult.TooFewElementsInCollection;
@@ -114,6 +138,21 @@ namespace DynamORM.Validation
return ValidateResult.Valid; return ValidateResult.Valid;
} }
else if (type == typeof(string))
{
var str = (string)val;
if (Min.HasValue && Min.Value > str.Length)
return ValidateResult.ValueTooShort;
if (Max.HasValue && Max.Value < str.Length)
return ValidateResult.ValueTooLong;
if (Pattern != null && !Pattern.IsMatch(str))
return ValidateResult.ValueDontMatchPattern;
return ValidateResult.Valid;
}
return ValidateResult.NotSupported; return ValidateResult.NotSupported;
} }