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

Commit 75b7831

Browse files
committed
Merge pull request #421 from jeffgabhart/issue/pg-tests
Fixes postgresql tests
2 parents 6cb4f73 + 4b85c65 commit 75b7831

17 files changed

+1032
-1013
lines changed

src/ServiceStack.OrmLite.PostgreSQL.Tests/CreatePostgreSQLTablesTests.cs

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,26 @@
22
using NUnit.Framework;
33
using ServiceStack.DataAnnotations;
44
using ServiceStack.OrmLite.Tests;
5-
using ServiceStack.Text;
65

76
namespace ServiceStack.OrmLite.PostgreSQL.Tests
87
{
98
[TestFixture]
109
public class CreatePostgreSQLTablesTests : OrmLiteTestBase
1110
{
12-
13-
14-
[Test]
15-
public void DropAndCreateTable_DropsTableAndCreatesTable()
16-
{
17-
using (var db = OpenDbConnection())
18-
{
19-
db.DropTable<TestData>();
20-
db.CreateTable<TestData>();
21-
db.Insert<TestData>(new TestData { Id = Guid.NewGuid() });
22-
db.DropAndCreateTable<TestData>();
23-
db.Insert<TestData>(new TestData { Id = Guid.NewGuid() });
24-
}
25-
}
11+
public CreatePostgreSQLTablesTests() : base(Dialect.PostgreSql) { }
12+
13+
[Test]
14+
public void DropAndCreateTable_DropsTableAndCreatesTable()
15+
{
16+
using (var db = OpenDbConnection())
17+
{
18+
db.DropTable<TestData>();
19+
db.CreateTable<TestData>();
20+
db.Insert<TestData>(new TestData { Id = Guid.NewGuid() });
21+
db.DropAndCreateTable<TestData>();
22+
db.Insert<TestData>(new TestData { Id = Guid.NewGuid() });
23+
}
24+
}
2625

2726

2827
[Test]
@@ -79,6 +78,7 @@ public void can_create_same_table_in_multiple_schemas_based_on_conn_string_searc
7978
dbS1.DropTable<CreatePostgreSQLTablesTests_dummy_table>();
8079
dbS1.CreateTable<CreatePostgreSQLTablesTests_dummy_table>();
8180
Assert.That(dbS1.Count<CreatePostgreSQLTablesTests_dummy_table>(), Is.EqualTo(0));
81+
dbS1.DropTable<CreatePostgreSQLTablesTests_dummy_table>();
8282
}
8383
builder.SearchPath = schema2;
8484

@@ -87,19 +87,20 @@ public void can_create_same_table_in_multiple_schemas_based_on_conn_string_searc
8787
dbS2.DropTable<CreatePostgreSQLTablesTests_dummy_table>();
8888
dbS2.CreateTable<CreatePostgreSQLTablesTests_dummy_table>();
8989
Assert.That(dbS2.Count<CreatePostgreSQLTablesTests_dummy_table>(), Is.EqualTo(0));
90+
dbS2.DropTable<CreatePostgreSQLTablesTests_dummy_table>();
9091
}
9192

9293
}
9394

94-
public class TestData
95-
{
96-
[PrimaryKey]
97-
public Guid Id { get; set; }
95+
public class TestData
96+
{
97+
[PrimaryKey]
98+
public Guid Id { get; set; }
9899

99-
public string Name { get; set; }
100+
public string Name { get; set; }
100101

101-
public string Surname { get; set; }
102-
}
102+
public string Surname { get; set; }
103+
}
103104

104105
private void CreateSchemaIfNotExists(System.Data.IDbConnection db, string name)
105106
{

src/ServiceStack.OrmLite.PostgreSQL.Tests/EnumTests.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ namespace ServiceStack.OrmLite.PostgreSQL.Tests
66
{
77
public class EnumTests : OrmLiteTestBase
88
{
9+
public EnumTests() : base(Dialect.PostgreSql) { }
10+
911
[Test]
1012
public void CanCreateTable()
1113
{
@@ -62,7 +64,7 @@ public void CanQueryByEnumValue_using_select_with_string()
6264
con.Save(new TypeWithEnum { Id = 2, EnumValue = SomeEnum.Value1 });
6365
con.Save(new TypeWithEnum { Id = 3, EnumValue = SomeEnum.Value2 });
6466

65-
var target = con.SelectFmt<TypeWithEnum>("\"EnumValue\" = {0}", SomeEnum.Value1);
67+
var target = con.SelectFmt<TypeWithEnum>("\"enum_value\" = {0}", SomeEnum.Value1);
6668

6769
Assert.AreEqual(2, target.Count());
6870
}

src/ServiceStack.OrmLite.PostgreSQL.Tests/Expressions/Author.cs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,26 @@
33

44
namespace ServiceStack.OrmLite.PostgreSQL.Tests.Expressions
55
{
6-
public class Author
7-
{
8-
public Author(){}
9-
[AutoIncrement]
10-
[Alias("AuthorID")]
11-
public Int32 Id { get; set;}
12-
[Index(Unique = true)]
13-
[StringLength(40)]
14-
public string Name { get; set;}
15-
public DateTime Birthday { get; set;}
16-
public DateTime ? LastActivity { get; set;}
17-
public Decimal? Earnings { get; set;}
18-
public bool Active { get; set; }
19-
[StringLength(80)]
20-
[Alias("JobCity")]
21-
public string City { get; set;}
22-
[StringLength(80)]
23-
[Alias("Comment")]
24-
public string Comments { get; set;}
25-
public Int16 Rate{ get; set;}
26-
}
6+
public class Author
7+
{
8+
public Author(){}
9+
[AutoIncrement]
10+
[Alias("AuthorID")]
11+
public Int32 Id { get; set;}
12+
[Index(Unique = true)]
13+
[StringLength(40)]
14+
public string Name { get; set;}
15+
public DateTime Birthday { get; set;}
16+
public DateTime ? LastActivity { get; set;}
17+
public Decimal? Earnings { get; set;}
18+
public bool Active { get; set; }
19+
[StringLength(80)]
20+
[Alias("JobCity")]
21+
public string City { get; set;}
22+
[StringLength(80)]
23+
[Alias("Comment")]
24+
public string Comments { get; set;}
25+
public Int16 Rate{ get; set;}
26+
}
2727
}
2828

src/ServiceStack.OrmLite.PostgreSQL.Tests/Expressions/AuthorUseCase.cs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class AuthorUseCase : OrmLiteTestBase
1010
{
1111
private List<Author> authors;
1212

13-
public AuthorUseCase()
13+
public AuthorUseCase() : base(Dialect.PostgreSql)
1414
{
1515
authors = new List<Author>();
1616
authors.Add(new Author() { Name = "Demis Bellot", Birthday = DateTime.Today.AddYears(-20), Active = true, Earnings = 99.9m, Comments = "CSharp books", Rate = 10, City = "London" });
@@ -65,7 +65,7 @@ public void AuthorUsesCases()
6565
expected = 6;
6666
//Sql.In can take params object[]
6767
var city = "Berlin";
68-
ev.Where().Where(rn => Sql.In(rn.City, "London", "Madrid", city));
68+
ev.Where().Where(rn => Sql.In(rn.City, "London", "Madrid", city));
6969
result = db.Select(ev);
7070
Assert.AreEqual(expected, result.Count);
7171
result = db.Select<Author>(rn => Sql.In(rn.City, new[] { "London", "Madrid", "Berlin" }));
@@ -78,7 +78,7 @@ public void AuthorUsesCases()
7878
List<Object> cities = new List<Object>();
7979
cities.Add(city);
8080
cities.Add("Cartagena");
81-
ev.Where().Where(rn => Sql.In(rn.City, cities));
81+
ev.Where().Where(rn => Sql.In(rn.City, cities));
8282
result = db.Select(ev);
8383
Assert.AreEqual(expected, result.Count);
8484
result = db.Select<Author>(rn => Sql.In(rn.City, "Bogota", "Cartagena"));
@@ -87,7 +87,7 @@ public void AuthorUsesCases()
8787

8888
// select authors which name starts with A
8989
expected = 3;
90-
ev.Where().Where(rn => rn.Name.StartsWith("A"));
90+
ev.Where().Where(rn => rn.Name.StartsWith("A"));
9191
result = db.Select(ev);
9292
Assert.AreEqual(expected, result.Count);
9393
result = db.Select<Author>(rn => rn.Name.StartsWith("A"));
@@ -96,7 +96,7 @@ public void AuthorUsesCases()
9696
// select authors which name ends with Garzon o GARZON o garzon ( no case sensitive )
9797
expected = 3;
9898
var name = "GARZON";
99-
ev.Where().Where(rn => rn.Name.ToUpper().EndsWith(name));
99+
ev.Where().Where(rn => rn.Name.ToUpper().EndsWith(name));
100100
result = db.Select(ev);
101101
Assert.AreEqual(expected, result.Count);
102102
result = db.Select<Author>(rn => rn.Name.ToUpper().EndsWith(name));
@@ -108,7 +108,7 @@ public void AuthorUsesCases()
108108
//An underscore ("_") in the LIKE pattern matches any single character in the string.
109109
//Any other character matches itself or its lower/upper case equivalent (i.e. case-insensitive matching).
110110
expected = 3;
111-
ev.Where().Where(rn => rn.Name.EndsWith("garzon"));
111+
ev.Where().Where(rn => rn.Name.EndsWith("garzon"));
112112
result = db.Select(ev);
113113
Assert.AreEqual(expected, result.Count);
114114
result = db.Select<Author>(rn => rn.Name.EndsWith("garzon"));
@@ -118,7 +118,7 @@ public void AuthorUsesCases()
118118
// select authors which name contains Benedict
119119
expected = 2;
120120
name = "Benedict";
121-
ev.Where().Where(rn => rn.Name.Contains(name));
121+
ev.Where().Where(rn => rn.Name.Contains(name));
122122
result = db.Select(ev);
123123
Assert.AreEqual(expected, result.Count);
124124
result = db.Select<Author>(rn => rn.Name.Contains("Benedict"));
@@ -131,7 +131,7 @@ public void AuthorUsesCases()
131131
// select authors with Earnings <= 50
132132
expected = 3;
133133
var earnings = 50;
134-
ev.Where().Where(rn => rn.Earnings <= earnings);
134+
ev.Where().Where(rn => rn.Earnings <= earnings);
135135
result = db.Select(ev);
136136
Assert.AreEqual(expected, result.Count);
137137
result = db.Select<Author>(rn => rn.Earnings <= 50);
@@ -140,7 +140,7 @@ public void AuthorUsesCases()
140140
// select authors with Rate = 10 and city=Mexio
141141
expected = 1;
142142
city = "Mexico";
143-
ev.Where().Where(rn => rn.Rate == 10 && rn.City == city);
143+
ev.Where().Where(rn => rn.Rate == 10 && rn.City == city);
144144
result = db.Select(ev);
145145
Assert.AreEqual(expected, result.Count);
146146
result = db.Select<Author>(rn => rn.Rate == 10 && rn.City == "Mexico");
@@ -154,7 +154,7 @@ public void AuthorUsesCases()
154154
// set Active=false where rate =0
155155
expected = 2;
156156
var rate = 0;
157-
ev.Where().Where(rn => rn.Rate == rate).Update(rn => rn.Active);
157+
ev.Where().Where(rn => rn.Rate == rate).Update(rn => rn.Active);
158158
var rows = db.UpdateOnly(new Author() { Active = false }, ev);
159159
Assert.AreEqual(expected, rows);
160160

@@ -163,13 +163,13 @@ public void AuthorUsesCases()
163163
ev.Insert(rn => new { rn.Id, rn.Name, rn.Birthday, rn.Active, rn.Rate });
164164
db.InsertOnly(new Author() { Active = false, Rate = 0, Name = "Victor Grozny", Birthday = DateTime.Today.AddYears(-18) }, ev);
165165
db.InsertOnly(new Author() { Active = false, Rate = 0, Name = "Ivan Chorny", Birthday = DateTime.Today.AddYears(-19) }, ev);
166-
ev.Where().Where(rn => !rn.Active);
166+
ev.Where().Where(rn => !rn.Active);
167167
result = db.Select(ev);
168168
Assert.AreEqual(expected, result.Count);
169169

170170
//update comment for City == null
171171
expected = 2;
172-
ev.Where().Where(rn => rn.City == null).Update(rn => rn.Comments);
172+
ev.Where().Where(rn => rn.City == null).Update(rn => rn.Comments);
173173
rows = db.UpdateOnly(new Author() { Comments = "No comments" }, ev);
174174
Assert.AreEqual(expected, rows);
175175

@@ -351,12 +351,12 @@ public void AuthorUsesCases()
351351
var rr = db.Single<Author>(rn => rn.Name == "Luis garzon");
352352
rr.City = "Madrid";
353353
rr.Comments = "Updated";
354-
ev.Where().Where(r => r.Id == rr.Id); // if omit, then all records will be updated
354+
ev.Where().Where(r => r.Id == rr.Id); // if omit, then all records will be updated
355355
rows = db.UpdateOnly(rr, ev); // == dbCmd.Update(rr) but it returns void
356356
Assert.AreEqual(expected, rows);
357357

358358
expected = 0;
359-
ev.Where().Where(r => r.City == "Ciudad Gotica");
359+
ev.Where().Where(r => r.City == "Ciudad Gotica");
360360
rows = db.UpdateOnly(rr, ev);
361361
Assert.AreEqual(expected, rows);
362362

src/ServiceStack.OrmLite.PostgreSQL.Tests/Expressions/ExpressionsTestBase.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ namespace ServiceStack.OrmLite.PostgreSQL.Tests.Expressions
77
{
88
public class ExpressionsTestBase : OrmLiteTestBase
99
{
10+
public ExpressionsTestBase() : base(Dialect.PostgreSql) { }
11+
1012
[SetUp]
1113
public void Setup()
1214
{

src/ServiceStack.OrmLite.PostgreSQL.Tests/Expressions/OrmLiteCountTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ namespace ServiceStack.OrmLite.PostgreSQL.Tests.Expressions
1212
[TestFixture]
1313
public class OrmLiteCountTests : OrmLiteTestBase
1414
{
15+
public OrmLiteCountTests() : base(Dialect.PostgreSql) { }
16+
1517
[Test]
1618
public void CanDoCountWithInterface()
1719
{

src/ServiceStack.OrmLite.PostgreSQL.Tests/ForeignKeyAttributeTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ namespace ServiceStack.OrmLite.PostgreSQL.Tests
77
[TestFixture]
88
public class ForeignKeyAttributeTests : OrmLiteTestBase
99
{
10+
public ForeignKeyAttributeTests() : base(Dialect.PostgreSql) { }
11+
1012
[TestFixtureSetUp]
1113
public void Setup()
1214
{

0 commit comments

Comments
 (0)