-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathQueryTests.cs
More file actions
95 lines (80 loc) · 2.79 KB
/
QueryTests.cs
File metadata and controls
95 lines (80 loc) · 2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
using NUnit.Framework;
using Xtensive.Orm.Localization.Tests.Model;
namespace Xtensive.Orm.Localization.Tests
{
[TestFixture]
public class QueryTests : LocalizationBaseTest
{
protected override void PopulateData()
{
using (var session = Domain.OpenSession())
using (var ts = session.OpenTransaction()) {
// populating database
var welcomePage = new Page(session);
welcomePage.Localizations[EnglishCulture].Title = EnglishTitle;
welcomePage.Localizations[EnglishCulture].Content = EnglishContent;
welcomePage.Localizations[SpanishCulture].Title = SpanishTitle;
welcomePage.Localizations[SpanishCulture].Content = SpanishContent;
ts.Complete();
}
}
[Test]
public void ImplicitJoinViaPreprocessorTest()
{
Thread.CurrentThread.CurrentCulture = EnglishCulture;
using (var session = Domain.OpenSession()) {
using (var ts = session.OpenTransaction()) {
string title = EnglishTitle;
var query = from p in session.Query.All<Page>()
where p.Title == title
select p;
Assert.AreEqual(1, query.Count());
ts.Complete();
}
}
}
[Test]
public void ExplicitJoinTest()
{
Thread.CurrentThread.CurrentCulture = EnglishCulture;
using (var session = Domain.OpenSession())
using (var ts = session.OpenTransaction()) {
using (new LocalizationScope(SpanishCulture)) {
var query = from p in session.Query.All<Page>()
join pl in session.Query.All<PageLocalization>()
on p equals pl.Target
where pl.CultureName == LocalizationContext.Current.CultureName && pl.Title == SpanishTitle
select p;
Assert.AreEqual(1, query.Count());
}
ts.Complete();
}
}
[Test]
public void QueryForLocalizationPairTest()
{
Thread.CurrentThread.CurrentCulture = EnglishCulture;
using (var session = Domain.OpenSession())
using (var ts = session.OpenTransaction()) {
var pairs = from pair in session.Query.All<Page, PageLocalization>()
where pair.Localization.Title == EnglishTitle
select pair.Target;
Assert.AreEqual(1, pairs.Count());
ts.Complete();
}
}
[Test]
public void UnknownCultureTest()
{
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("ru-RU");
using (var session = Domain.OpenSession())
using (var ts = session.OpenTransaction()) {
var query = from p in session.Query.All<Page>()
select p.Title;
Console.Write(query.First());
Assert.AreEqual(1, query.Count());
ts.Complete();
}
}
}
}