Skip to content

Commit cb2e260

Browse files
committed
Merge branch 'NH-3586'
2 parents c87995a + dd0042a commit cb2e260

File tree

3 files changed

+293
-165
lines changed

3 files changed

+293
-165
lines changed

src/NHibernate.Test/Criteria/CriteriaQueryTest.cs

Lines changed: 51 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2652,20 +2652,20 @@ public void ParametersInCountExpression()
26522652
[Test]
26532653
public void TransformToRowCountTest()
26542654
{
2655-
ISession s = OpenSession();
2656-
ITransaction t = s.BeginTransaction();
2657-
2658-
ICriteria crit = s.CreateCriteria(typeof(Student));
2659-
ICriteria subCriterium = crit.CreateCriteria("PreferredCourse");
2660-
subCriterium.Add(Property.ForName("CourseCode").Eq("PREFFERED_CODE"));
2655+
using (ISession s = OpenSession())
2656+
using (ITransaction t = s.BeginTransaction())
2657+
{
2658+
ICriteria crit = s.CreateCriteria(typeof (Student));
2659+
ICriteria subCriterium = crit.CreateCriteria("PreferredCourse");
2660+
subCriterium.Add(Property.ForName("CourseCode").Eq("PREFFERED_CODE"));
26612661

26622662

2663-
ICriteria countCriteria = CriteriaTransformer.TransformToRowCount(crit);
2663+
ICriteria countCriteria = CriteriaTransformer.TransformToRowCount(crit);
26642664

2665-
countCriteria.List();
2665+
countCriteria.List();
26662666

2667-
t.Rollback();
2668-
s.Close();
2667+
t.Rollback();
2668+
}
26692669
}
26702670

26712671
[Test]
@@ -2689,51 +2689,53 @@ public void OrderProjectionTest()
26892689
[Test]
26902690
public void OrderProjectionAliasedTest()
26912691
{
2692-
ISession session = OpenSession();
2693-
ITransaction t = session.BeginTransaction();
2692+
using (ISession session = OpenSession())
2693+
using (ITransaction t = session.BeginTransaction())
2694+
{
26942695

2695-
Course courseA = new Course();
2696-
courseA.CourseCode = "HIB-A";
2697-
courseA.Description = "Hibernate Training A";
2698-
session.Save(courseA);
2696+
Course courseA = new Course();
2697+
courseA.CourseCode = "HIB-A";
2698+
courseA.Description = "Hibernate Training A";
2699+
session.Save(courseA);
26992700

2700-
Student gavin = new Student();
2701-
gavin.Name = "Gavin King";
2702-
gavin.StudentNumber = 232;
2703-
gavin.PreferredCourse = courseA;
2704-
session.Save(gavin);
2701+
Student gavin = new Student();
2702+
gavin.Name = "Gavin King";
2703+
gavin.StudentNumber = 232;
2704+
gavin.PreferredCourse = courseA;
2705+
session.Save(gavin);
27052706

2706-
Student leonardo = new Student();
2707-
leonardo.Name = "Leonardo Quijano";
2708-
leonardo.StudentNumber = 233;
2709-
leonardo.PreferredCourse = courseA;
2710-
session.Save(leonardo);
2707+
Student leonardo = new Student();
2708+
leonardo.Name = "Leonardo Quijano";
2709+
leonardo.StudentNumber = 233;
2710+
leonardo.PreferredCourse = courseA;
2711+
session.Save(leonardo);
27112712

2712-
Student johnDoe = new Student();
2713-
johnDoe.Name = "John Doe";
2714-
johnDoe.StudentNumber = 235;
2715-
johnDoe.PreferredCourse = null;
2716-
session.Save(johnDoe);
2713+
Student johnDoe = new Student();
2714+
johnDoe.Name = "John Doe";
2715+
johnDoe.StudentNumber = 235;
2716+
johnDoe.PreferredCourse = null;
2717+
session.Save(johnDoe);
27172718

2718-
IProjection conditional =
2719-
Projections.Conditional(
2720-
Restrictions.Eq("Name", "Gavin King"),
2721-
Projections.Constant("Name"),
2722-
Projections.Constant("AnotherName"));
2723-
2724-
ICriteria criteria = session.CreateCriteria(typeof(Student));
2725-
criteria.SetMaxResults(1);
2726-
criteria.SetFirstResult(1);
2727-
IList result = criteria.SetProjection(Projections.Alias(conditional, "CheckName"))
2728-
.AddOrder(Order.Asc("CheckName"))
2729-
.List();
2719+
IProjection conditional =
2720+
Projections.Conditional(
2721+
Restrictions.Eq("Name", "Gavin King"),
2722+
Projections.Constant("Name"),
2723+
Projections.Constant("AnotherName"));
2724+
2725+
ICriteria criteria = session.CreateCriteria(typeof(Student));
2726+
criteria.SetMaxResults(1);
2727+
criteria.SetFirstResult(1);
2728+
IList result = criteria.SetProjection(Projections.Alias(conditional, "CheckName"))
2729+
.AddOrder(Order.Asc("CheckName"))
2730+
.List();
27302731

2731-
session.Delete(gavin);
2732-
session.Delete(leonardo);
2733-
session.Delete(johnDoe);
2734-
session.Delete(courseA);
2735-
t.Commit();
2736-
session.Close();
2732+
session.Delete(gavin);
2733+
session.Delete(leonardo);
2734+
session.Delete(johnDoe);
2735+
session.Delete(courseA);
2736+
2737+
t.Commit();
2738+
}
27372739
}
27382740

27392741
[Test]

src/NHibernate.Test/DialectTest/FirebirdDialectFixture.cs

Lines changed: 51 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,72 @@ namespace NHibernate.Test.DialectTest
77
[TestFixture]
88
public class FirebirdDialectFixture
99
{
10+
#region Tests
11+
1012
[Test]
1113
public void GetLimitString()
1214
{
13-
FirebirdDialect d = new FirebirdDialect();
15+
FirebirdDialect d = MakeDialect();
1416

1517
SqlString str = d.GetLimitString(new SqlString("SELECT * FROM fish"), null, new SqlString("10"));
1618
Assert.AreEqual("SELECT first 10 * FROM fish", str.ToString());
1719

1820
str = d.GetLimitString(new SqlString("SELECT * FROM fish ORDER BY name"), new SqlString("5"), new SqlString("15"));
1921
Assert.AreEqual("SELECT first 15 skip 5 * FROM fish ORDER BY name", str.ToString());
2022

21-
str = d.GetLimitString(new SqlString("SELECT * FROM fish ORDER BY name DESC"), new SqlString("7"), new SqlString("28"));
23+
str = d.GetLimitString(new SqlString("SELECT * FROM fish ORDER BY name DESC"), new SqlString("7"),
24+
new SqlString("28"));
2225
Assert.AreEqual("SELECT first 28 skip 7 * FROM fish ORDER BY name DESC", str.ToString());
2326

24-
str = d.GetLimitString(new SqlString("SELECT DISTINCT fish.family FROM fish ORDER BY name DESC"), null, new SqlString("28"));
27+
str = d.GetLimitString(new SqlString("SELECT DISTINCT fish.family FROM fish ORDER BY name DESC"), null,
28+
new SqlString("28"));
2529
Assert.AreEqual("SELECT first 28 DISTINCT fish.family FROM fish ORDER BY name DESC", str.ToString());
2630

27-
str = d.GetLimitString(new SqlString("SELECT DISTINCT fish.family FROM fish ORDER BY name DESC"), new SqlString("7"), new SqlString("28"));
31+
str = d.GetLimitString(new SqlString("SELECT DISTINCT fish.family FROM fish ORDER BY name DESC"), new SqlString("7"),
32+
new SqlString("28"));
2833
Assert.AreEqual("SELECT first 28 skip 7 DISTINCT fish.family FROM fish ORDER BY name DESC", str.ToString());
2934
}
35+
36+
[Test]
37+
public void GetTypeName_DecimalWithoutPrecisionAndScale_ReturnsDecimalWithPrecisionOf18AndScaleOf5()
38+
{
39+
var fbDialect = MakeDialect();
40+
41+
var result = fbDialect.GetTypeName(NHibernateUtil.Decimal.SqlType);
42+
43+
Assert.AreEqual("DECIMAL(18, 5)", result);
44+
}
45+
46+
[Test]
47+
public void GetTypeName_DecimalWithPrecisionAndScale_ReturnsPrecisedAndScaledDecimal()
48+
{
49+
var fbDialect = MakeDialect();
50+
51+
var result = fbDialect.GetTypeName(NHibernateUtil.Decimal.SqlType, 0, 17, 2);
52+
53+
Assert.AreEqual("DECIMAL(17, 2)", result);
54+
}
55+
56+
[Test]
57+
public void GetTypeName_DecimalWithPrecisionGreaterThanFbMaxPrecision_ReturnsDecimalWithFbMaxPrecision()
58+
{
59+
var fbDialect = MakeDialect();
60+
61+
var result = fbDialect.GetTypeName(NHibernateUtil.Decimal.SqlType, 0, 19, 2);
62+
//Firebird allows a maximum precision of 18
63+
64+
Assert.AreEqual("DECIMAL(18, 2)", result);
65+
}
66+
67+
#endregion
68+
69+
#region Private Members
70+
71+
private static FirebirdDialect MakeDialect()
72+
{
73+
return new FirebirdDialect();
74+
}
75+
76+
#endregion
3077
}
3178
}

0 commit comments

Comments
 (0)