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

Commit c6e5546

Browse files
committed
Add MetadataPrimaryKeyIssue
1 parent 46f3b81 commit c6e5546

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
using NUnit.Framework;
7+
using ServiceStack.OrmLite.Tests.Expression;
8+
9+
namespace ServiceStack.OrmLite.Tests.Issues
10+
{
11+
public class MetadataPrimaryKeyIssue : OrmLiteTestBase
12+
{
13+
[Test]
14+
public void Should_return_same_model_reference()
15+
{
16+
var model1 = typeof(LetterFrequency).GetModelMetadata();
17+
var model2 = typeof(LetterFrequency).GetModelMetadata();
18+
Assert.AreEqual(model1, model2);
19+
}
20+
21+
[Test]
22+
public void Should_return_same_model_reference_multi_threaded()
23+
{
24+
Task<ModelDefinition> task1 = System.Threading.Tasks.Task.Run(() => typeof(LetterFrequency).GetModelMetadata());
25+
Task<ModelDefinition> task2 = System.Threading.Tasks.Task.Run(() => typeof(LetterFrequency).GetModelMetadata());
26+
System.Threading.Tasks.Task.WaitAll(task1, task2);
27+
28+
Assert.AreEqual(task1.Result, task2.Result);
29+
}
30+
31+
[Test]
32+
public void Should_generate_select_statement()
33+
{
34+
Assert.AreEqual(SelectStatement(), SelectStatement());
35+
}
36+
37+
[Test]
38+
public void Should_generate_select_statement_multi_threaded()
39+
{
40+
Task<string> task1 = System.Threading.Tasks.Task.Run(() => SelectStatement());
41+
Task<string> task2 = System.Threading.Tasks.Task.Run(() => SelectStatement());
42+
System.Threading.Tasks.Task.WaitAll(task1, task2);
43+
44+
Assert.AreEqual(task1.Result, task2.Result);
45+
}
46+
47+
private string SelectStatement()
48+
{
49+
var pk = typeof(LetterFrequency).GetModelMetadata().PrimaryKey;
50+
using (var db = OpenDbConnection())
51+
{
52+
return db.From<LetterFrequency>().OrderByFields(pk).ToSelectStatement();
53+
}
54+
}
55+
}
56+
}

0 commit comments

Comments
 (0)