@@ -693,4 +693,42 @@ public function testDelete()
693693 $ this ->assertNull ($ cachedResult );
694694 $ this ->assertNull ($ deletedAuthor );
695695 }
696+
697+ private function processWhereClauseTestWithOperator (string $ operator )
698+ {
699+ $ author = (new Author )->first ();
700+ $ authors = (new Author )
701+ ->where ('name ' , $ operator , $ author ->name )
702+ ->get ();
703+ $ keyParts = [
704+ 'genealabslaravelmodelcachingtestsfixturesauthor-name ' ,
705+ '_ ' ,
706+ str_replace (' ' , '_ ' , strtolower ($ operator )),
707+ '_ ' ,
708+ $ author ->name ,
709+ ];
710+ $ key = sha1 (implode ('' , $ keyParts ));
711+ $ tags = ['genealabslaravelmodelcachingtestsfixturesauthor ' ];
712+
713+ $ cachedResults = cache ()
714+ ->tags ($ tags )
715+ ->get ($ key );
716+ $ liveResults = (new UncachedAuthor )
717+ ->where ('name ' , $ operator , $ author ->name )
718+ ->get ();
719+
720+ $ this ->assertEmpty ($ authors ->diffAssoc ($ cachedResults ));
721+ $ this ->assertEmpty ($ liveResults ->diffAssoc ($ cachedResults ));
722+ }
723+
724+ public function testWhereClauseParsingOfOperators ()
725+ {
726+ $ this ->processWhereClauseTestWithOperator ('= ' );
727+ $ this ->processWhereClauseTestWithOperator ('!= ' );
728+ $ this ->processWhereClauseTestWithOperator ('<> ' );
729+ $ this ->processWhereClauseTestWithOperator ('> ' );
730+ $ this ->processWhereClauseTestWithOperator ('< ' );
731+ $ this ->processWhereClauseTestWithOperator ('LIKE ' );
732+ $ this ->processWhereClauseTestWithOperator ('NOT LIKE ' );
733+ }
696734}
0 commit comments