Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

updated FirebirdTests/SqlServerExpressionsTest #299

Merged
merged 1 commit into from
Aug 2, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/AllDialectsTest/AllDialectsTest.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="..\SqlServerExpressionsTets\test.mdf">
<Content Include="..\SqlServerExpressionsTest\test.mdf">
<Link>test.mdf</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
Expand Down
6 changes: 4 additions & 2 deletions src/ServiceStack.OrmLite.sln
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
# Visual Studio 2013
VisualStudioVersion = 12.0.20617.1 PREVIEW
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{6CEB3EDE-9F02-4F4F-BD8A-1B2939C1AE6E}"
ProjectSection(SolutionItems) = preProject
..\build\build.bat = ..\build\build.bat
Expand Down Expand Up @@ -72,7 +74,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqliteExpressionsTest", "Sq
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostgreSQLExpressionsTest", "PostgreSQLExpressionsTest\PostgreSQLExpressionsTest.csproj", "{348E82EE-7D30-4D60-90E5-CA60C290C589}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlServerExpressionsTets", "SqlServerExpressionsTets\SqlServerExpressionsTets.csproj", "{19825530-1D25-4528-AB6D-E236809A7F34}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlServerExpressionsTest", "SqlServerExpressionsTest\SqlServerExpressionsTest.csproj", "{19825530-1D25-4528-AB6D-E236809A7F34}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AllDialectsTest", "AllDialectsTest\AllDialectsTest.csproj", "{A55FAA4E-7900-4F77-AEA2-FA7F44D0A480}"
EndProject
Expand Down
102 changes: 102 additions & 0 deletions src/SqlServerExpressionsTest/IgnoredFieldSelectTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ServiceStack.OrmLite;
using System.IO;
using System.Data;
using ServiceStack.DataAnnotations;
using ServiceStack.Common.Utils;
using ServiceStack.OrmLite.SqlServer;

namespace SqlServerExpressionsTest
{
public class User_2
{
public long Id { get; set; }

[Index]
public string Name { get; set; }

public DateTime CreatedDate { get; set; }

public long? UserDataId { get; set; }

public long UserServiceId { get; set; }

[Ignore]
[Alias("DataValue")]
public string UserDataValue { get; set; }

[Ignore]
[Alias("ServiceName")]
public string UserServiceName { get; set; }
}

[Alias("UserData_2")]
public class UserData_2
{
public long Id { get; set; }
public string DataValue { get; set; }
}

[Alias("UserService_2")]
public class UserService_2
{
public long Id { get; set; }
public string ServiceName { get; set; }
}


public class IgnoredFieldSelectTest
{
public static void Test(string connectionString)
{
//using (IDbConnection db = ":memory:".OpenDbConnection())
using (IDbConnection db = connectionString.OpenDbConnection())
{
db.CreateTable<User_2>(true);
db.CreateTable<UserData_2>(true);
db.CreateTable<UserService_2>(true);

//Insert Test
db.Insert(new UserData_2 { Id = 5, DataValue = "Value-5" });
db.Insert(new UserData_2 { Id = 6, DataValue = "Value-6" });

db.Insert(new UserService_2 { Id = 8, ServiceName = "Value-8" });
db.Insert(new UserService_2 { Id = 9, ServiceName = "Value-9" });

var user2 = new User_2 { Id = 1, Name = "A", CreatedDate = DateTime.Now, UserDataId = 5, UserServiceId = 8 };
db.Insert(user2);
db.Insert(new User_2 { Id = 2, Name = "B", CreatedDate = DateTime.Now, UserDataId = 5, UserServiceId = 9 });
db.Insert(new User_2 { Id = 3, Name = "B", CreatedDate = DateTime.Now });

//Update Test
user2.CreatedDate = DateTime.Now;
db.Update<User_2>(user2,x=>x.Id == 1);

//Select Test

var rowsB = db.Select<User_2>("Name = {0}", "B");
var rowsB1 = db.Select<User_2>(user => user.Name == "B");

var rowsUData = db.Select<UserData_2>();
var rowsUServ = db.Select<UserService_2>();

var jn2 = new JoinSqlBuilder<User_2, User_2>();
jn2 = jn2.Join<User_2, UserData_2>(x => x.UserDataId, x => x.Id, x => new { x.Name, x.Id }, x => new { x.DataValue})
.Join<User_2, UserService_2>(x => x.UserServiceId, x => x.Id, null, x => new { x.ServiceName })
.OrderByDescending<User_2>(x => x.Name)
.OrderBy<User_2>(x => x.Id)
.Select<User_2>(x => x.Id);

var sql2 = jn2.ToSql();
var items2 = db.Query<User_2>(sql2);
Console.WriteLine("Ignored Field Selected Items - {0}",items2.Count());

var item = db.FirstOrDefault<User_2>(sql2);

}
}
}
}
197 changes: 197 additions & 0 deletions src/SqlServerExpressionsTest/JoinTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ServiceStack.OrmLite;
using System.IO;
using System.Data;
using ServiceStack.DataAnnotations;
using ServiceStack.Common.Utils;
using ServiceStack.OrmLite.SqlServer;

namespace SqlServerExpressionsTest
{
public class User
{
public long Id { get; set; }

[Index]
public string Name { get; set; }

public DateTime CreatedDate { get; set; }

public long? UserDataId { get; set; }

public long UserServiceId { get; set; }

}

public class UserEx
{
[BelongTo(typeof(User))]
public long Id { get; set; }
[BelongTo(typeof(User))]
public string Name { get; set; }
public DateTime CreatedDate { get; set; }
[BelongTo(typeof(UserData))]
public string UserDataValue { get; set; }
[BelongTo(typeof(UserService))]
[Alias("ServiceName")]
public string UserServiceName { get; set; }
}


[Alias("UserData")]
public class UserData
{
[AutoIncrement]
public long Id { get; set; }
public string UserDataValue { get; set; }
}

[Alias("UserService")]
public class UserService
{
[AutoIncrement]
public long Id { get; set; }
public string ServiceName { get; set; }
}

public class JoinTest
{
public static void Test(string connectionString)
{
//using (IDbConnection db = ":memory:".OpenDbConnection())
using (IDbConnection db = connectionString.OpenDbConnection())
{
db.CreateTable<User>(true);
db.CreateTable<UserData>(true);
db.CreateTable<UserService>(true);

db.Insert(new UserData { Id = 5, UserDataValue = "Value-5" });
db.Insert(new UserData { Id = 6, UserDataValue = "Value-6" });

db.Insert(new UserService { Id = 8, ServiceName = "Value-8" });
db.Insert(new UserService { Id = 9, ServiceName = "Value-9" });

db.Insert(new User { Id = 1, Name = "A", CreatedDate = DateTime.Now, UserDataId = 5, UserServiceId = 8 });
db.Insert(new User { Id = 2, Name = "B", CreatedDate = DateTime.Now, UserDataId = 5, UserServiceId = 9 });
db.Insert(new User { Id = 3, Name = "B", CreatedDate = DateTime.Now });


var rowsB = db.Select<User>("Name = {0}", "B");
var rowsB1 = db.Select<User>(user => user.Name == "B");

var jn = new JoinSqlBuilder<UserEx, User>();
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id, x => new { x.Name, x.Id }, x => new { x.UserDataValue })
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id, null, x => new { x.ServiceName })
.OrderByDescending<User>(x=>x.Name)
.OrderBy<User>(x=>x.Id)
.Select<User>(x=>x.Id)
.Where<User>(x=> x.Id == 0);

var sql = jn.ToSql();
var items = db.Query<UserEx>(sql);

jn.Clear();
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
.OrderByDescending<User>(x => x.Name)
.OrderBy<User>(x => x.Id)
.OrderByDescending<UserService>(x => x.ServiceName)
.Where<User>(x => x.Id > 0)
.Or<User>(x => x.Id < 10)
.And<User>(x => x.Name != "" || x.Name != null);

var sql2 = jn.ToSql();
var item = db.QuerySingle<UserEx>(sql2);

jn.Clear();
jn = new JoinSqlBuilder<UserEx, User>();
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
.OrderByDescending<User>(x=>x.Name)
.OrderBy<User>(x=>x.Id)
.SelectAll<UserData>()
.Where<User>(x=> x.Id == 0);

var sql3 = jn.ToSql();
var items3 = db.Query<UserEx>(sql3);

jn.Clear();
jn = new JoinSqlBuilder<UserEx, User>();
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id, x => new { x.Name, x.Id }, x => new { x.UserDataValue })
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id, null, x => new { x.ServiceName })
.OrderByDescending<User>(x=>x.Name)
.OrderBy<User>(x=>x.Id)
.SelectDistinct()
.SelectAll<UserData>()
.Where<User>(x=> x.Id == 0);

var sql4 = jn.ToSql();
var items4 = db.Query<UserEx>(sql4);

jn.Clear();
jn = new JoinSqlBuilder<UserEx, User>();
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
.OrderByDescending<User>(x=>x.Name)
.OrderBy<User>(x=>x.Id)
.SelectCount<User>(x=>x.Id)
.Where<User>(x=> x.Id == 0);

var sql5 = jn.ToSql();
var items5 = db.GetScalar<long>(sql5);

jn.Clear();
jn = new JoinSqlBuilder<UserEx, User>();
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
.OrderByDescending<User>(x => x.Name)
.OrderBy<User>(x=>x.Id)
.SelectMax<User>(x=>x.Id)
.Where<User>(x=> x.Id == 0);

var sql6 = jn.ToSql();
var items6 = db.GetScalar<long>(sql6);

jn.Clear();
jn = new JoinSqlBuilder<UserEx, User>();
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
.OrderByDescending<User>(x => x.Name)
.OrderBy<User>(x=>x.Id)
.SelectMin<User>(x=>x.Id)
.Where<User>(x=> x.Id == 0);

var sql7 = jn.ToSql();
var items7 = db.GetScalar<long>(sql7);

jn.Clear();
jn = new JoinSqlBuilder<UserEx, User>();
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
.OrderByDescending<User>(x => x.Name)
.OrderBy<User>(x=>x.Id)
.SelectAverage<User>(x=>x.Id)
.Where<User>(x=> x.Id == 0);

var sql8 = jn.ToSql();
var items8 = db.GetScalar<long>(sql8);

jn.Clear();
jn = new JoinSqlBuilder<UserEx, User>();
jn = jn.Join<User, UserData>(x => x.UserDataId, x => x.Id)
.LeftJoin<User, UserService>(x => x.UserServiceId, x => x.Id)
.OrderByDescending<User>(x => x.Name)
.OrderBy<User>(x=>x.Id)
.SelectSum<User>(x=>x.Id)
.Where<User>(x=> x.Id == 0);

var sql9 = jn.ToSql();
var items9 = db.GetScalar<long>(sql9);

}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
using ServiceStack.OrmLite.SqlServer;


namespace SqlServerExpressionsTets
namespace SqlServerExpressionsTest
{
public class Author
{
Expand Down Expand Up @@ -49,6 +49,12 @@ public static void Main(string[] args)
OrmLiteConfig.DialectProvider = SqlServerOrmLiteDialectProvider.Instance;
SqlExpressionVisitor<Author> ev = OrmLiteConfig.DialectProvider.ExpressionVisitor<Author>();

Console.WriteLine("Join Test");
//JoinTest.Test(GetFileConnectionString());

Console.WriteLine("Ignored Field Select Test");
IgnoredFieldSelectTest.Test(GetFileConnectionString());

using (IDbConnection db = GetFileConnectionString().OpenDbConnection())
{
db.DropTable<Author>();
Expand Down Expand Up @@ -290,8 +296,7 @@ public static void Main(string[] args)

private static string GetFileConnectionString()
{
var connectionString = "~/test.mdf".MapAbsolutePath();

var connectionString = "~/test.mdf".MapAbsolutePath();


return connectionString;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?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">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
Expand All @@ -8,9 +8,10 @@
<ProjectGuid>{19825530-1D25-4528-AB6D-E236809A7F34}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>SqlServerExpressionsTets</RootNamespace>
<AssemblyName>SqlServerExpressionsTets</AssemblyName>
<RootNamespace>SqlServerExpressionsTest</RootNamespace>
<AssemblyName>SqlServerExpressionsTest</AssemblyName>
<FileAlignment>512</FileAlignment>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
Expand All @@ -23,7 +24,6 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
Expand Down Expand Up @@ -64,6 +64,8 @@
<Compile Include="..\GlobalAssemblyInfo.cs">
<Link>Properties\GlobalAssemblyInfo.cs</Link>
</Compile>
<Compile Include="IgnoredFieldSelectTest.cs" />
<Compile Include="JoinTest.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
Expand Down
Loading