Skip to content

Commit 14db577

Browse files
authored
Add mixed-case object name tests (#2908)
1 parent b1fdc3b commit 14db577

18 files changed

+1847
-1603
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.scalar.db.storage.cassandra;
2+
3+
import com.scalar.db.api.DistributedStorageAdminCaseSensitivityIntegrationTestBase;
4+
import com.scalar.db.util.AdminTestUtils;
5+
import java.util.Collections;
6+
import java.util.Map;
7+
import java.util.Properties;
8+
9+
public class CassandraAdminCaseSensitivityIntegrationTest
10+
extends DistributedStorageAdminCaseSensitivityIntegrationTestBase {
11+
@Override
12+
protected Properties getProperties(String testName) {
13+
return CassandraEnv.getProperties(testName);
14+
}
15+
16+
@Override
17+
protected Map<String, String> getCreationOptions() {
18+
return Collections.singletonMap(CassandraAdmin.REPLICATION_FACTOR, "1");
19+
}
20+
21+
@Override
22+
protected AdminTestUtils getAdminTestUtils(String testName) {
23+
return new CassandraAdminTestUtils(getProperties(testName));
24+
}
25+
26+
@Override
27+
protected boolean isTimestampTypeSupported() {
28+
return false;
29+
}
30+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.scalar.db.storage.cassandra;
2+
3+
import com.scalar.db.api.DistributedStorageCaseSensitivityIntegrationTestBase;
4+
import java.util.Collections;
5+
import java.util.Map;
6+
import java.util.Properties;
7+
import org.junit.jupiter.api.Disabled;
8+
import org.junit.jupiter.api.Test;
9+
10+
public class CassandraCaseSensitivityIntegrationTest
11+
extends DistributedStorageCaseSensitivityIntegrationTestBase {
12+
@Override
13+
protected Properties getProperties(String testName) {
14+
return CassandraEnv.getProperties(testName);
15+
}
16+
17+
@Override
18+
protected Map<String, String> getCreationOptions() {
19+
return Collections.singletonMap(CassandraAdmin.REPLICATION_FACTOR, "1");
20+
}
21+
22+
@Disabled(
23+
"In Cassandra, if an IS NULL condition is specified for a column in a non-existing record, "
24+
+ "the condition is considered satisfied. This behavior differs from that of other adapters")
25+
@Override
26+
@Test
27+
public void put_withPutIfIsNullWhenRecordDoesNotExist_shouldThrowNoMutationException() {}
28+
}

core/src/integration-test/java/com/scalar/db/storage/cassandra/CassandraWithReservedKeywordIntegrationTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import java.util.Collections;
55
import java.util.Map;
66
import java.util.Properties;
7+
import org.junit.jupiter.api.Disabled;
8+
import org.junit.jupiter.api.Test;
79

810
public class CassandraWithReservedKeywordIntegrationTest
911
extends DistributedStorageWithReservedKeywordIntegrationTestBase {
@@ -58,4 +60,11 @@ protected String getColumnName5() {
5860
protected Properties getProperties(String testName) {
5961
return CassandraEnv.getProperties(testName);
6062
}
63+
64+
@Disabled(
65+
"In Cassandra, if an IS NULL condition is specified for a column in a non-existing record, "
66+
+ "the condition is considered satisfied. This behavior differs from that of other adapters")
67+
@Override
68+
@Test
69+
public void put_withPutIfIsNullWhenRecordDoesNotExist_shouldThrowNoMutationException() {}
6170
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.scalar.db.storage.cosmos;
2+
3+
import com.scalar.db.api.DistributedStorageAdminCaseSensitivityIntegrationTestBase;
4+
import com.scalar.db.util.AdminTestUtils;
5+
import java.util.Map;
6+
import java.util.Properties;
7+
8+
public class CosmosAdminCaseSensitivityIntegrationTest
9+
extends DistributedStorageAdminCaseSensitivityIntegrationTestBase {
10+
11+
@Override
12+
protected Properties getProperties(String testName) {
13+
return CosmosEnv.getProperties(testName);
14+
}
15+
16+
@Override
17+
protected Map<String, String> getCreationOptions() {
18+
return CosmosEnv.getCreationOptions();
19+
}
20+
21+
@Override
22+
protected AdminTestUtils getAdminTestUtils(String testName) {
23+
return new CosmosAdminTestUtils(getProperties(testName));
24+
}
25+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.scalar.db.storage.cosmos;
2+
3+
import com.scalar.db.api.DistributedStorageCaseSensitivityIntegrationTestBase;
4+
import java.util.Map;
5+
import java.util.Properties;
6+
7+
public class CosmosCaseSensitivityIntegrationTest
8+
extends DistributedStorageCaseSensitivityIntegrationTestBase {
9+
10+
@Override
11+
protected Properties getProperties(String testName) {
12+
return CosmosEnv.getProperties(testName);
13+
}
14+
15+
@Override
16+
protected Map<String, String> getCreationOptions() {
17+
return CosmosEnv.getCreationOptions();
18+
}
19+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.scalar.db.storage.dynamo;
2+
3+
import com.scalar.db.api.DistributedStorageAdminCaseSensitivityIntegrationTestBase;
4+
import com.scalar.db.util.AdminTestUtils;
5+
import java.util.Map;
6+
import java.util.Properties;
7+
8+
public class DynamoAdminCaseSensitivityIntegrationTest
9+
extends DistributedStorageAdminCaseSensitivityIntegrationTestBase {
10+
11+
@Override
12+
protected Properties getProperties(String testName) {
13+
return DynamoEnv.getProperties(testName);
14+
}
15+
16+
@Override
17+
protected Map<String, String> getCreationOptions() {
18+
return DynamoEnv.getCreationOptions();
19+
}
20+
21+
@Override
22+
protected boolean isIndexOnBooleanColumnSupported() {
23+
return false;
24+
}
25+
26+
@Override
27+
protected AdminTestUtils getAdminTestUtils(String testName) {
28+
return new DynamoAdminTestUtils(getProperties(testName));
29+
}
30+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.scalar.db.storage.dynamo;
2+
3+
import com.scalar.db.api.DistributedStorageCaseSensitivityIntegrationTestBase;
4+
import java.util.Map;
5+
import java.util.Properties;
6+
import org.junit.jupiter.api.Disabled;
7+
8+
public class DynamoCaseSensitivityIntegrationTest
9+
extends DistributedStorageCaseSensitivityIntegrationTestBase {
10+
11+
@Override
12+
protected Properties getProperties(String testName) {
13+
return DynamoEnv.getProperties(testName);
14+
}
15+
16+
@Override
17+
protected Map<String, String> getCreationOptions() {
18+
return DynamoEnv.getCreationOptions();
19+
}
20+
21+
@Disabled("DynamoDB doesn't support putting a null value for a secondary index column")
22+
@Override
23+
public void put_PutGivenForIndexedColumnWithNullValue_ShouldPut() {}
24+
}

core/src/integration-test/java/com/scalar/db/storage/dynamo/DynamoIntegrationTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ protected Map<String, String> getCreationOptions() {
1717
return DynamoEnv.getCreationOptions();
1818
}
1919

20-
// DynamoDB doesn't support putting a null value for a secondary index column
21-
@Disabled
20+
@Disabled("DynamoDB doesn't support putting a null value for a secondary index column")
2221
@Override
2322
public void put_PutGivenForIndexedColumnWithNullValue_ShouldPut() {}
2423
}

core/src/integration-test/java/com/scalar/db/storage/dynamo/DynamoWithReservedKeywordIntegrationTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.scalar.db.api.DistributedStorageWithReservedKeywordIntegrationTestBase;
44
import java.util.Map;
55
import java.util.Properties;
6+
import org.junit.jupiter.api.Disabled;
67

78
public class DynamoWithReservedKeywordIntegrationTest
89
extends DistributedStorageWithReservedKeywordIntegrationTestBase {
@@ -58,4 +59,8 @@ protected Properties getProperties(String testName) {
5859
protected Map<String, String> getCreationOptions() {
5960
return DynamoEnv.getCreationOptions();
6061
}
62+
63+
@Disabled("DynamoDB doesn't support putting a null value for a secondary index column")
64+
@Override
65+
public void put_PutGivenForIndexedColumnWithNullValue_ShouldPut() {}
6166
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.scalar.db.storage.jdbc;
2+
3+
import com.scalar.db.api.DistributedStorageAdminCaseSensitivityIntegrationTestBase;
4+
import com.scalar.db.config.DatabaseConfig;
5+
import com.scalar.db.util.AdminTestUtils;
6+
import java.util.Properties;
7+
8+
public class JdbcAdminCaseSensitivityIntegrationTest
9+
extends DistributedStorageAdminCaseSensitivityIntegrationTestBase {
10+
private RdbEngineStrategy rdbEngine;
11+
12+
@Override
13+
protected Properties getProperties(String testName) {
14+
Properties properties = JdbcEnv.getProperties(testName);
15+
rdbEngine = RdbEngineFactory.create(new JdbcConfig(new DatabaseConfig(properties)));
16+
return properties;
17+
}
18+
19+
@Override
20+
protected AdminTestUtils getAdminTestUtils(String testName) {
21+
return new JdbcAdminTestUtils(getProperties(testName));
22+
}
23+
24+
@Override
25+
protected boolean isCreateIndexOnTextAndBlobColumnsEnabled() {
26+
// "admin.createIndex()" for TEXT and BLOB columns fails (the "create index" query runs
27+
// indefinitely) on Db2 community edition version but works on Db2 hosted on IBM Cloud.
28+
// So we disable these tests until the issue is resolved.
29+
return !JdbcTestUtils.isDb2(rdbEngine);
30+
}
31+
}

0 commit comments

Comments
 (0)