Skip to content

Commit cd95d4c

Browse files
committed
Updates column test
1 parent ffb846e commit cd95d4c

File tree

2 files changed

+117
-3
lines changed

2 files changed

+117
-3
lines changed

cassandra-driver/src/test/java/jakarta/nosql/tck/communication/driver/column/ColumnFamilyManagerTest.java

Lines changed: 116 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
*/
1515
package jakarta.nosql.tck.communication.driver.column;
1616

17+
import jakarta.nosql.NonUniqueResultException;
1718
import jakarta.nosql.ServiceLoaderProvider;
1819
import jakarta.nosql.column.Column;
1920
import jakarta.nosql.column.ColumnDeleteQuery;
@@ -31,9 +32,11 @@
3132
import java.util.stream.Collectors;
3233

3334
import static jakarta.nosql.column.ColumnDeleteQuery.delete;
35+
import static jakarta.nosql.column.ColumnQuery.select;
3436
import static org.junit.jupiter.api.Assertions.assertEquals;
3537
import static org.junit.jupiter.api.Assertions.assertNotNull;
3638
import static org.junit.jupiter.api.Assertions.assertThrows;
39+
import static org.junit.jupiter.api.Assertions.assertTrue;
3740
import static org.junit.jupiter.api.Assumptions.assumeTrue;
3841

3942
public class ColumnFamilyManagerTest {
@@ -78,7 +81,7 @@ public void shouldInsertTTL(ColumnArgument argument) throws InterruptedException
7881
.orElseThrow(() -> new ColumnDriverException("Should return the id in the entity"));
7982

8083
TimeUnit.SECONDS.sleep(2L);
81-
final ColumnQuery query = ColumnQuery.select().from(entity.getName()).where(id.getName()).eq(id.get()).build();
84+
final ColumnQuery query = select().from(entity.getName()).where(id.getName()).eq(id.get()).build();
8285
final long count = manager.select(query).count();
8386
assertEquals(0L, count);
8487
}
@@ -138,7 +141,7 @@ public void shouldInsertIterableTTL(ColumnArgument argument) throws InterruptedE
138141
.map(Optional::get).map(Column::get).collect(Collectors.toList());
139142

140143
TimeUnit.SECONDS.sleep(2L);
141-
final ColumnQuery query = ColumnQuery.select().from(entities.get(0).getName())
144+
final ColumnQuery query = select().from(entities.get(0).getName())
142145
.where(argument.getIdName()).in(ids).build();
143146
final long count = manager.select(query).count();
144147
assertEquals(0L, count);
@@ -216,6 +219,117 @@ public void shouldReturnErrorWhenUpdateIterableIsNull(ColumnArgument argument) {
216219
assertThrows(NullPointerException.class, () -> manager.update((Iterable<ColumnEntity>) null));
217220
}
218221

222+
@ParameterizedTest
223+
@ColumnSource("column.properties")
224+
public void shouldDelete(ColumnArgument argument) {
225+
assumeTrue(argument.isEmpty());
226+
ColumnFamilyManager manager = getManager();
227+
Optional<ColumnEntity> entityOptional = argument.getQuery().stream().flatMap(manager::query)
228+
.findFirst();
229+
Assertions.assertTrue(entityOptional.isPresent());
230+
final ColumnEntity entity = entityOptional
231+
.orElseThrow(() -> new ColumnDriverException("Should return an entity when the entity is saved"));
232+
233+
final Column id = entity.find(argument.getIdName())
234+
.orElseThrow(() -> new ColumnDriverException("Should return the id in the entity"));
235+
ColumnDeleteQuery deleteQuery = delete().from(entity.getName()).where(id.getName()).eq(id.get()).build();
236+
manager.delete(deleteQuery);
237+
238+
ColumnQuery query = select().from(entity.getName()).where(id.getName()).eq(id.get()).build();
239+
assertEquals(0L, manager.select(query).count());
240+
}
241+
242+
@ParameterizedTest
243+
@ColumnSource("column.properties")
244+
public void shouldReturnErrorWhenDelete(ColumnArgument argument) {
245+
assumeTrue(argument.isEmpty());
246+
ColumnFamilyManager manager = getManager();
247+
assertThrows(NullPointerException.class, () -> manager.delete(null));
248+
}
249+
250+
@ParameterizedTest
251+
@ColumnSource("column.properties")
252+
public void shouldSelect(ColumnArgument argument) {
253+
assumeTrue(argument.isEmpty());
254+
ColumnFamilyManager manager = getManager();
255+
Optional<ColumnEntity> entityOptional = argument.getQuery().stream().flatMap(manager::query)
256+
.findFirst();
257+
Assertions.assertTrue(entityOptional.isPresent());
258+
final ColumnEntity entity = entityOptional
259+
.orElseThrow(() -> new ColumnDriverException("Should return an entity when the entity is saved"));
260+
261+
final Column id = entity.find(argument.getIdName())
262+
.orElseThrow(() -> new ColumnDriverException("Should return the id in the entity"));
263+
264+
ColumnQuery query = select().from(entity.getName()).where(id.getName()).eq(id.get()).build();
265+
assertEquals(1L, manager.select(query).count());
266+
ColumnDeleteQuery deleteQuery = delete().from(entity.getName()).where(id.getName()).eq(id.get()).build();
267+
manager.delete(deleteQuery);
268+
}
269+
270+
@ParameterizedTest
271+
@ColumnSource("column.properties")
272+
public void shouldReturnErrorWhenSelect(ColumnArgument argument) {
273+
assumeTrue(argument.isEmpty());
274+
ColumnFamilyManager manager = getManager();
275+
assertThrows(NullPointerException.class, () -> manager.select(null));
276+
}
277+
278+
@ParameterizedTest
279+
@ColumnSource("column.properties")
280+
public void shouldSingleResult(ColumnArgument argument) {
281+
assumeTrue(argument.isEmpty());
282+
ColumnFamilyManager manager = getManager();
283+
Optional<ColumnEntity> entityOptional = argument.getQuery().stream().flatMap(manager::query)
284+
.findFirst();
285+
Assertions.assertTrue(entityOptional.isPresent());
286+
final ColumnEntity entity = entityOptional
287+
.orElseThrow(() -> new ColumnDriverException("Should return an entity when the entity is saved"));
288+
289+
final Column id = entity.find(argument.getIdName())
290+
.orElseThrow(() -> new ColumnDriverException("Should return the id in the entity"));
291+
292+
ColumnQuery query = select().from(entity.getName()).where(id.getName()).eq(id.get()).build();
293+
final Optional<ColumnEntity> optional = manager.singleResult(query);
294+
assertTrue(optional.isPresent());
295+
ColumnDeleteQuery deleteQuery = delete().from(entity.getName()).where(id.getName()).eq(id.get()).build();
296+
manager.delete(deleteQuery);
297+
}
298+
299+
@ParameterizedTest
300+
@ColumnSource("column_iterable.properties")
301+
public void shouldAnEmptySingleResult(ColumnArgument argument) {
302+
assumeTrue(argument.isEmpty());
303+
ColumnFamilyManager manager = getManager();
304+
List<ColumnEntity> entities = argument.getQuery().stream().flatMap(manager::query)
305+
.collect(Collectors.toList());
306+
307+
assertNotNull(manager.update(entities));
308+
final List<Object> ids = entities.stream()
309+
.map(c -> c.find(argument.getIdName()))
310+
.filter(Optional::isPresent)
311+
.map(Optional::get)
312+
.map(Column::get)
313+
.collect(Collectors.toList());
314+
315+
ColumnQuery query = select().from(entities.get(0).getName())
316+
.where(argument.getIdName()).in(ids).build();
317+
318+
assertThrows(NonUniqueResultException.class, () -> manager.singleResult(query));
319+
ColumnDeleteQuery deleteQuery = delete().from(entities.get(0).getName())
320+
.where(argument.getIdName()).in(ids).build();
321+
manager.delete(deleteQuery);
322+
}
323+
324+
@ParameterizedTest
325+
@ColumnSource("column.properties")
326+
public void shouldReturnErrorWhenSingleResult(ColumnArgument argument) {
327+
assumeTrue(argument.isEmpty());
328+
ColumnFamilyManager manager = getManager();
329+
assertThrows(NullPointerException.class, () -> manager.singleResult(null));
330+
}
331+
332+
219333
private ColumnFamilyManager getManager() {
220334
final ColumnFamilyManagerSupplier supplier = ServiceLoaderProvider.get(ColumnFamilyManagerSupplier.class);
221335
return supplier.get();
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
query.1=insert person {"id": 1, "name": "Diana"}
2-
query.2=insert person {"id": 1, "name": "Artemis"}
2+
query.2=insert person {"id": 2, "name": "Artemis"}
33
id.name=id

0 commit comments

Comments
 (0)