1919
2020import static com .datastax .oss .driver .api .querybuilder .Assertions .assertThat ;
2121import static com .datastax .oss .driver .api .querybuilder .QueryBuilder .bindMarker ;
22+ import static com .datastax .oss .driver .api .querybuilder .QueryBuilder .literal ;
2223import static com .datastax .oss .driver .api .querybuilder .QueryBuilder .raw ;
2324import static com .datastax .oss .driver .api .querybuilder .QueryBuilder .selectFrom ;
2425import static com .datastax .oss .driver .api .querybuilder .QueryBuilder .tuple ;
2526
27+ import org .assertj .core .util .Lists ;
2628import org .junit .Test ;
2729
2830public class RelationTest {
@@ -42,13 +44,78 @@ public void should_generate_is_not_null_relation() {
4244 }
4345
4446 @ Test
45- public void should_generate_in_relation () {
47+ public void should_generate_contains_relation () {
48+ assertThat (selectFrom ("foo" ).all ().where (Relation .column ("k" ).contains (literal (1 ))))
49+ .hasCql ("SELECT * FROM foo WHERE k CONTAINS 1" );
50+ }
51+
52+ @ Test
53+ public void should_generate_contains_key_relation () {
54+ assertThat (selectFrom ("foo" ).all ().where (Relation .column ("k" ).containsKey (literal (1 ))))
55+ .hasCql ("SELECT * FROM foo WHERE k CONTAINS KEY 1" );
56+ }
57+
58+ @ Test
59+ public void should_generate_not_contains_relation () {
60+ assertThat (selectFrom ("foo" ).all ().where (Relation .column ("k" ).notContains (literal (1 ))))
61+ .hasCql ("SELECT * FROM foo WHERE k NOT CONTAINS 1" );
62+ }
63+
64+ @ Test
65+ public void should_generate_not_contains_key_relation () {
66+ assertThat (selectFrom ("foo" ).all ().where (Relation .column ("k" ).notContainsKey (literal (1 ))))
67+ .hasCql ("SELECT * FROM foo WHERE k NOT CONTAINS KEY 1" );
68+ }
69+
70+ @ Test
71+ public void should_generate_in_relation_bind_markers () {
4672 assertThat (selectFrom ("foo" ).all ().where (Relation .column ("k" ).in (bindMarker ())))
4773 .hasCql ("SELECT * FROM foo WHERE k IN ?" );
4874 assertThat (selectFrom ("foo" ).all ().where (Relation .column ("k" ).in (bindMarker (), bindMarker ())))
4975 .hasCql ("SELECT * FROM foo WHERE k IN (?,?)" );
5076 }
5177
78+ @ Test
79+ public void should_generate_in_relation_terms () {
80+ assertThat (
81+ selectFrom ("foo" )
82+ .all ()
83+ .where (
84+ Relation .column ("k" )
85+ .in (Lists .newArrayList (literal (1 ), literal (2 ), literal (3 )))))
86+ .hasCql ("SELECT * FROM foo WHERE k IN (1,2,3)" );
87+ assertThat (
88+ selectFrom ("foo" )
89+ .all ()
90+ .where (Relation .column ("k" ).in (literal (1 ), literal (2 ), literal (3 ))))
91+ .hasCql ("SELECT * FROM foo WHERE k IN (1,2,3)" );
92+ }
93+
94+ @ Test
95+ public void should_generate_not_in_relation_bind_markers () {
96+ assertThat (selectFrom ("foo" ).all ().where (Relation .column ("k" ).notIn (bindMarker ())))
97+ .hasCql ("SELECT * FROM foo WHERE k NOT IN ?" );
98+ assertThat (
99+ selectFrom ("foo" ).all ().where (Relation .column ("k" ).notIn (bindMarker (), bindMarker ())))
100+ .hasCql ("SELECT * FROM foo WHERE k NOT IN (?,?)" );
101+ }
102+
103+ @ Test
104+ public void should_generate_not_in_relation_terms () {
105+ assertThat (
106+ selectFrom ("foo" )
107+ .all ()
108+ .where (
109+ Relation .column ("k" )
110+ .notIn (Lists .newArrayList (literal (1 ), literal (2 ), literal (3 )))))
111+ .hasCql ("SELECT * FROM foo WHERE k NOT IN (1,2,3)" );
112+ assertThat (
113+ selectFrom ("foo" )
114+ .all ()
115+ .where (Relation .column ("k" ).notIn (literal (1 ), literal (2 ), literal (3 ))))
116+ .hasCql ("SELECT * FROM foo WHERE k NOT IN (1,2,3)" );
117+ }
118+
52119 @ Test
53120 public void should_generate_token_relation () {
54121 assertThat (selectFrom ("foo" ).all ().where (Relation .token ("k1" , "k2" ).isEqualTo (bindMarker ("t" ))))
0 commit comments