Add LIKE and Contains condition to Criteria

Signed-off-by: WimVelzeboer <wimvelzeboer@protonmail.com>
This commit is contained in:
WimVelzeboer
2022-02-25 11:11:31 +00:00
parent 932f1b8f23
commit 23ec70e2f1
3 changed files with 118 additions and 29 deletions
@@ -79,6 +79,30 @@ private with sharing class fflib_CriteriaTest
);
}
@IsTest
static void itShouldEvaluateAnContainsCondition()
{
fflib_Criteria criteria = new fflib_Criteria()
.contains(Account.Name, A_STRING);
System.assert(criteria.evaluate(new Account(Name = SAME_STRING)));
System.assert(criteria.evaluate(new Account(Name = 'prefix ' + SAME_STRING)));
System.assert(criteria.evaluate(new Account(Name = SAME_STRING + ' suffix')));
System.assert(criteria.evaluate(new Account(Name = 'prefix ' + SAME_STRING + ' suffix')));
System.assertEquals('Name LIKE \'%' + A_STRING + '%\'', criteria.toSOQL());
}
@IsTest
static void itShouldEvaluateAnContainsCondition_nullField()
{
fflib_Criteria criteria = new fflib_Criteria()
.contains(Account.Name, null);
System.assert(false == criteria.evaluate(new Account(Name = SAME_STRING)));
System.assert(false == criteria.evaluate(new Account(Name = 'prefix ' + SAME_STRING)));
System.assert(false == criteria.evaluate(new Account(Name = SAME_STRING + ' suffix')));
System.assert(false == criteria.evaluate(new Account(Name = 'prefix ' + SAME_STRING + ' suffix')));
System.assertEquals('Name LIKE \'%null%\'', criteria.toSOQL());
}
@IsTest
static void itShouldEvaluateAnEqualsToCondition()
{