public void SignTest() { string expected = "Sign([Angle])"; string actual = CriteriaBuilder.Build <TestContext, int>(c => Math.Sign(c.Angle)).ToString(); Assert.AreEqual(expected, actual); }
public void ExistsWithConditionTest() { string expected = "[Accounts][[Amount] > 10.0m]"; string actual = CriteriaBuilder.Build <TestContext, bool>(c => c.Accounts.Any(a => a.Amount > 10)).ToString(); Assert.AreEqual(expected, actual); }
public void SingleWithConditionTest() { string expected = "[Accounts][[Amount] > 10.0m].Single()"; string actual = CriteriaBuilder.Build <TestContext, Account>(c => c.Accounts.SingleOrDefault(a => a.Amount > 10)).ToString(); Assert.AreEqual(expected, actual); }
public void SingleWithExpressionTest() { string expected = "[Accounts][].Single([Amount])"; string actual = CriteriaBuilder.Build <TestContext, decimal>(c => c.Accounts.SingleOrDefault().Amount).ToString(); Assert.AreEqual(expected, actual); }
public void ReplaceTest() { string expected = "Replace([Name], 'oh', '**')"; string actual = CriteriaBuilder.Build <TestContext, string>(c => c.Name.Replace("oh", "**")).ToString(); Assert.AreEqual(expected, actual); }
public void ExistsTest() { string expected = "[Accounts][]"; string actual = CriteriaBuilder.Build <TestContext, bool>(c => c.Accounts.Any()).ToString(); Assert.AreEqual(expected, actual); }
public void SingleTest() { string expected = "[Accounts][].Single() <> null"; string actual = CriteriaBuilder.Build <TestContext, bool>(c => c.Accounts.SingleOrDefault() != null).ToString(); Assert.AreEqual(expected, actual); }
public void ToDecimalCastTest() { string expected = "ToDecimal([Angle])"; string actual = CriteriaBuilder.Build <TestContext, decimal>(c => (decimal)c.Angle).ToString(); Assert.AreEqual(expected, actual); }
public void CountTest() { string expected = "[Accounts][].Count() > 1"; string actual = CriteriaBuilder.Build <TestContext, bool>(c => c.Accounts.Count() > 1).ToString(); Assert.AreEqual(expected, actual); }
public void GetTimeOfDayTest() { string expected = "GetTimeOfDay([RegistrationDate])"; string actual = CriteriaBuilder.Build <TestContext, TimeSpan>(c => c.RegistrationDate.TimeOfDay).ToString(); Assert.AreEqual(expected, actual); }
public void ToLongCastTest() { string expected = "ToLong([Angle])"; string actual = CriteriaBuilder.Build <TestContext, long>(c => (long)c.Angle).ToString(); Assert.AreEqual(expected, actual); }
public void StartsWithTest() { string expected = "StartsWith([Name], 'J')"; string actual = CriteriaBuilder.Build <TestContext, bool>(c => c.Name.StartsWith("J")).ToString(); Assert.AreEqual(expected, actual); }
public void PadRightCharacterTest() { string expected = "PadRight([Name], 10, '\u0066'c)"; string actual = CriteriaBuilder.Build <TestContext, string>(c => c.Name.PadRight(10, '\u0066')).ToString(); Assert.AreEqual(expected, actual); }
public void LenTest() { string expected = "Len([Name]) > 3"; string actual = CriteriaBuilder.Build <TestContext, bool>(c => c.Name.Length > 3).ToString(); Assert.AreEqual(expected, actual); }
public void MinTest() { string expected = "Min([Angle], 0.5)"; string actual = CriteriaBuilder.Build <TestContext, double>(c => Math.Min(c.Angle, .5)).ToString(); Assert.AreEqual(expected, actual); }
public void PadLeftTest() { string expected = "PadLeft([Name], 10)"; string actual = CriteriaBuilder.Build <TestContext, string>(c => c.Name.PadLeft(10)).ToString(); Assert.AreEqual(expected, actual); }
public void IsNullOrEmptyTest() { string expected = "IsNullOrEmpty([Name])"; string actual = CriteriaBuilder.Build <TestContext, bool>(c => string.IsNullOrEmpty(c.Name)).ToString(); Assert.AreEqual(expected, actual); }
public void InsertTest() { string expected = "Insert([Name], 1, 'a')"; string actual = CriteriaBuilder.Build <TestContext, string>(c => c.Name.Insert(1, "a")).ToString(); Assert.AreEqual(expected, actual); }
public void GetYearTest() { string expected = "GetYear([RegistrationDate])"; string actual = CriteriaBuilder.Build <TestContext, int>(c => c.RegistrationDate.Year).ToString(); Assert.AreEqual(expected, actual); }
public void ToDoubleCastTest() { string expected = "ToDouble([Age])"; string actual = CriteriaBuilder.Build <TestContext, double>(c => (double)c.Age).ToString(); Assert.AreEqual(expected, actual); }
public void PowerTest() { string expected = "Power([Angle], 2.0)"; string actual = CriteriaBuilder.Build <TestContext, double>(c => Math.Pow(c.Angle, 2)).ToString(); Assert.AreEqual(expected, actual); }
public void ToFloatTest() { string expected = "ToFloat([Angle])"; string actual = CriteriaBuilder.Build <TestContext, float>(c => Convert.ToSingle(c.Angle)).ToString(); Assert.AreEqual(expected, actual); }
public void RemoveWithNumberToTest() { string expected = "Remove([Name], 2, 1)"; string actual = CriteriaBuilder.Build <TestContext, string>(c => c.Name.Remove(2, 1)).ToString(); Assert.AreEqual(expected, actual); }
public void ToIntCastTest() { string expected = "ToInt([Angle])"; string actual = CriteriaBuilder.Build <TestContext, int>(c => (int)c.Angle).ToString(); Assert.AreEqual(expected, actual); }
public void SumTest() { string expected = "[Accounts][].Sum([Amount]) > 150.0m"; string actual = CriteriaBuilder.Build <TestContext, bool>(c => c.Accounts.Sum(a => a.Amount) > 150).ToString(); Assert.AreEqual(expected, actual); }
public void LowerTest() { string expected = "Lower([Name]) Like '%jo%'"; string actual = CriteriaBuilder.Build <TestContext, bool>(c => CustomFunctions.Like(c.Name.ToLower(), "%jo%")).ToString(); Assert.AreEqual(expected, actual); }
public void RoundWithDecimalPlacesTest() { string expected = "Round([Angle], 2)"; string actual = CriteriaBuilder.Build <TestContext, double>(c => Math.Round(c.Angle, 2)).ToString(); Assert.AreEqual(expected, actual); }
public void AndTest() { string expected = "[Name] = 'John' And [Age] = 30"; string actual = CriteriaBuilder.Build <TestContext, bool>(c => c.Name == "John" && c.Age == 30).ToString(); Assert.AreEqual(expected, actual); }
public void AverageTest() { string expected = "[Accounts][].Avg([Amount]) = 75.0m"; string actual = CriteriaBuilder.Build <TestContext, bool>(c => c.Accounts.Average(a => a.Amount) == 75).ToString(); Assert.AreEqual(expected, actual); }
public void TanhTest() { string expected = "Tanh([Angle])"; string actual = CriteriaBuilder.Build <TestContext, double>(c => Math.Tanh(c.Angle)).ToString(); Assert.AreEqual(expected, actual); }
private static void ProcessCriteria(XElement parent, CriteriaBuilder builder) { CriteriaBuilder newBuilder; foreach (var elem in parent.Elements()) { switch (elem.Name.LocalName) { case "Relationships": break; case "not": newBuilder = new CriteriaBuilder() { Not = true, Operator = "and", Type = builder.Type }; ProcessCriteria(elem, newBuilder); builder.Builders.Add(newBuilder); elem.Remove(); break; case "and": newBuilder = new CriteriaBuilder() { Not = true, Operator = "and", Type = builder.Type }; ProcessCriteria(elem, newBuilder); builder.Builders.Add(newBuilder); elem.Remove(); break; case "or": newBuilder = new CriteriaBuilder() { Not = true, Operator = "or", Type = builder.Type }; ProcessCriteria(elem, newBuilder); builder.Builders.Add(newBuilder); elem.Remove(); break; default: builder.Add(elem); elem.Remove(); break; } } }
public void TestNewInstance() { ICriteriaBuilder criteriaBuilder = new CriteriaBuilder(SessionFactory.GetClassMetadata); var criteria1 = criteriaBuilder.MakeCriteria(null); Assert.IsNull(criteria1); var criteria2 = criteriaBuilder.MakeCriteria((object)null, null); Assert.IsNull(criteria2); var criteria3 = criteriaBuilder.MakeCriteria<Salesman>(null); Assert.IsNull(criteria3); var criteria4 = criteriaBuilder.MakeCriteria<Salesman>(null, null); Assert.IsNull(criteria4); }
public static void CriteriaToWhereClause(XElement elem) { var item = elem.DescendantsAndSelf("Item").First(); if (item.Attribute("type") == null) return; var builder = new CriteriaBuilder() { Operator = "and", Type = "[" + item.Attribute("type").Value.Replace(' ', '_') + "]" }; ProcessCriteria(elem, builder); var where = item.Attribute("where"); var whereClause = builder.ToString(); if (where != null) whereClause += " and " + where.Value; item.SetAttributeValue("where", whereClause); }
public void TestCriteriaCompiled2() { ICriteriaCompiled criteriaCompiled = null; ICriteriaBuilder criteriaBuilder = new CriteriaBuilder(SessionFactory.GetClassMetadata); CarContract instance = new CarContract { Owner = new Salesman(1) }; criteriaCompiled = criteriaBuilder.MakeCriteria(instance); Assert.AreEqual(criteriaCompiled.RootAlias, "carContract"); Assert.AreEqual(criteriaCompiled.RootType, typeof(CarContract)); Assert.AreEqual(criteriaCompiled.Restrictions.Count(), 2); using (ISession session = SessionFactory.OpenSession()) { var lista = criteriaCompiled.Criteria.GetExecutableCriteria(session).List(); Assert.AreEqual(lista.Count, 3); } criteriaCompiled = criteriaBuilder.MakeCriteria(typeof(CarContract), instance); Assert.AreEqual(criteriaCompiled.RootAlias, "carContract"); Assert.AreEqual(criteriaCompiled.RootType, typeof(CarContract)); Assert.AreEqual(criteriaCompiled.Restrictions.Count(), 2); using (ISession session = SessionFactory.OpenSession()) { var lista = criteriaCompiled.Criteria.GetExecutableCriteria(session).List(); Assert.AreEqual(lista.Count, 3); } criteriaCompiled = criteriaBuilder.MakeCriteria<TradeContract>(instance); Assert.AreEqual(criteriaCompiled.RootAlias, "tradeContract"); Assert.AreEqual(criteriaCompiled.RootType, typeof(TradeContract)); Assert.AreEqual(criteriaCompiled.Restrictions.Count(), 2); using (ISession session = SessionFactory.OpenSession()) { var lista = criteriaCompiled.Criteria.GetExecutableCriteria(session).List(); Assert.AreEqual(lista.Count, 4); } }
public void TestCriteriaCompiled() { ICriteriaBuilder criteriaBuilder = new CriteriaBuilder(SessionFactory.GetClassMetadata); Salesman instance = new Salesman(1); ICriteriaCompiled criteriaCompiled = null; criteriaCompiled = criteriaBuilder.MakeCriteria(instance as object); Assert.AreEqual(criteriaCompiled.RootAlias, "salesman"); Assert.AreEqual(criteriaCompiled.RootType, typeof(Salesman)); Assert.AreEqual(criteriaCompiled.Restrictions.Count(), 1); using (ISession session = SessionFactory.OpenSession()) { var lista = criteriaCompiled.Criteria.GetExecutableCriteria(session).List(); Assert.IsTrue(lista.Count == 1); } criteriaCompiled = criteriaBuilder.MakeCriteria(instance as object, "sal"); Assert.AreEqual(criteriaCompiled.RootAlias, "sal"); Assert.AreEqual(criteriaCompiled.RootType, typeof(Salesman)); Assert.AreEqual(criteriaCompiled.Restrictions.Count(), 1); using (ISession session = SessionFactory.OpenSession()) { var lista = criteriaCompiled.Criteria.GetExecutableCriteria(session).List(); Assert.IsTrue(lista.Count == 1); } criteriaCompiled = criteriaBuilder.MakeCriteria(instance); Assert.AreEqual(criteriaCompiled.RootAlias, "salesman"); Assert.AreEqual(criteriaCompiled.RootType, typeof(Salesman)); Assert.AreEqual(criteriaCompiled.Restrictions.Count(), 1); using (ISession session = SessionFactory.OpenSession()) { var lista = criteriaCompiled.Criteria.GetExecutableCriteria(session).List(); Assert.IsTrue(lista.Count == 1); } criteriaCompiled = criteriaBuilder.MakeCriteria(instance, "sal"); Assert.AreEqual(criteriaCompiled.RootAlias, "sal"); Assert.AreEqual(criteriaCompiled.RootType, typeof(Salesman)); Assert.AreEqual(criteriaCompiled.Restrictions.Count(), 1); using (ISession session = SessionFactory.OpenSession()) { var lista = criteriaCompiled.Criteria.GetExecutableCriteria(session).List(); Assert.IsTrue(lista.Count == 1); } criteriaCompiled = criteriaBuilder.MakeCriteria(typeof(Salesman), instance); Assert.AreEqual(criteriaCompiled.RootAlias, "salesman"); Assert.AreEqual(criteriaCompiled.RootType, typeof(Salesman)); Assert.AreEqual(criteriaCompiled.Restrictions.Count(), 1); using (ISession session = SessionFactory.OpenSession()) { var lista = criteriaCompiled.Criteria.GetExecutableCriteria(session).List(); Assert.IsTrue(lista.Count == 1); } criteriaCompiled = criteriaBuilder.MakeCriteria(typeof(Salesman), instance, "sal"); Assert.AreEqual(criteriaCompiled.RootAlias, "sal"); Assert.AreEqual(criteriaCompiled.RootType, typeof(Salesman)); Assert.AreEqual(criteriaCompiled.Restrictions.Count(), 1); using (ISession session = SessionFactory.OpenSession()) { var lista = criteriaCompiled.Criteria.GetExecutableCriteria(session).List(); Assert.IsTrue(lista.Count == 1); } }
public void TestCriteriaCompiled3() { long carCount = 0; IList l0 = null; using (ISession session = SessionFactory.OpenSession()) { carCount = session.CreateQuery("select count(*) from CarContract").UniqueResult<long>(); l0 = session.CreateQuery("from CarContract").List(); } ICriteriaCompiled criteriaCompiled = null; ICriteriaBuilder criteriaBuilder = new CriteriaBuilder(SessionFactory.GetClassMetadata); CarContract instance = new CarContract { Owner = new Salesman {Name = "Manuel"} }; criteriaCompiled = criteriaBuilder.MakeCriteria(instance); Assert.AreEqual(criteriaCompiled.RootAlias, "carContract"); Assert.AreEqual(criteriaCompiled.RootType, typeof(CarContract)); Assert.AreEqual(criteriaCompiled.Restrictions.Count(), 2); using (ISession session = SessionFactory.OpenSession()) { var lista = criteriaCompiled.Criteria.GetExecutableCriteria(session).List(); Assert.AreEqual(lista.Count, 3); } instance.Owner = new Salesman(0); criteriaCompiled = criteriaBuilder.MakeCriteria(instance); Assert.AreEqual(criteriaCompiled.RootAlias, "carContract"); Assert.AreEqual(criteriaCompiled.RootType, typeof(CarContract)); Assert.AreEqual(criteriaCompiled.Restrictions.Count(), 2); using (ISession session = SessionFactory.OpenSession()) { var lista = criteriaCompiled.Criteria.GetExecutableCriteria(session).List(); Assert.AreEqual(lista.Count, 0); } instance.Owner = new Salesman{Name = "pippo"}; criteriaCompiled = criteriaBuilder.MakeCriteria(instance); Assert.AreEqual(criteriaCompiled.RootAlias, "carContract"); Assert.AreEqual(criteriaCompiled.RootType, typeof(CarContract)); Assert.AreEqual(criteriaCompiled.Restrictions.Count(), 2); using (ISession session = SessionFactory.OpenSession()) { var lista = criteriaCompiled.Criteria.GetExecutableCriteria(session).List(); Assert.AreEqual(lista.Count, 0); } }
public void TestCriteriaCompiled4() { ICriteriaCompiled criteriaCompiled = null; ICriteriaBuilder criteriaBuilder = new CriteriaBuilder(SessionFactory.GetClassMetadata); CarContract instance = new CarContract { Owner = new Salesman(1) }; criteriaCompiled = criteriaBuilder.MakeCriteria<TradeContract>(instance); Assert.AreEqual(criteriaCompiled.RootAlias, "tradeContract"); Assert.AreEqual(criteriaCompiled.RootType, typeof(TradeContract)); Assert.AreEqual(criteriaCompiled.Restrictions.Count(), 2); var relationship = criteriaCompiled.FindRelationshipProperty("Owner"); Assert.IsNotNull(relationship); Assert.AreEqual(relationship.Type, typeof(Salesman)); Assert.AreEqual(relationship.Alias, "salesman"); Assert.AreEqual(relationship.GetPath(), "tradeContract.Owner"); //PersistentLayer.Domain.Salesman aaa = new PersistentLayer.Domain.Salesman(); }