public void Test_ToString_WithStrings() { //-------------Setup Test Pack ------------------ object[] values = new object[] { "100", "200", "300" }; Criteria.CriteriaValues criteriaValues = new Criteria.CriteriaValues(values); //-------------Execute test --------------------- string valuesAsString = criteriaValues.ToString(); //-------------Test Result ---------------------- Assert.AreEqual("('100', '200', '300')", valuesAsString); }
public void Test_ConstructorRemovesQuotesAroundStrings() { //-------------Setup Test Pack ------------------ object[] values = new object[] { "'100'", "'200'", "'300'" }; Criteria.CriteriaValues criteriaValues = new Criteria.CriteriaValues(values); //-------------Execute test --------------------- int result = criteriaValues.CompareTo("100"); //-------------Test Result ---------------------- Assert.AreEqual(0, result); }
public void Test_CompareTo_WhenNotInValues_ShouldReturnNotZero() { //-------------Setup Test Pack ------------------ object[] values = new object[] { "100", "200", "300" }; Criteria.CriteriaValues criteriaValues = new Criteria.CriteriaValues(values); //-------------Execute test --------------------- int result = criteriaValues.CompareTo("10"); //-------------Test Result ---------------------- Assert.AreNotEqual(0, result); }
public void Test_CompareTo_WhenInValues_ShouldReturnZero() { //-------------Setup Test Pack ------------------ object[] values = new object[] { "100", "200", "300" }; Criteria.CriteriaValues criteriaValues = new Criteria.CriteriaValues(values); //-------------Execute test --------------------- int result = criteriaValues.CompareTo("100"); //-------------Test Result ---------------------- Assert.AreEqual(0, result); }
public void Test_CompareTo_WhenNullInValuesAndLookingForValue_ShouldReturnZero() { //-------------Setup Test Pack ------------------ object[] values = new object[] { "100", null, "300" }; Criteria.CriteriaValues criteriaValues = new Criteria.CriteriaValues(values); //-------------Execute test --------------------- int result = criteriaValues.CompareTo("300"); //-------------Test Result ---------------------- Assert.AreEqual(0, result); }
public void Test_ToString_WhenHasNullValues_ShouldReturnOk() { //-------------Setup Test Pack ------------------ object[] values = new object[] { "100", "200", null }; Criteria.CriteriaValues criteriaValues = new Criteria.CriteriaValues(values); //-------------Execute test --------------------- string valuesAsString = criteriaValues.ToString(); //-------------Test Result ---------------------- Assert.AreEqual("('100', '200')", valuesAsString); }
public void Test_ToString_WithIntegers() { //-------------Setup Test Pack ------------------ object[] values = new object[] { 100, 200, 300 }; Criteria.CriteriaValues criteriaValues = new Criteria.CriteriaValues(values); //-------------Execute test --------------------- string valuesAsString = criteriaValues.ToString(); //-------------Test Result ---------------------- Assert.AreEqual("(100, 200, 300)", valuesAsString); }
private string CreateInClause(SqlStatement statement, object value) { string paramName = statement.ParameterNameGenerator.GetNextParameterName(); string inClause = "("; Criteria.CriteriaValues criteriaValues = (Criteria.CriteriaValues)value; int i = 0; foreach (var paramValue in criteriaValues) { statement.AddParameter(paramName, paramValue); inClause += paramName; if (i < criteriaValues.Count - 1) { inClause += ", "; paramName = statement.ParameterNameGenerator.GetNextParameterName(); } i++; } inClause += ")"; return(inClause); }
public void TestCreateSqlStatement_WithNotInCriteria() { //---------------Set up test pack------------------- IClassDef classDef = MyBO.LoadDefaultClassDef(); IEnumerable values = new object[] { "100", "200", "300" }; Criteria.CriteriaValues criteriaValues = new Criteria.CriteriaValues(values); Criteria criteria = new Criteria("TestProp", Criteria.ComparisonOp.NotIn, criteriaValues); ISelectQuery selectQuery = QueryBuilder.CreateSelectQuery(classDef, criteria); SelectQueryDB query = new SelectQueryDB(selectQuery, DatabaseConnection.CurrentConnection); //---------------Assert PreConditions--------------- //---------------Execute Test ---------------------- ISqlStatement statement = query.CreateSqlStatement(_sqlFormatter); //---------------Test Result ----------------------- string statementString = statement.Statement.ToString(); StringAssert.EndsWith("WHERE a1.[TestProp] NOT IN (?Param0, ?Param1, ?Param2)", statementString); Assert.AreEqual("?Param0", statement.Parameters[0].ParameterName); Assert.AreEqual("100", statement.Parameters[0].Value); Assert.AreEqual("?Param1", statement.Parameters[1].ParameterName); Assert.AreEqual("200", statement.Parameters[1].Value); Assert.AreEqual("?Param2", statement.Parameters[2].ParameterName); Assert.AreEqual("300", statement.Parameters[2].Value); //---------------Tear Down ------------------------- }
private static Criteria GetCriteriaLeaf(CriteriaExpression criteriaExpression) { string propName = criteriaExpression.Left.Expression; string operatorString = criteriaExpression.Expression; object value = criteriaExpression.Right.Expression; Criteria.ComparisonOp comparisonOp = CreateComparisonOperator(operatorString); if ((comparisonOp == Criteria.ComparisonOp.In || comparisonOp == Criteria.ComparisonOp.NotIn) && value is string) { string inValuesString = value.ToString().TrimStart('(').TrimEnd(')'); HabaneroStringBuilder valueStringBuilder = new HabaneroStringBuilder(inValuesString); valueStringBuilder.RemoveQuotedSections(); List<string> finalStrings = new List<string>(); int commaIndex; int lastIndex = 0; commaIndex = valueStringBuilder.IndexOf(","); while (commaIndex != -1) { HabaneroStringBuilder oneValueSubstring = valueStringBuilder.Substring(lastIndex, commaIndex-lastIndex); finalStrings.Add(oneValueSubstring.PutBackQuotedSections().ToString().Trim()); lastIndex = commaIndex+1; commaIndex = valueStringBuilder.IndexOf(",", lastIndex); } HabaneroStringBuilder oneValueString = valueStringBuilder.Substring(lastIndex, valueStringBuilder.ToString().Length - lastIndex); finalStrings.Add(oneValueString.PutBackQuotedSections().ToString().Trim()); value = new Criteria.CriteriaValues(finalStrings); } return new Criteria(propName, comparisonOp, value); }
public void TestNotIsMatch_OneProp_NotIn_Null() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); ContactPersonTestBO.LoadDefaultClassDef(); ContactPersonTestBO cp = new ContactPersonTestBO(); cp.Surname = "Surname1"; cp.FirstName = null; cp.Save(); object[] values = new object[] { null, "FirstName1" }; Criteria.CriteriaValues criteriaValues = new Criteria.CriteriaValues(values); //---------------Assert PreConditions--------------- //---------------Execute Test ---------------------- Criteria criteria = new Criteria("FirstName", Criteria.ComparisonOp.NotIn, criteriaValues); bool isMatch = criteria.IsMatch(cp); //---------------Test Result ----------------------- Assert.IsFalse(isMatch, "The object should not be a match since it doesn't match the criteria given."); //---------------Tear Down ------------------------- }
public void TestNotIn() { //-------------Setup Test Pack ------------------ //-------------Test Pre-conditions -------------- //-------------Execute test --------------------- object[] values = new object[] { "100", "200", "300" }; Criteria.CriteriaValues criteriaValues = new Criteria.CriteriaValues(values); Criteria criteria = new Criteria("MyField", Criteria.ComparisonOp.NotIn, criteriaValues); //-------------Test Result ---------------------- Assert.IsNotNull(criteria.Field); Assert.AreEqual("MyField", criteria.Field.PropertyName); Assert.IsNull(criteria.Field.Source); Assert.AreEqual("MyField", criteria.Field.FieldName); Assert.AreEqual(Criteria.ComparisonOp.NotIn, criteria.ComparisonOperator); Assert.IsTrue(criteria.CanBeParametrised()); }
public void TestIsMatch_OneProp_In() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); ContactPersonTestBO.LoadDefaultClassDef(); ContactPersonTestBO cp = new ContactPersonTestBO(); cp.Surname = "Surname1"; cp.Save(); object[] values = new object[] { "Surname1", "Surname2" }; Criteria.CriteriaValues criteriaValues = new Criteria.CriteriaValues(values); //---------------Assert PreConditions--------------- //---------------Execute Test ---------------------- Criteria criteria = new Criteria("Surname", Criteria.ComparisonOp.In, criteriaValues); bool isMatch = criteria.IsMatch(cp); //---------------Test Result ----------------------- Assert.IsTrue(isMatch, "The object should be a match since it matches the criteria given."); //---------------Tear Down ------------------------- }