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

Commit 9d94e15

Browse files
committed
Merge pull request #364 from BruceCowan-AI/CleanUpTests
Clean up unit tests so they can be used for the Oracle provider and one ...
2 parents a8aeb31 + 7325bd3 commit 9d94e15

33 files changed

+219
-177
lines changed

src/ServiceStack.OrmLite/OrmLiteWriteExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -371,7 +371,7 @@ internal static int Update<T>(this IDbCommand dbCmd, T obj)
371371
OrmLiteConfig.UpdateFilter(dbCmd, obj);
372372

373373
OrmLiteConfig.DialectProvider.PrepareParameterizedUpdateStatement<T>(dbCmd);
374-
if (dbCmd.CommandText == null)
374+
if (string.IsNullOrEmpty(dbCmd.CommandText))
375375
return 0;
376376

377377
OrmLiteConfig.DialectProvider.SetParameterValues<T>(dbCmd, obj);
@@ -397,7 +397,7 @@ internal static int UpdateAll<T>(this IDbCommand dbCmd, IEnumerable<T> objs)
397397
var dialectProvider = OrmLiteConfig.DialectProvider;
398398

399399
dialectProvider.PrepareParameterizedUpdateStatement<T>(dbCmd);
400-
if (dbCmd.CommandText == null)
400+
if (string.IsNullOrEmpty(dbCmd.CommandText))
401401
return 0;
402402

403403
foreach (var obj in objs)

tests/ServiceStack.OrmLite.Tests/ApiSqlServerTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public class ApiSqlServerTests
1515
[SetUp]
1616
public void SetUp()
1717
{
18+
SuppressIfOracle("SQL Server tests");
1819
db = CreateSqlServerDbFactory().OpenDbConnection();
1920
db.DropAndCreateTable<Person>();
2021
db.DropAndCreateTable<PersonWithAutoId>();

tests/ServiceStack.OrmLite.Tests/CustomSqlTests.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,10 @@ public void Can_create_field_with_custom_sql()
7575
var createTableSql = db.GetLastSql();
7676
createTableSql.Print();
7777

78-
Assert.That(createTableSql, Is.StringContaining("\"CharColumn\" CHAR(20) null"));
79-
Assert.That(createTableSql, Is.StringContaining("\"DecimalColumn\" DECIMAL(18,4) null"));
78+
Assert.That(createTableSql, Is.StringContaining("\"CharColumn\" CHAR(20) null")
79+
.Or.StringContaining("CharColumn CHAR(20) null"));
80+
Assert.That(createTableSql, Is.StringContaining("\"DecimalColumn\" DECIMAL(18,4) null")
81+
.Or.StringContaining("DecimalColumn DECIMAL(18,4) null"));
8082
}
8183
}
8284

@@ -100,6 +102,8 @@ public void Does_execute_CustomSql_before_table_created()
100102
[Test]
101103
public void Does_execute_CustomSql_after_table_created()
102104
{
105+
SuppressIfOracle("For Oracle need wrap multiple SQL statements in an anonymous block");
106+
103107
using (var db = OpenDbConnection())
104108
{
105109
db.DropAndCreateTable<ModelWithSeedDataSql>();
@@ -113,6 +117,8 @@ public void Does_execute_CustomSql_after_table_created()
113117
[Test]
114118
public void Does_execute_CustomSql_after_table_created_using_dynamic_attribute()
115119
{
120+
SuppressIfOracle("For Oracle need wrap multiple SQL statements in an anonymous block");
121+
116122
typeof(DynamicAttributeSeedData)
117123
.AddAttributes(new PostCreateTableAttribute(
118124
"INSERT INTO DynamicAttributeSeedData (Name) VALUES ('Foo');" +

tests/ServiceStack.OrmLite.Tests/DateTimeOffsetTests.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55

66
namespace ServiceStack.OrmLite.Tests
77
{
8-
internal class DateTimeOffsetTests : OrmLiteTestBase
8+
public class DateTimeOffsetTests : OrmLiteTestBase
99
{
1010
private IDbConnection db;
1111

1212
[TestFixtureSetUp]
13-
public void TestFixtureSetUp()
13+
public new void TestFixtureSetUp()
1414
{
1515
db = base.OpenDbConnection();
1616
}
@@ -45,29 +45,32 @@ public void EnsureDateTimeOffsetSaves()
4545
{
4646
var dateTime = new DateTimeOffset(2012, 1, 30, 1, 1, 1, new TimeSpan(5, 0, 0));
4747
var x = InsertAndSelectDateTimeOffset<DateTimeOffsetObject, DateTimeOffset>(db, dateTime);
48-
Assert.AreEqual(x.Test, dateTime);
48+
Assert.That(x.Test, Is.EqualTo(dateTime));
4949
}
5050

5151
[Test]
5252
public void EnsureNullableDateTimeOffsetSaves()
5353
{
5454
DateTimeOffset? dateTime = new DateTimeOffset(2012, 1, 30, 1, 1, 1, new TimeSpan(5, 0, 0));
5555
var x = InsertAndSelectDateTimeOffset<NullableDateTimeOffsetObject, DateTimeOffset?>(db, dateTime);
56-
Assert.AreEqual(x.Test, dateTime);
56+
Assert.That(x.Test, Is.EqualTo(dateTime));
5757
}
5858

5959
private class DateTimeOffsetObject : IDateTimeOffsetObject<DateTimeOffset>
6060
{
61+
public int Id { get; set; }
6162
public DateTimeOffset Test { get; set; }
6263
}
6364

6465
private class NullableDateTimeOffsetObject : IDateTimeOffsetObject<DateTimeOffset?>
6566
{
67+
public int Id { get; set; }
6668
public DateTimeOffset? Test { get; set; }
6769
}
6870

6971
private interface IDateTimeOffsetObject<T>
7072
{
73+
int Id { get; set; }
7174
T Test { get; set; }
7275
}
7376
}

tests/ServiceStack.OrmLite.Tests/EnumTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public void Creates_int_field_for_enum_flags()
133133

134134
db.GetLastSql().Print();
135135

136-
Assert.That(db.GetLastSql(), Is.StringContaining("\"Flags\" INT"));
136+
Assert.That(db.GetLastSql(), Is.StringContaining("\"Flags\" INT").Or.StringContaining("Flags INT"));
137137
}
138138
}
139139

@@ -149,7 +149,7 @@ public void Updates_enum_flags_with_int_value()
149149
db.Insert(new TypeWithFlagsEnum { Id = 3, Flags = FlagsEnum.FlagOne | FlagsEnum.FlagTwo });
150150

151151
db.Update(new TypeWithFlagsEnum { Id = 1, Flags = FlagsEnum.FlagThree });
152-
Assert.That(db.GetLastSql(), Is.StringContaining("=@Flags"));
152+
Assert.That(db.GetLastSql(), Is.StringContaining("=@Flags").Or.StringContaining("=:Flags"));
153153
db.GetLastSql().Print();
154154

155155
db.UpdateOnly(new TypeWithFlagsEnum { Id = 1, Flags = FlagsEnum.FlagThree }, q => q.Flags);

tests/ServiceStack.OrmLite.Tests/Expression/ExpressionsTestBase.cs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,5 @@ protected void EstablishContext(int numberOfRandomObjects, params TestType[] obj
5959
}
6060
}
6161
}
62-
63-
protected override string GetFileConnectionString()
64-
{
65-
var connectionString = Config.SqliteFileDir + this.GetType().Name + ".sqlite";
66-
if (File.Exists(connectionString))
67-
File.Delete(connectionString);
68-
69-
return connectionString;
70-
}
7162
}
7263
}

tests/ServiceStack.OrmLite.Tests/JoinSqlBuilderTests.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
namespace ServiceStack.OrmLite.Tests
66
{
7-
[TestFixture ()]
8-
public class JoinSqlBuilderTests
7+
[TestFixture]
8+
public class JoinSqlBuilderTests : OrmLiteTestBase
99
{
1010
[Alias("Users")]
1111
public class WithAliasUser
@@ -50,9 +50,11 @@ public class Address
5050
}
5151

5252

53-
[Test ()]
53+
[Test]
5454
public void FieldNameLeftJoinTest ()
5555
{
56+
SuppressIfOracle("These assert comparisons don't work with Oracle provider because it doesn't quote every name");
57+
5658
var joinQuery = new JoinSqlBuilder<User, User> ().LeftJoin<User, Address> (x => x.Id, x => x.UserId).ToSql ();
5759
var expected = "SELECT \"User\".\"Id\",\"User\".\"Name\",\"User\".\"Age\" \nFROM \"User\" \n LEFT OUTER JOIN \"Address\" ON \"User\".\"Id\" = \"Address\".\"UserId\" \n";
5860

@@ -71,10 +73,12 @@ public void FieldNameLeftJoinTest ()
7173
Assert.AreEqual (expected, joinQuery);
7274
}
7375

74-
[Test ()]
76+
[Test]
7577
public void DoubleWhereLeftJoinTest ()
7678
{
77-
var joinQuery = new JoinSqlBuilder<User, User> ().LeftJoin<User, WithAliasAddress> (x => x.Id, x => x.UserId
79+
SuppressIfOracle("These assert comparisons don't work with Oracle provider because it doesn't quote every name");
80+
81+
var joinQuery = new JoinSqlBuilder<User, User>().LeftJoin<User, WithAliasAddress>(x => x.Id, x => x.UserId
7882
, sourceWhere: x => x.Age > 18
7983
, destinationWhere: x => x.Country == "Italy").ToSql ();
8084
var expected = "SELECT \"User\".\"Id\",\"User\".\"Name\",\"User\".\"Age\" \nFROM \"User\" \n LEFT OUTER JOIN \"Addresses\" ON \"User\".\"Id\" = \"Addresses\".\"UserId\" \nWHERE (\"User\".\"Age\" > 18) AND (\"Addresses\".\"Countryalias\" = 'Italy') \n";

tests/ServiceStack.OrmLite.Tests/LoadReferencesTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ public void TestFixtureTearDown()
7474
[Test]
7575
public void Does_not_include_complex_reference_type_in_sql()
7676
{
77+
SuppressIfOracle("These assert comparisons don't work with Oracle provider because it doesn't quote every name");
78+
7779
db.Select<Customer>();
7880
Assert.That(db.GetLastSql(), Is.EqualTo("SELECT \"Id\", \"Name\" FROM \"Customer\""));
7981
}

tests/ServiceStack.OrmLite.Tests/LocalizationTests.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,17 @@
33
using System.Threading;
44
using NUnit.Framework;
55
using ServiceStack.DataAnnotations;
6-
using ServiceStack.OrmLite.Sqlite;
7-
using ServiceStack.Text;
86

97
namespace ServiceStack.OrmLite.Tests
108
{
119
[TestFixture]
12-
public class LocalizationTests
13-
: OrmLiteTestBase
10+
public class LocalizationTests : OrmLiteTestBase
1411
{
1512
private readonly CultureInfo CurrentCulture = Thread.CurrentThread.CurrentCulture;
1613
private readonly CultureInfo CurrentUICulture = Thread.CurrentThread.CurrentUICulture;
1714

1815
[SetUp]
19-
public void TestFixtureSetUp()
16+
public void TestSetUp()
2017
{
2118
Thread.CurrentThread.CurrentCulture = new CultureInfo("vi-VN");
2219
Thread.CurrentThread.CurrentUICulture = new CultureInfo("vi-VN");

tests/ServiceStack.OrmLite.Tests/MockAllApiTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,8 @@ public void Can_hijack_References_Apis()
405405
i += 2; db.Save(customer);
406406
Assert.That(sqlStatements.Count, Is.EqualTo(i));
407407

408+
SuppressIfOracle("This seems wrong here as the save actually goes through to the database in Oracle to get the next number from the sequence");
409+
408410
i += 1; db.SaveReferences(customer, customer.PrimaryAddress);
409411
Assert.That(sqlStatements.Count, Is.EqualTo(i));
410412

0 commit comments

Comments
 (0)