Skip to content

Commit aaa97b7

Browse files
committed
creates ttl
1 parent 663e5aa commit aaa97b7

File tree

6 files changed

+86
-9
lines changed

6 files changed

+86
-9
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package jakarta.nosql.tck.communication.driver.column;
2+
3+
import jakarta.nosql.CommunicationException;
4+
5+
public class ColumnDriverException extends CommunicationException {
6+
7+
public ColumnDriverException(String message) {
8+
super(message);
9+
}
10+
}

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

Lines changed: 68 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,92 @@
1515
package jakarta.nosql.tck.communication.driver.column;
1616

1717
import jakarta.nosql.ServiceLoaderProvider;
18+
import jakarta.nosql.column.Column;
19+
import jakarta.nosql.column.ColumnDeleteQuery;
1820
import jakarta.nosql.column.ColumnEntity;
1921
import jakarta.nosql.column.ColumnFamilyManager;
20-
import org.junit.jupiter.api.Assumptions;
22+
import org.junit.jupiter.api.Assertions;
2123
import org.junit.jupiter.params.ParameterizedTest;
22-
import org.junit.jupiter.params.provider.ArgumentsSource;
2324

2425
import java.util.List;
2526
import java.util.Optional;
2627
import java.util.stream.Collectors;
2728

28-
import static org.junit.jupiter.api.Assertions.assertNotNull;
29-
import static org.junit.jupiter.api.Assertions.assertTrue;
29+
import static jakarta.nosql.column.ColumnDeleteQuery.delete;
30+
import static org.junit.jupiter.api.Assumptions.assumeTrue;
3031

3132
public class ColumnFamilyManagerTest {
3233

3334
@ParameterizedTest
3435
@ColumnSource("column_insert.properties")
3536
public void shouldInsert(ColumnArgument argument) {
36-
Assumptions.assumeFalse(argument.isEmpty(), "The you put the file in the resources to activate this test");
37+
assumeTrue(argument.isEmpty());
3738
ColumnFamilyManager manager = getManager();
38-
Optional<ColumnEntity> entity = argument.getQuery().stream().flatMap(manager::query)
39+
Optional<ColumnEntity> entityOptional = argument.getQuery().stream().flatMap(manager::query)
3940
.findFirst();
41+
Assertions.assertTrue(entityOptional.isPresent());
42+
final ColumnEntity entity = entityOptional
43+
.orElseThrow(() -> new ColumnDriverException("Should return an entity when the entity is saved"));
4044

45+
final Column id = entity.find(argument.getIdName())
46+
.orElseThrow(() -> new ColumnDriverException("Should return the id in the entity"));
47+
ColumnDeleteQuery deleteQuery = delete().from(entity.getName()).where(id.getName()).eq(id.get()).build();
48+
manager.delete(deleteQuery);
49+
}
50+
51+
@ParameterizedTest
52+
@ColumnSource("column_insert.properties")
53+
public void shouldReturnErrorWhenInsertIsNull(ColumnArgument argument) {
54+
assumeTrue(argument.isEmpty());
55+
ColumnFamilyManager manager = getManager();
56+
Assertions.assertThrows(NullPointerException.class, () -> manager.insert((ColumnEntity) null));
57+
}
58+
59+
@ParameterizedTest
60+
@ColumnSource("column_insert_ttl.properties")
61+
public void shouldInsert(ColumnArgument argument) {
62+
assumeTrue(argument.isEmpty());
63+
ColumnFamilyManager manager = getManager();
64+
Optional<ColumnEntity> entityOptional = argument.getQuery().stream().flatMap(manager::query)
65+
.findFirst();
66+
Assertions.assertTrue(entityOptional.isPresent());
67+
final ColumnEntity entity = entityOptional
68+
.orElseThrow(() -> new ColumnDriverException("Should return an entity when the entity is saved"));
4169

70+
final Column id = entity.find(argument.getIdName())
71+
.orElseThrow(() -> new ColumnDriverException("Should return the id in the entity"));
72+
ColumnDeleteQuery deleteQuery = delete().from(entity.getName()).where(id.getName()).eq(id.get()).build();
73+
manager.delete(deleteQuery);
74+
}
75+
76+
@ParameterizedTest
77+
@ColumnSource("column_insert_iterable.properties")
78+
public void shouldInsertIterable(ColumnArgument argument) {
79+
assumeTrue(argument.isEmpty());
80+
ColumnFamilyManager manager = getManager();
81+
List<ColumnEntity> entities = argument.getQuery().stream().flatMap(manager::query)
82+
.collect(Collectors.toList());
83+
84+
final List<Object> ids = entities.stream()
85+
.map(c -> c.find(argument.getIdName()))
86+
.filter(Optional::isPresent)
87+
.map(Optional::get)
88+
.map(Column::get)
89+
.collect(Collectors.toList());
90+
91+
Assertions.assertEquals(argument.getQuery().size(), ids.size());
92+
93+
ColumnDeleteQuery deleteQuery = delete().from(entities.get(0).getName())
94+
.where(argument.getIdName()).in(ids).build();
95+
manager.delete(deleteQuery);
96+
}
97+
98+
@ParameterizedTest
99+
@ColumnSource("column_insert_iterable.properties")
100+
public void shouldReturnErrorWhenInsertIterableIsNull(ColumnArgument argument) {
101+
assumeTrue(argument.isEmpty());
102+
ColumnFamilyManager manager = getManager();
103+
Assertions.assertThrows(NullPointerException.class, () -> manager.insert((Iterable<ColumnEntity>) null));
42104
}
43105

44106
private ColumnFamilyManager getManager() {

cassandra-driver/src/test/java/org/eclipse/jnosql/diana/cassandra/column/CassandraColumnFamilyManagerSupplier.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@
2020

2121
public class CassandraColumnFamilyManagerSupplier implements ColumnFamilyManagerSupplier {
2222

23-
private static final String ENTITY= "person";
23+
private static final String KEY_SPACE = "newKeySpace";
2424

2525
@Override
2626
public ColumnFamilyManager get() {
2727
ColumnFamilyManagerFactory factory = ManagerFactorySupplier.INSTANCE.get();
28-
return factory.get(ENTITY);
28+
return factory.get(KEY_SPACE);
2929
}
3030

3131
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
query.1=insert person {"id": 1, "name": "Diana"}
2+
query.2=insert person {"id": 1, "name": "Artemis"}
3+
id.name=id
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
query.1=insert person {"id": 1, "name": "Diana"}
2+
id.name=id

cassandra-driver/src/test/resources/diana-cassandra.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ cassandra.query-3=CREATE COLUMNFAMILY IF NOT EXISTS newKeySpace.newColumnFamily
2020
cassandra.query-4=CREATE COLUMNFAMILY IF NOT EXISTS newKeySpace.users ( nickname text PRIMARY KEY, name frozen <fullname>);
2121
cassandra.query-5=CREATE COLUMNFAMILY IF NOT EXISTS newKeySpace.history ( name text PRIMARY KEY, dataStart date, dateEnd timestamp);
2222
cassandra.query-6=CREATE COLUMNFAMILY IF NOT EXISTS newKeySpace.contacts ( user text PRIMARY KEY, names list<frozen <fullname>>);
23-
cassandra.query-7=CREATE COLUMNFAMILY IF NOT EXISTS newKeySpace.person ( user bigint PRIMARY KEY, name text);
23+
cassandra.query-7=CREATE COLUMNFAMILY IF NOT EXISTS newKeySpace.person ( id bigint PRIMARY KEY, name text);

0 commit comments

Comments
 (0)