Skip to content

Commit

Permalink
#134: Adapt tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kaklakariada committed Jul 11, 2023
1 parent 16419d9 commit d2e8e68
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 7 deletions.
16 changes: 16 additions & 0 deletions src/test/java/com/exasol/AbstractLuaVirtualSchemaIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.containsString;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assumptions.assumeTrue;

import java.io.IOException;
import java.nio.file.Files;
Expand All @@ -18,6 +19,7 @@
import org.testcontainers.junit.jupiter.Container;

import com.exasol.containers.ExasolContainer;
import com.exasol.containers.ExasolDockerImageReference;
import com.exasol.dbbuilder.dialects.*;
import com.exasol.dbbuilder.dialects.exasol.*;
import com.exasol.mavenprojectversiongetter.MavenProjectVersionGetter;
Expand Down Expand Up @@ -179,4 +181,18 @@ protected void assertPushDown(final String sql, final User user, final Matcher<S
throw new AssertionError("Unable to run push-down assertion query:" + exception.getMessage(), exception);
}
}

static void assumeExasol8OrHigher() {
assumeTrue(isExasol8OrHigher(), "is Exasol version 8 or higher");
}

static boolean isExasol8OrHigher() {
final ExasolDockerImageReference imageReference = EXASOL.getDockerImageReference();
return imageReference.hasMajor() && (imageReference.getMajor() >= 8);
}

static void assumeExasol7OrLower() {
final ExasolDockerImageReference imageReference = EXASOL.getDockerImageReference();
assumeTrue(imageReference.hasMajor() && (imageReference.getMajor() <= 7), "is Exasol version 7 or lower");
}
}
55 changes: 48 additions & 7 deletions src/test/java/com/exasol/MetadataReadingIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import org.junit.jupiter.api.Test;
import org.testcontainers.junit.jupiter.Testcontainers;

import com.exasol.containers.ExasolDockerImageReference;
import com.exasol.dbbuilder.dialects.*;
import com.exasol.dbbuilder.dialects.exasol.VirtualSchema;
import com.exasol.matcher.ResultSetStructureMatcher;
Expand Down Expand Up @@ -42,7 +41,54 @@ void testTableRegisteredAfterRlsMetaTable() {
}

@Test
void testDetermineColumnTypes() {
void testDetermineColumnTypesExasol7() {
assumeExasol7OrLower();
final Schema sourceSchema = createSchema("SCHEMA_COLUMN_TYPES");
final Table table = sourceSchema.createTableBuilder("T") //
.column("BO", "BOOLEAN") //
.column("CA", "CHAR(34) ASCII") //
.column("CU", "CHAR(345) UTF8") //
.column("DA", "DATE") //
.column("DO", "DOUBLE") //
.column("DE", "DECIMAL(15,9)") //
.column("G1", "GEOMETRY(7)") //
.column("G2", "GEOMETRY") //
.column("H1", "HASHTYPE(32 BIT)") //
.column("H2", "HASHTYPE(20 BYTE)") //
.column("I1", "INTERVAL YEAR TO MONTH") //
.column("I2", "INTERVAL YEAR(7) TO MONTH") //
.column("I3", "INTERVAL DAY TO SECOND") //
.column("I4", "INTERVAL DAY(4) TO SECOND(2)") //
.column("T1", "TIMESTAMP") //
.column("T2", "TIMESTAMP WITH LOCAL TIME ZONE") //
.column("VA", "VARCHAR(123) ASCII") //
.column("VU", "VARCHAR(12) UTF8") //
.build();
final VirtualSchema virtualSchema = createVirtualSchema(sourceSchema);
final User user = createUserWithVirtualSchemaAccess("USER_COLUMN_TYPE", virtualSchema);
assertVirtualTableStructure(table, user, expectRows("BO", "BOOLEAN", //
"CA", "CHAR(34) ASCII", //
"CU", "CHAR(345) UTF8", //
"DA", "DATE", //
"DO", "DOUBLE", //
"DE", "DECIMAL(15,9)", //
"G1", "GEOMETRY(7)", //
"G2", "GEOMETRY", //
"H1", "HASHTYPE(4 BYTE)", //
"H2", "HASHTYPE(20 BYTE)", //
"I1", "INTERVAL YEAR(2) TO MONTH", //
"I2", "INTERVAL YEAR(7) TO MONTH", //
"I3", "INTERVAL DAY(2) TO SECOND(3)", //
"I4", "INTERVAL DAY(4) TO SECOND(2)", //
"T1", "TIMESTAMP", //
"T2", "TIMESTAMP WITH LOCAL TIME ZONE", //
"VA", "VARCHAR(123) ASCII", //
"VU", "VARCHAR(12) UTF8"));
}

@Test
void testDetermineColumnTypesExasol8() {
assumeExasol8OrHigher();
final Schema sourceSchema = createSchema("SCHEMA_COLUMN_TYPES");
final Table table = sourceSchema.createTableBuilder("T") //
.column("BO", "BOOLEAN") //
Expand Down Expand Up @@ -116,11 +162,6 @@ private static void addExpectedRow(final ResultSetStructureMatcher.Builder build
}
}

static boolean isExasol8OrHigher() {
final ExasolDockerImageReference imageReference = EXASOL.getDockerImageReference();
return imageReference.hasMajor() && (imageReference.getMajor() >= 8);
}

@Test
void testRefreshMetadata() {
final Schema sourceSchema = createSchema("SCHEMA_FOR_REFRESH");
Expand Down

0 comments on commit d2e8e68

Please sign in to comment.