Skip to content

Commit

Permalink
Unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Brad Robinson committed Mar 23, 2011
1 parent 72662df commit 74a6220
Show file tree
Hide file tree
Showing 16 changed files with 795 additions and 40 deletions.
File renamed without changes.
7 changes: 7 additions & 0 deletions PetaPoco.Tests/App.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="mysql" connectionString="server=db.meg;database=jab;user id=jab;password=jab;Allow User Variables=true" providerName="MySql.Data.MySqlClient"/>
<add name="sqlserver" connectionString="Data Source=MACBOOK\SQLEXPRESS;Integrated Security=True"/>
</connectionStrings>
</configuration>
11 changes: 0 additions & 11 deletions PetaPoco.Tests/Class1.cs

This file was deleted.

13 changes: 13 additions & 0 deletions PetaPoco.Tests/PetaPoco.Tests.csproj.user
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<StartAction>Program</StartAction>
<StartProgram>C:\Program Files (x86)\NUnit 2.5.6\bin\net-2.0\nunit.exe</StartProgram>
<StartArguments>PetaPoco.Tests.dll /run</StartArguments>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<StartAction>Program</StartAction>
<StartProgram>C:\Program Files (x86)\NUnit 2.5.6\bin\net-2.0\nunit.exe</StartProgram>
<StartArguments>PetaPoco.Tests.dll /run</StartArguments>
</PropertyGroup>
</Project>
197 changes: 197 additions & 0 deletions PetaPoco.Tests/SqlBuilder.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 NUnit.Framework;
using PetaPoco;

namespace PetaPoco.Tests
{
[TestFixture]
public class SqlBuilder : AssertionHelper
{
public SqlBuilder()
{
}

[Test]
public void simple_append()
{
var sql = new Sql();
sql.Append("LINE 1");
sql.Append("LINE 2");
sql.Append("LINE 3");

Expect(sql.SQL, Is.EqualTo("LINE 1\nLINE 2\nLINE 3"));
Expect(sql.Arguments.Length, Is.EqualTo(0));
}

[Test]
public void single_arg()
{
var sql = new Sql();
sql.Append("arg @0", "a1");

Expect(sql.SQL, Is.EqualTo("arg @0"));
Expect(sql.Arguments.Length, Is.EqualTo(1));
Expect(sql.Arguments[0], Is.EqualTo("a1"));
}

[Test]
public void multiple_args()
{
var sql = new Sql();
sql.Append("arg @0 @1", "a1", "a2");

Expect(sql.SQL, Is.EqualTo("arg @0 @1"));
Expect(sql.Arguments.Length, Is.EqualTo(2));
Expect(sql.Arguments[0], Is.EqualTo("a1"));
Expect(sql.Arguments[1], Is.EqualTo("a2"));
}

[Test]
public void unused_args()
{
var sql = new Sql();
sql.Append("arg @0 @2", "a1", "a2", "a3");

Expect(sql.SQL, Is.EqualTo("arg @0 @1"));
Expect(sql.Arguments.Length, Is.EqualTo(2));
Expect(sql.Arguments[0], Is.EqualTo("a1"));
Expect(sql.Arguments[1], Is.EqualTo("a3"));
}

[Test]
public void unordered_args()
{
var sql = new Sql();
sql.Append("arg @2 @1", "a1", "a2", "a3");

Expect(sql.SQL, Is.EqualTo("arg @0 @1"));
Expect(sql.Arguments.Length, Is.EqualTo(2));
Expect(sql.Arguments[0], Is.EqualTo("a3"));
Expect(sql.Arguments[1], Is.EqualTo("a2"));
}

[Test]
public void repeated_args()
{
var sql = new Sql();
sql.Append("arg @0 @1 @0 @1", "a1", "a2");

Expect(sql.SQL, Is.EqualTo("arg @0 @1 @2 @3"));
Expect(sql.Arguments.Length, Is.EqualTo(4));
Expect(sql.Arguments[0], Is.EqualTo("a1"));
Expect(sql.Arguments[1], Is.EqualTo("a2"));
Expect(sql.Arguments[2], Is.EqualTo("a1"));
Expect(sql.Arguments[3], Is.EqualTo("a2"));
}

[Test]
public void mysql_user_vars()
{
var sql = new Sql();
sql.Append("arg @@user1 @2 @1 @@@system1", "a1", "a2", "a3");

Expect(sql.SQL, Is.EqualTo("arg @@user1 @0 @1 @@@system1"));
Expect(sql.Arguments.Length, Is.EqualTo(2));
Expect(sql.Arguments[0], Is.EqualTo("a3"));
Expect(sql.Arguments[1], Is.EqualTo("a2"));
}

[Test]
public void named_args()
{
var sql = new Sql();
sql.Append("arg @name @password", new { name = "n", password = "p" });

Expect(sql.SQL, Is.EqualTo("arg @0 @1"));
Expect(sql.Arguments.Length, Is.EqualTo(2));
Expect(sql.Arguments[0], Is.EqualTo("n"));
Expect(sql.Arguments[1], Is.EqualTo("p"));
}



[Test]
public void mixed_named_and_numbered_args()
{
var sql = new Sql();
sql.Append("arg @0 @name @1 @password @2", "a1", "a2", "a3", new { name = "n", password = "p" });

Expect(sql.SQL, Is.EqualTo("arg @0 @1 @2 @3 @4"));
Expect(sql.Arguments.Length, Is.EqualTo(5));
Expect(sql.Arguments[0], Is.EqualTo("a1"));
Expect(sql.Arguments[1], Is.EqualTo("n"));
Expect(sql.Arguments[2], Is.EqualTo("a2"));
Expect(sql.Arguments[3], Is.EqualTo("p"));
Expect(sql.Arguments[4], Is.EqualTo("a3"));
}

[Test]
public void append_with_args()
{
var sql = new Sql();
sql.Append("l1 @0", "a0");
sql.Append("l2 @0", "a1");
sql.Append("l3 @0", "a2");

Expect(sql.SQL, Is.EqualTo("l1 @0\nl2 @1\nl3 @2"));
Expect(sql.Arguments.Length, Is.EqualTo(3));
Expect(sql.Arguments[0], Is.EqualTo("a0"));
Expect(sql.Arguments[1], Is.EqualTo("a1"));
Expect(sql.Arguments[2], Is.EqualTo("a2"));
}

[Test]
public void append_with_args2()
{
var sql = new Sql();
sql.Append("l1");
sql.Append("l2 @0 @1", "a1", "a2");
sql.Append("l3 @0", "a3");

Expect(sql.SQL, Is.EqualTo("l1\nl2 @0 @1\nl3 @2"));
Expect(sql.Arguments.Length, Is.EqualTo(3));
Expect(sql.Arguments[0], Is.EqualTo("a1"));
Expect(sql.Arguments[1], Is.EqualTo("a2"));
Expect(sql.Arguments[2], Is.EqualTo("a3"));
}

[Test]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public void invalid_arg_index()
{
var sql = new Sql();
sql.Append("arg @0 @1", "a0");
Expect(sql.SQL, Is.EqualTo("arg @0 @1"));
}

[Test]
[ExpectedException(typeof(ArgumentException))]
public void invalid_arg_name()
{
var sql = new Sql();
sql.Append("arg @name1 @name2", new { x = 1, y = 2 });
Expect(sql.SQL, Is.EqualTo("arg @0 @1"));
}

[Test]
public void append_instances()
{
var sql = new Sql("l0 @0", "a0");
var sql1 = new Sql("l1 @0", "a1");
var sql2 = new Sql("l2 @0", "a2");

Expect(sql.Append(sql1), Is.SameAs(sql));
Expect(sql.Append(sql2), Is.SameAs(sql));

Expect(sql.SQL, Is.EqualTo("l0 @0\nl1 @1\nl2 @2"));
Expect(sql.Arguments.Length, Is.EqualTo(3));
Expect(sql.Arguments[0], Is.EqualTo("a0"));
Expect(sql.Arguments[1], Is.EqualTo("a1"));
Expect(sql.Arguments[2], Is.EqualTo("a2"));
}
}

}
Loading

0 comments on commit 74a6220

Please sign in to comment.