@@ -98,6 +98,43 @@ public function testShouldCreateACriteriaFromAKeyValueArrayOfNonFilters()
9898 $ this ->assertEquals ($ expectedFilter , $ actualFilters [0 ][1 ]);
9999 }
100100
101+ public function operatorsProvider ()
102+ {
103+ return array (
104+ array ('= ' , 42 , new Filter \EqualTo (42 )),
105+ array ('!= ' , 42 , new Filter \Not (new Filter \EqualTo (42 ))),
106+ array ('< ' , 42 , new Filter \LessThan (42 )),
107+ array ('<= ' , 42 , new Filter \OneOf (array (new Filter \LessThan (42 ), new Filter \EqualTo (42 )))),
108+ array ('> ' , 42 , new Filter \GreaterThan (42 )),
109+ array ('>= ' , 42 , new Filter \OneOf (array (new Filter \GreaterThan (42 ), new Filter \EqualTo (42 )))),
110+ array ('BETWEEN ' , array (1 , 3 ), new Filter \Between (1 , 3 )),
111+ array ('NOT BETWEEN ' , array (1 , 3 ), new Filter \Not (new Filter \Between (1 , 3 ))),
112+ array ('ILIKE ' , 'String% ' , new Filter \ILike ('String% ' )),
113+ array ('NOT ILIKE ' , 'String% ' , new Filter \Not (new Filter \ILike ('String% ' ))),
114+ array ('IN ' , array (1 , 2 , 3 ), new Filter \In (array (1 , 2 , 3 ))),
115+ array ('NOT IN ' , array (1 , 2 , 3 ), new Filter \Not (new Filter \In (array (1 , 2 , 3 )))),
116+ array ('LIKE ' , 'String% ' , new Filter \Like ('String% ' )),
117+ array ('NOT LIKE ' , 'String% ' , new Filter \Not (new Filter \Like ('String% ' ))),
118+ array ('REGEX ' , '/[a-z]/ ' , new Filter \Regex ('/[a-z]/ ' )),
119+ array ('NOT REGEX ' , '/[a-z]/ ' , new Filter \Not (new Filter \Regex ('/[a-z]/ ' ))),
120+ );
121+ }
122+
123+ /**
124+ * @dataProvider operatorsProvider
125+ */
126+ public function testShouldCreateACriteriaFromAKeyValueArrayOfNonFiltersUsingOperator ($ operator , $ value , $ expectedFilter )
127+ {
128+ $ inputFilters = array (
129+ 'name ' . $ operator => $ value ,
130+ );
131+ $ factory = new Factory ();
132+ $ criteria = $ factory ->criteria ($ inputFilters );
133+ $ actualFilters = $ criteria ->getFilters ();
134+
135+ $ this ->assertEquals ($ expectedFilter , $ actualFilters [0 ][1 ]);
136+ }
137+
101138 public function testShouldReturnInputIfInputIsAlreadyAFilter ()
102139 {
103140 $ filter = new Filter \EqualTo (42 , 'identical ' );
0 commit comments