Skip to content

Commit 675ec72

Browse files
Merge pull request #621 from hazzik/NH-4004
NH-4004 - Restrict tests running on SqlServer CE
2 parents 6d55031 + c3526ee commit 675ec72

File tree

78 files changed

+973
-25049
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+973
-25049
lines changed

lib/teamcity/sqlServerCe/NHibernate.Test.last-results.xml

Lines changed: 0 additions & 24510 deletions
This file was deleted.

src/NHibernate.Test/CompositeId/CompositeIdFixture.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections;
3+
using NHibernate.Dialect;
34
using NUnit.Framework;
45

56
namespace NHibernate.Test.CompositeId
@@ -29,6 +30,12 @@ protected override string CacheConcurrencyStrategy
2930
get { return null; }
3031
}
3132

33+
protected override bool AppliesTo(Dialect.Dialect dialect)
34+
{
35+
// Order uses a scalar sub-select formula.
36+
return Dialect.SupportsScalarSubSelects;
37+
}
38+
3239
[Test]
3340
public void CompositeIds()
3441
{

src/NHibernate.Test/Criteria/CriteriaQueryTest.cs

Lines changed: 159 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,9 @@ public void ScrollCriteria()
112112
[Test]
113113
public void AllowToSetLimitOnSubqueries()
114114
{
115+
if (!Dialect.SupportsScalarSubSelects)
116+
Assert.Ignore(Dialect.GetType().Name + " does not support scalar sub-queries");
117+
115118
using (ISession session = OpenSession())
116119
{
117120
DetachedCriteria dc = DetachedCriteria.For(typeof(Student))
@@ -129,6 +132,9 @@ public void AllowToSetLimitOnSubqueries()
129132
[Test]
130133
public void TestSubcriteriaBeingNull()
131134
{
135+
if (!Dialect.SupportsScalarSubSelects)
136+
Assert.Ignore(Dialect.GetType().Name + " does not support scalar sub-queries");
137+
132138
ISession session = OpenSession();
133139
ITransaction t = session.BeginTransaction();
134140

@@ -205,37 +211,40 @@ public void Subselect()
205211
.Add(Subqueries.In("Gavin King", dc))
206212
.List();
207213

208-
DetachedCriteria dc2 = DetachedCriteria.For(typeof(Student), "st")
209-
.Add(Property.ForName("st.StudentNumber").EqProperty("e.StudentNumber"))
210-
.SetProjection(Property.ForName("Name"));
214+
if (Dialect.SupportsScalarSubSelects)
215+
{
216+
DetachedCriteria dc2 = DetachedCriteria.For(typeof(Student), "st")
217+
.Add(Property.ForName("st.StudentNumber").EqProperty("e.StudentNumber"))
218+
.SetProjection(Property.ForName("Name"));
211219

212-
session.CreateCriteria(typeof(Enrolment), "e")
213-
.Add(Subqueries.Eq("Gavin King", dc2))
214-
.List();
220+
session.CreateCriteria(typeof(Enrolment), "e")
221+
.Add(Subqueries.Eq("Gavin King", dc2))
222+
.List();
215223

216-
DetachedCriteria dc3 = DetachedCriteria.For(typeof(Student), "st")
217-
.CreateCriteria("Enrolments")
218-
.CreateCriteria("Course")
219-
.Add(Property.ForName("Description").Eq("Hibernate Training"))
220-
.SetProjection(Property.ForName("st.Name"));
224+
DetachedCriteria dc3 = DetachedCriteria.For(typeof(Student), "st")
225+
.CreateCriteria("Enrolments")
226+
.CreateCriteria("Course")
227+
.Add(Property.ForName("Description").Eq("Hibernate Training"))
228+
.SetProjection(Property.ForName("st.Name"));
221229

222-
session.CreateCriteria(typeof(Enrolment), "e")
223-
.Add(Subqueries.Eq("Gavin King", dc3))
224-
.List();
230+
session.CreateCriteria(typeof(Enrolment), "e")
231+
.Add(Subqueries.Eq("Gavin King", dc3))
232+
.List();
225233

226-
DetachedCriteria courseCriteria = DetachedCriteria.For(typeof(Course))
227-
.Add(Property.ForName("Description").Eq("Hibernate Training"))
228-
.SetProjection(Projections.Property("CourseCode"));
234+
DetachedCriteria courseCriteria = DetachedCriteria.For(typeof(Course))
235+
.Add(Property.ForName("Description").Eq("Hibernate Training"))
236+
.SetProjection(Projections.Property("CourseCode"));
229237

230-
DetachedCriteria enrolmentCriteria = DetachedCriteria.For(typeof(Enrolment))
231-
.Add(Property.ForName("CourseCode").Eq(courseCriteria))
232-
.SetProjection(Projections.Property("CourseCode"));
238+
DetachedCriteria enrolmentCriteria = DetachedCriteria.For(typeof(Enrolment))
239+
.Add(Property.ForName("CourseCode").Eq(courseCriteria))
240+
.SetProjection(Projections.Property("CourseCode"));
233241

234-
DetachedCriteria studentCriteria = DetachedCriteria.For(typeof(Student))
235-
.Add(Subqueries.Exists(enrolmentCriteria));
242+
DetachedCriteria studentCriteria = DetachedCriteria.For(typeof(Student))
243+
.Add(Subqueries.Exists(enrolmentCriteria));
236244

237-
object result = studentCriteria.GetExecutableCriteria(session).UniqueResult();
238-
Assert.AreSame(gavin, result);
245+
object result = studentCriteria.GetExecutableCriteria(session).UniqueResult();
246+
Assert.AreSame(gavin, result);
247+
}
239248

240249
session.Delete(enrolment2);
241250
session.Delete(gavin);
@@ -935,10 +944,13 @@ public void ProjectionsTest()
935944

936945
//s.flush();
937946

938-
int count = (int)s.CreateCriteria(typeof(Enrolment))
939-
.SetProjection(Projections.Count("StudentNumber").SetDistinct())
940-
.UniqueResult();
941-
Assert.AreEqual(2, count);
947+
if (TestDialect.SupportsCountDistinct)
948+
{
949+
int count = (int) s.CreateCriteria(typeof(Enrolment))
950+
.SetProjection(Projections.Count("StudentNumber").SetDistinct())
951+
.UniqueResult();
952+
Assert.AreEqual(2, count);
953+
}
942954

943955
object obj = s.CreateCriteria(typeof(Enrolment))
944956
.SetProjection(Projections.ProjectionList()
@@ -1049,17 +1061,20 @@ public void ProjectionsTest()
10491061
.UniqueResult();
10501062
Assert.AreEqual(typeof(Int64), r.GetType());
10511063

1052-
IList list = s.CreateCriteria(typeof(Enrolment))
1053-
.CreateAlias("Student", "st")
1054-
.CreateAlias("Course", "co")
1055-
.SetProjection(Projections.ProjectionList()
1056-
.Add(Projections.GroupProperty("co.CourseCode"))
1057-
.Add(Projections.Count("st.StudentNumber").SetDistinct())
1058-
.Add(Projections.GroupProperty("Year"))
1059-
)
1060-
.List();
1064+
if (TestDialect.SupportsCountDistinct)
1065+
{
1066+
IList list = s.CreateCriteria(typeof(Enrolment))
1067+
.CreateAlias("Student", "st")
1068+
.CreateAlias("Course", "co")
1069+
.SetProjection(Projections.ProjectionList()
1070+
.Add(Projections.GroupProperty("co.CourseCode"))
1071+
.Add(Projections.Count("st.StudentNumber").SetDistinct())
1072+
.Add(Projections.GroupProperty("Year"))
1073+
)
1074+
.List();
10611075

1062-
Assert.AreEqual(2, list.Count);
1076+
Assert.AreEqual(2, list.Count);
1077+
}
10631078

10641079
object g = s.CreateCriteria(typeof(Student))
10651080
.Add(Expression.IdEq(667L))
@@ -1119,11 +1134,14 @@ public void CloningProjectionsTest()
11191134

11201135
//s.flush();
11211136

1122-
ICriteria criteriaToBeCloned = s.CreateCriteria(typeof(Enrolment))
1123-
.SetProjection(Projections.Count("StudentNumber").SetDistinct());
1124-
int count = (int)CriteriaTransformer.Clone(criteriaToBeCloned)
1125-
.UniqueResult();
1126-
Assert.AreEqual(2, count);
1137+
if (TestDialect.SupportsCountDistinct)
1138+
{
1139+
ICriteria criteriaToBeCloned = s.CreateCriteria(typeof(Enrolment))
1140+
.SetProjection(Projections.Count("StudentNumber").SetDistinct());
1141+
int count = (int)CriteriaTransformer.Clone(criteriaToBeCloned)
1142+
.UniqueResult();
1143+
Assert.AreEqual(2, count);
1144+
}
11271145

11281146
ICriteria criteriaToClone = s.CreateCriteria(typeof(Enrolment))
11291147
.SetProjection(Projections.ProjectionList()
@@ -1232,18 +1250,21 @@ public void CloningProjectionsTest()
12321250

12331251
Assert.AreEqual(7, array.Length);
12341252

1235-
ICriteria criteriaToClone5 = s.CreateCriteria(typeof(Enrolment))
1236-
.CreateAlias("Student", "st")
1237-
.CreateAlias("Course", "co")
1238-
.SetProjection(Projections.ProjectionList()
1239-
.Add(Projections.GroupProperty("co.CourseCode"))
1240-
.Add(Projections.Count("st.StudentNumber").SetDistinct())
1241-
.Add(Projections.GroupProperty("Year"))
1242-
);
1243-
IList list = CriteriaTransformer.Clone(criteriaToClone5)
1244-
.List();
1253+
if (TestDialect.SupportsCountDistinct)
1254+
{
1255+
ICriteria criteriaToClone5 = s.CreateCriteria(typeof(Enrolment))
1256+
.CreateAlias("Student", "st")
1257+
.CreateAlias("Course", "co")
1258+
.SetProjection(Projections.ProjectionList()
1259+
.Add(Projections.GroupProperty("co.CourseCode"))
1260+
.Add(Projections.Count("st.StudentNumber").SetDistinct())
1261+
.Add(Projections.GroupProperty("Year"))
1262+
);
1263+
IList list = CriteriaTransformer.Clone(criteriaToClone5)
1264+
.List();
12451265

1246-
Assert.AreEqual(2, list.Count);
1266+
Assert.AreEqual(2, list.Count);
1267+
}
12471268

12481269
ICriteria criteriaToClone6 = s.CreateCriteria(typeof(Student))
12491270
.Add(Expression.IdEq(667L))
@@ -1383,13 +1404,17 @@ public void ProjectionsUsingProperty()
13831404
Assert.That(aResult[1], Is.InstanceOf<string>());
13841405
Assert.That(aResult[2], Is.InstanceOf<CityState>());
13851406
Assert.That(aResult[3], Is.InstanceOf<Course>());
1386-
1407+
13871408
// Subtest #5
1388-
int count = (int)s.CreateCriteria(typeof(Enrolment))
1389-
.SetProjection(Property.ForName("StudentNumber").Count().SetDistinct())
1390-
.UniqueResult();
1391-
1392-
Assert.AreEqual(2, count);
1409+
1410+
if (TestDialect.SupportsCountDistinct)
1411+
{
1412+
int count = (int) s.CreateCriteria(typeof(Enrolment))
1413+
.SetProjection(Property.ForName("StudentNumber").Count().SetDistinct())
1414+
.UniqueResult();
1415+
1416+
Assert.AreEqual(2, count);
1417+
}
13931418

13941419
// Subtest #6
13951420
object obj = s.CreateCriteria(typeof(Enrolment))
@@ -1524,48 +1549,53 @@ public void ProjectionsUsingProperty()
15241549

15251550
Assert.AreEqual(7, array.Length);
15261551

1527-
// Subtest #15
1528-
IList list = s.CreateCriteria(typeof(Enrolment))
1529-
.CreateAlias("Student", "st")
1530-
.CreateAlias("Course", "co")
1531-
.SetProjection(Projections.ProjectionList()
1532-
.Add(Property.ForName("co.CourseCode").Group())
1533-
.Add(Property.ForName("st.StudentNumber").Count().SetDistinct())
1534-
.Add(Property.ForName("Year").Group())
1535-
)
1536-
.List();
1552+
IList list;
15371553

1538-
Assert.AreEqual(2, list.Count);
1554+
if (TestDialect.SupportsCountDistinct)
1555+
{
1556+
// Subtest #15
1557+
list = s.CreateCriteria(typeof(Enrolment))
1558+
.CreateAlias("Student", "st")
1559+
.CreateAlias("Course", "co")
1560+
.SetProjection(Projections.ProjectionList()
1561+
.Add(Property.ForName("co.CourseCode").Group())
1562+
.Add(Property.ForName("st.StudentNumber").Count().SetDistinct())
1563+
.Add(Property.ForName("Year").Group())
1564+
)
1565+
.List();
15391566

1540-
// Subtest #16
1541-
list = s.CreateCriteria<Enrolment>()
1542-
.CreateAlias("Student", "st")
1543-
.CreateAlias("Course", "co")
1544-
.SetProjection(Projections.ProjectionList()
1545-
.Add(Property.ForName("co.CourseCode").Group().As("courseCode"))
1546-
.Add(Property.ForName("st.StudentNumber").Count().SetDistinct().As("studentNumber"))
1547-
.Add(Property.ForName("Year").Group())
1548-
)
1549-
.AddOrder(Order.Asc("courseCode"))
1550-
.AddOrder(Order.Asc("studentNumber"))
1551-
.List();
1567+
Assert.AreEqual(2, list.Count);
1568+
1569+
// Subtest #16
1570+
list = s.CreateCriteria<Enrolment>()
1571+
.CreateAlias("Student", "st")
1572+
.CreateAlias("Course", "co")
1573+
.SetProjection(Projections.ProjectionList()
1574+
.Add(Property.ForName("co.CourseCode").Group().As("courseCode"))
1575+
.Add(Property.ForName("st.StudentNumber").Count().SetDistinct().As("studentNumber"))
1576+
.Add(Property.ForName("Year").Group())
1577+
)
1578+
.AddOrder(Order.Asc("courseCode"))
1579+
.AddOrder(Order.Asc("studentNumber"))
1580+
.List();
15521581

1553-
Assert.That(list.Count, Is.EqualTo(2));
1582+
Assert.That(list.Count, Is.EqualTo(2));
15541583

1555-
// Subtest #17
1556-
list = s.CreateCriteria<Enrolment>()
1557-
.CreateAlias("Student", "st")
1558-
.CreateAlias("Course", "co")
1559-
.SetProjection(Projections.ProjectionList()
1560-
.Add(Property.ForName("co.CourseCode").Group().As("cCode"))
1561-
.Add(Property.ForName("st.StudentNumber").Count().SetDistinct().As("stNumber"))
1562-
.Add(Property.ForName("Year").Group())
1563-
)
1564-
.AddOrder(Order.Asc("cCode"))
1565-
.AddOrder(Order.Asc("stNumber"))
1566-
.List();
1584+
// Subtest #17
1585+
list = s.CreateCriteria<Enrolment>()
1586+
.CreateAlias("Student", "st")
1587+
.CreateAlias("Course", "co")
1588+
.SetProjection(Projections.ProjectionList()
1589+
.Add(Property.ForName("co.CourseCode").Group().As("cCode"))
1590+
.Add(Property.ForName("st.StudentNumber").Count().SetDistinct().As("stNumber"))
1591+
.Add(Property.ForName("Year").Group())
1592+
)
1593+
.AddOrder(Order.Asc("cCode"))
1594+
.AddOrder(Order.Asc("stNumber"))
1595+
.List();
15671596

1568-
Assert.That(list.Count, Is.EqualTo(2));
1597+
Assert.That(list.Count, Is.EqualTo(2));
1598+
}
15691599

15701600
s.Delete(gavin);
15711601
s.Delete(xam);
@@ -1642,13 +1672,16 @@ public void DistinctProjectionsOfComponents()
16421672
.UniqueResult();
16431673

16441674
Assert.That(result, Is.EqualTo(2));
1645-
1646-
result = s.CreateCriteria<Student>()
1647-
.SetProjection(Projections.CountDistinct("CityState.City"))
1648-
.UniqueResult();
1649-
1650-
Assert.That(result, Is.EqualTo(1));
1651-
1675+
1676+
if (TestDialect.SupportsCountDistinct)
1677+
{
1678+
result = s.CreateCriteria<Student>()
1679+
.SetProjection(Projections.CountDistinct("CityState.City"))
1680+
.UniqueResult();
1681+
1682+
Assert.That(result, Is.EqualTo(1));
1683+
}
1684+
16521685
t.Commit();
16531686
s.Close();
16541687

@@ -1886,11 +1919,13 @@ public void CloningProjectionsUsingProperty()
18861919
s.Save(enrolment);
18871920
s.Flush();
18881921

1889-
int count = (int)CriteriaTransformer.Clone(s.CreateCriteria(typeof(Enrolment))
1890-
.SetProjection(Property.ForName("StudentNumber").Count().SetDistinct())
1891-
)
1892-
.UniqueResult();
1893-
Assert.AreEqual(2, count);
1922+
if (TestDialect.SupportsCountDistinct)
1923+
{
1924+
int count = (int) CriteriaTransformer.Clone(
1925+
s.CreateCriteria(typeof(Enrolment)).SetProjection(Property.ForName("StudentNumber").Count().SetDistinct())
1926+
).UniqueResult();
1927+
Assert.AreEqual(2, count);
1928+
}
18941929

18951930
object obj = CriteriaTransformer.Clone(s.CreateCriteria(typeof(Enrolment))
18961931
.SetProjection(Projections.ProjectionList()
@@ -2009,18 +2044,22 @@ public void CloningProjectionsUsingProperty()
20092044
.UniqueResult();
20102045
Assert.AreEqual(7, array.Length);
20112046

2012-
IList list = CriteriaTransformer.Clone(s.CreateCriteria(typeof(Enrolment))
2013-
.CreateAlias("Student", "st")
2014-
.CreateAlias("Course", "co")
2015-
.SetProjection(Projections.ProjectionList()
2016-
.Add(Property.ForName("co.CourseCode").Group())
2017-
.Add(Property.ForName("st.StudentNumber").Count().SetDistinct())
2018-
.Add(Property.ForName("Year").Group())
2019-
)
2020-
)
2021-
.List();
2047+
if (TestDialect.SupportsCountDistinct)
2048+
{
2049+
IList list = CriteriaTransformer.Clone(
2050+
s.CreateCriteria(typeof(Enrolment))
2051+
.CreateAlias("Student", "st")
2052+
.CreateAlias("Course", "co")
2053+
.SetProjection(
2054+
Projections.ProjectionList()
2055+
.Add(Property.ForName("co.CourseCode").Group())
2056+
.Add(Property.ForName("st.StudentNumber").Count().SetDistinct())
2057+
.Add(Property.ForName("Year").Group())
2058+
)
2059+
).List();
20222060

2023-
Assert.AreEqual(2, list.Count);
2061+
Assert.AreEqual(2, list.Count);
2062+
}
20242063

20252064
s.Delete(gavin);
20262065
s.Delete(xam);

0 commit comments

Comments
 (0)