public void TestEvaluateNullPropertyExpression() { Person person = new Person() { Name = null }; ICriterion criterion = ExpressionProcessor.ProcessExpression<Person>(p => p.Name == person.Name); SimpleExpression simpleExpression = (SimpleExpression)criterion; Assert.AreEqual(null, simpleExpression.Value); }
public void FilterNullComponent() { using (ISession s = OpenSession()) using (ITransaction t = s.BeginTransaction()) { var p1 = new Person() { Detail = new PersonDetail() { MaidenName = "test", Anniversary = new DateTime(2007, 06, 05) } }; var p2 = new Person() { Detail = null }; s.Save(p1); s.Save(p2); var nullDetails = s.QueryOver<Person>() .Where(p => p.Detail == null) .List(); Assert.That(nullDetails.Count, Is.EqualTo(1)); Assert.That(nullDetails[0].Id, Is.EqualTo(p2.Id)); } }
public void StatelessSession() { using (var ss = sessions.OpenStatelessSession()) { using (var tx = ss.BeginTransaction()) { var person = new Person() { Name = "test1" }; ss.Insert(person); var statelessPerson1 = ss.QueryOver<Person>() .List() [0]; Assert.That(statelessPerson1.Id, Is.EqualTo(person.Id)); var statelessPerson2 = QueryOver.Of<Person>() .GetExecutableQueryOver(ss) .List() [0]; Assert.That(statelessPerson2.Id, Is.EqualTo(person.Id)); } } }
public void IsType() { using (ISession s = OpenSession()) using (ITransaction t = s.BeginTransaction()) { var father1 = new Person() { Name = "Father 1" }; var father2 = new CustomPerson() { Name = "Father 2" }; var person1 = new Person() { Name = "Person 1", Father = father2 }; var person2 = new CustomPerson() { Name = "Person 2", Father = father1 }; s.Save(father1); s.Save(father2); s.Save(person1); s.Save(person2); t.Commit(); } using (ISession s = OpenSession()) { var actual = s.QueryOver<Person>() .Where(p => p is CustomPerson) .And(p => p.Father != null) .List(); Assert.That(actual.Count, Is.EqualTo(1)); Assert.That(actual[0].Name, Is.EqualTo("Person 2")); } using (ISession s = OpenSession()) { var actual = s.QueryOver<Person>() .Where(p => p.GetType() == typeof(CustomPerson)) .And(p => p.Father != null) .List(); Assert.That(actual.Count, Is.EqualTo(1)); Assert.That(actual[0].Name, Is.EqualTo("Person 2")); } using (ISession s = OpenSession()) { Person f = null; var actual = s.QueryOver<Person>() .JoinAlias(p => p.Father, () => f) .Where(() => f is CustomPerson) .List(); Assert.That(actual.Count, Is.EqualTo(1)); Assert.That(actual[0].Name, Is.EqualTo("Person 1")); } using (ISession s = OpenSession()) { Person f = null; var actual = s.QueryOver<Person>() .JoinAlias(p => p.Father, () => f) .Where(() => f.GetType() == typeof(CustomPerson)) .List(); Assert.That(actual.Count, Is.EqualTo(1)); Assert.That(actual[0].Name, Is.EqualTo("Person 1")); } }
public void NullRestriction() { ICriteria expected = CreateTestCriteria(typeof(Person), "personAlias") .Add(Restrictions.IsNull("Name")) .Add(Restrictions.IsNull("Name")) .Add(Restrictions.IsNull("Name")) .Add(Restrictions.IsNull("Father")) .Add(Restrictions.IsNull("Father")) .Add(Restrictions.IsNull("NullableGender")) .Add(Restrictions.IsNull("NullableAge")) .Add(Restrictions.IsNull("NullableIsParent")) .Add(Restrictions.Not(Restrictions.IsNull("Name"))) .Add(Restrictions.Not(Restrictions.IsNull("Name"))) .Add(Restrictions.Not(Restrictions.IsNull("Name"))) .Add(Restrictions.Not(Restrictions.IsNull("Father"))) .Add(Restrictions.Not(Restrictions.IsNull("Father"))) .Add(Restrictions.Not(Restrictions.IsNull("NullableGender"))) .Add(Restrictions.Not(Restrictions.IsNull("NullableAge"))) .Add(Restrictions.Not(Restrictions.IsNull("NullableIsParent"))) .Add(Restrictions.IsNull("personAlias.Name")); Person personAlias = null; CustomPerson nullPerson = null; Person.StaticName = null; Person emptyPerson = new Person() { Name = null }; var actual = CreateTestQueryOver<Person>(() => personAlias) .Where(p => p.Name == null) .Where(p => p.Name == Person.StaticName) .Where(p => p.Name == emptyPerson.Name) .Where(p => p.Father == null) .Where(p => p.Father == nullPerson) .Where(p => p.NullableGender == null) .Where(p => p.NullableAge == null) .Where(p => p.NullableIsParent == null) .Where(p => p.Name != null) .Where(p => p.Name != Person.StaticName) .Where(p => p.Name != emptyPerson.Name) .Where(p => p.Father != null) .Where(p => p.Father != nullPerson) .Where(p => p.NullableGender != null) .Where(p => p.NullableAge != null) .Where(p => p.NullableIsParent != null) .Where(() => personAlias.Name == null); AssertCriteriaAreEqual(expected, actual); }
public void TestEvaluateMemberExpression() { Person testPerson = new Person(); testPerson.Name = "testName"; ICriterion criterion = ExpressionProcessor.ProcessExpression<Person>(p => p.Name == testPerson.Name); SimpleExpression simpleExpression = (SimpleExpression)criterion; Assert.AreEqual("testName", simpleExpression.Value); }
public async Task IsTypeAsync() { using (ISession s = OpenSession()) using (ITransaction t = s.BeginTransaction()) { var father1 = new Person() { Name = "Father 1" }; var father2 = new CustomPerson() { Name = "Father 2" }; var person1 = new Person() { Name = "Person 1", Father = father2 }; var person2 = new CustomPerson() { Name = "Person 2", Father = father1 }; await(s.SaveAsync(father1)); await(s.SaveAsync(father2)); await(s.SaveAsync(person1)); await(s.SaveAsync(person2)); await(t.CommitAsync()); } using (ISession s = OpenSession()) { var actual = await(s.QueryOver <Person>() .Where(p => p is CustomPerson) .And(p => p.Father != null) .ListAsync()); Assert.That(actual.Count, Is.EqualTo(1)); Assert.That(actual[0].Name, Is.EqualTo("Person 2")); } using (ISession s = OpenSession()) { var actual = await(s.QueryOver <Person>() .Where(p => p.GetType() == typeof(CustomPerson)) .And(p => p.Father != null) .ListAsync()); Assert.That(actual.Count, Is.EqualTo(1)); Assert.That(actual[0].Name, Is.EqualTo("Person 2")); } using (ISession s = OpenSession()) { Person f = null; var actual = await(s.QueryOver <Person>() .JoinAlias(p => p.Father, () => f) .Where(() => f is CustomPerson) .ListAsync()); Assert.That(actual.Count, Is.EqualTo(1)); Assert.That(actual[0].Name, Is.EqualTo("Person 1")); } using (ISession s = OpenSession()) { Person f = null; var actual = await(s.QueryOver <Person>() .JoinAlias(p => p.Father, () => f) .Where(() => f.GetType() == typeof(CustomPerson)) .ListAsync()); Assert.That(actual.Count, Is.EqualTo(1)); Assert.That(actual[0].Name, Is.EqualTo("Person 1")); } }
public async Task OnClauseAsync() { using (ISession s = OpenSession()) using (ITransaction t = s.BeginTransaction()) { await(s.SaveAsync(new Person() { Name = "John" } .AddChild(new Child() { Nickname = "John" }) .AddChild(new Child() { Nickname = "Judy" }))); await(s.SaveAsync(new Person() { Name = "Jean" })); await(s.SaveAsync(new Child() { Nickname = "James" })); await(t.CommitAsync()); } using (ISession s = OpenSession()) { Child childAlias = null; Person parentAlias = null; var children = await(s.QueryOver(() => childAlias) .Left.JoinQueryOver(c => c.Parent, () => parentAlias, p => p.Name == childAlias.Nickname) .WhereRestrictionOn(p => p.Name).IsNotNull .ListAsync()); Assert.That(children, Has.Count.EqualTo(1)); } using (ISession s = OpenSession()) { Child childAlias = null; Person parentAlias = null; var parentNames = await(s.QueryOver(() => childAlias) .Left.JoinAlias(c => c.Parent, () => parentAlias, p => p.Name == childAlias.Nickname) .Select(c => parentAlias.Name) .ListAsync <string>()); Assert.That(parentNames.Count(n => !string.IsNullOrEmpty(n)), Is.EqualTo(1)); } using (ISession s = OpenSession()) { Person personAlias = null; Child childAlias = null; var people = await(s.QueryOver <Person>(() => personAlias) .Left.JoinQueryOver(p => p.Children, () => childAlias, c => c.Nickname == personAlias.Name) .WhereRestrictionOn(c => c.Nickname).IsNotNull .ListAsync()); Assert.That(people, Has.Count.EqualTo(1)); } using (ISession s = OpenSession()) { Person personAlias = null; Child childAlias = null; var childNames = await(s.QueryOver <Person>(() => personAlias) .Left.JoinAlias(p => p.Children, () => childAlias, c => c.Nickname == personAlias.Name) .Select(p => childAlias.Nickname) .ListAsync <string>()); Assert.That(childNames.Count(n => !string.IsNullOrEmpty(n)), Is.EqualTo(1)); } }
public void TestEvaluateNullPropertyExpression() { Person person = new Person() { Name = null }; ICriterion criterion = ExpressionProcessor.ProcessExpression<Person>(p => p.Name == person.Name); Assert.That(criterion, Is.InstanceOf<NullExpression>()); }