This commit is contained in:
grzegorz.russek
2018-09-20 05:35:36 +00:00
parent fe36953bd5
commit 913d29274e
19 changed files with 607 additions and 385 deletions

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;
} }

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.

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" };

View File

@@ -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);

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

View File

@@ -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);
}
}
}

View File

@@ -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" }));

View File

@@ -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(

View File

@@ -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>

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");

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 {

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());

View File

@@ -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();

View File

@@ -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>

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);

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);

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 })));

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;

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;
} }