Skip to content

Commit 1a2243d

Browse files
rjpereshazzik
authored andcommitted
NH-3222 - Add unit tests
1 parent 71994bd commit 1a2243d

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

src/NHibernate.Test/SqlTest/Query/NativeSQLQueriesFixture.cs

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Collections;
2+
using System.Linq;
23
using NHibernate.Transform;
34
using NUnit.Framework;
45
using NHibernate.Criterion;
@@ -596,5 +597,66 @@ public static void AssertClassAssignability(System.Type source, System.Type targ
596597
target.FullName + ">"
597598
);
598599
}
600+
601+
class TestResultSetTransformer : IResultTransformer
602+
{
603+
public bool TransformTupleCalled { get; set; }
604+
public bool TransformListCalled { get; set; }
605+
public object TransformTuple(object[] tuple, string[] aliases)
606+
{
607+
this.TransformTupleCalled = true;
608+
return tuple;
609+
}
610+
public IList TransformList(IList collection)
611+
{
612+
this.TransformListCalled = true;
613+
return collection;
614+
}
615+
}
616+
617+
[Test]
618+
public void CanSetResultTransformerOnFutureQuery()
619+
{
620+
using (var s = this.OpenSession())
621+
using (s.BeginTransaction())
622+
{
623+
s.Save(new Person("Ricardo"));
624+
s.Flush();
625+
626+
var transformer = new TestResultSetTransformer();
627+
var l = s
628+
.CreateSQLQuery("select Name from Person")
629+
.SetResultTransformer(transformer)
630+
.Future<object[]>();
631+
632+
Assert.AreEqual(l.Count(), 1);
633+
Assert.AreEqual("Ricardo", l.ElementAt(0)[0]);
634+
Assert.IsTrue(transformer.TransformListCalled);
635+
Assert.IsTrue(transformer.TransformTupleCalled);
636+
}
637+
}
638+
639+
[Test]
640+
public void CanSetResultTransformerOnFutureValue()
641+
{
642+
using (var s = this.OpenSession())
643+
using (s.BeginTransaction())
644+
{
645+
s.Save(new Person("Ricardo"));
646+
s.Flush();
647+
648+
var transformer = new TestResultSetTransformer();
649+
var l = s
650+
.CreateSQLQuery("select Name from Person")
651+
.SetResultTransformer(transformer)
652+
.FutureValue<object[]>();
653+
654+
var v = l.Value;
655+
656+
Assert.AreEqual("Ricardo", v[0]);
657+
Assert.IsTrue(transformer.TransformListCalled);
658+
Assert.IsTrue(transformer.TransformTupleCalled);
659+
}
660+
}
599661
}
600662
}

0 commit comments

Comments
 (0)