Skip to content

Commit e59424a

Browse files
authored
Merge pull request #86 from utPLSQL/feature/support_for_tags
Feature/support for tags
2 parents e7f97e1 + c0a7fcd commit e59424a

File tree

8 files changed

+53
-3
lines changed

8 files changed

+53
-3
lines changed

src/main/java/org/utplsql/api/TestRunner.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.sql.Connection;
1717
import java.sql.SQLException;
1818
import java.util.ArrayList;
19+
import java.util.Collection;
1920
import java.util.List;
2021
import java.util.concurrent.*;
2122

@@ -129,6 +130,16 @@ public TestRunner randomTestOrderSeed( Integer seed ) {
129130
return this;
130131
}
131132

133+
public TestRunner addTag( String tag ) {
134+
this.options.tags.add(tag);
135+
return this;
136+
}
137+
138+
public TestRunner addTags(Collection<String> tags) {
139+
this.options.tags.addAll(tags);
140+
return this;
141+
}
142+
132143
public TestRunnerOptions getOptions() { return options; }
133144

134145
private void delayedAddReporters() {

src/main/java/org/utplsql/api/TestRunnerOptions.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44

55
import java.nio.charset.Charset;
66
import java.util.ArrayList;
7+
import java.util.LinkedHashSet;
78
import java.util.List;
9+
import java.util.Set;
810

911
/**
1012
* Holds the various possible options of TestRunner
@@ -27,4 +29,9 @@ public class TestRunnerOptions {
2729
public String clientCharacterSet = Charset.defaultCharset().toString();
2830
public boolean randomTestOrder = false;
2931
public Integer randomTestOrderSeed;
32+
public final Set<String> tags = new LinkedHashSet<>();
33+
34+
public String getTagsAsString() {
35+
return String.join(",", tags);
36+
}
3037
}

src/main/java/org/utplsql/api/compatibility/OptionalFeatures.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ public enum OptionalFeatures {
1212
FRAMEWORK_COMPATIBILITY_CHECK("3.0.3.1266", null),
1313
CUSTOM_REPORTERS("3.1.0.1849", null),
1414
CLIENT_CHARACTER_SET("3.1.2.2130", null),
15-
RANDOM_EXECUTION_ORDER("3.1.7.2795", null);
15+
RANDOM_EXECUTION_ORDER("3.1.7.2795", null),
16+
TAGS("3.1.7.3006", null);
1617

1718
private final Version minVersion;
1819
private final Version maxVersion;

src/main/java/org/utplsql/api/testRunner/ActualTestRunnerStatement.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ protected String getSql() {
3939
"a_fail_on_errors => " + failOnErrors + ", " +
4040
"a_client_character_set => ?, " +
4141
"a_random_test_order => " + randomExecutionOrder + ", " +
42-
"a_random_test_order_seed => ?"+
42+
"a_random_test_order_seed => ?, "+
43+
"a_tags => ?"+
4344
"); " +
4445
"END;";
4546
}
@@ -55,6 +56,12 @@ protected int createStatement() throws SQLException {
5556
callableStatement.setInt(++curParamIdx, options.randomTestOrderSeed);
5657
}
5758

59+
if ( options.tags.size() == 0 ) {
60+
callableStatement.setNull(++curParamIdx, Types.VARCHAR);
61+
} else {
62+
callableStatement.setString(++curParamIdx, options.getTagsAsString());
63+
}
64+
5865
return curParamIdx;
5966
}
6067
}

src/test/java/org/utplsql/api/EnvironmentVariableUtilTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ void testGetVariableFromProperty() {
3737
@Test
3838
void testGetVariableFromDefault() {
3939

40-
assertEquals("defaultValue", EnvironmentVariableUtil.getEnvValue("RANDOM" + String.valueOf(System.currentTimeMillis()), "defaultValue"));
40+
assertEquals("defaultValue", EnvironmentVariableUtil.getEnvValue("RANDOM" + System.currentTimeMillis(), "defaultValue"));
4141
}
4242

4343
}

src/test/java/org/utplsql/api/OptionalFeaturesIT.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,15 @@ void randomExecutionOrder() throws SQLException, InvalidVersionException {
7474
assertFalse(available);
7575
}
7676
}
77+
78+
@Test
79+
void tags() throws SQLException, InvalidVersionException {
80+
boolean available = OptionalFeatures.TAGS.isAvailableFor(getConnection());
81+
82+
if (getDatabaseVersion().isGreaterOrEqualThan(Version.V3_1_7)) {
83+
assertTrue(available);
84+
} else {
85+
assertFalse(available);
86+
}
87+
}
7788
}

src/test/java/org/utplsql/api/TestRunnerIT.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,11 @@ void runWithRandomExecutionOrder() throws SQLException {
8888
.run(getConnection());
8989
}
9090

91+
@Test
92+
void runWithTags() throws SQLException {
93+
new TestRunner()
94+
.addTag("none")
95+
.run(getConnection());
96+
}
97+
9198
}

src/test/java/org/utplsql/api/testRunner/TestRunnerStatementProviderIT.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ void testGettingPre303Version() throws SQLException {
2727
assertThat(stmt.getSql(), not(containsString("a_client_character_set")));
2828
assertThat(stmt.getSql(), not(containsString("a_random_test_order")));
2929
assertThat(stmt.getSql(), not(containsString("a_random_test_order_seed")));
30+
assertThat(stmt.getSql(), not(containsString("a_tags")));
3031
}
3132

3233

@@ -38,6 +39,7 @@ void testGettingPre312Version_from_303() throws SQLException {
3839
assertThat(stmt.getSql(), not(containsString("a_client_character_set")));
3940
assertThat(stmt.getSql(), not(containsString("a_random_test_order")));
4041
assertThat(stmt.getSql(), not(containsString("a_random_test_order_seed")));
42+
assertThat(stmt.getSql(), not(containsString("a_tags")));
4143
}
4244

4345
@Test
@@ -48,6 +50,7 @@ void testGettingPre312Version_from_311() throws SQLException {
4850
assertThat(stmt.getSql(), not(containsString("a_client_character_set")));
4951
assertThat(stmt.getSql(), not(containsString("a_random_test_order")));
5052
assertThat(stmt.getSql(), not(containsString("a_random_test_order_seed")));
53+
assertThat(stmt.getSql(), not(containsString("a_tags")));
5154
}
5255

5356
@Test
@@ -58,6 +61,7 @@ void testGettingPre317Version_from_312() throws SQLException {
5861
assertThat(stmt.getSql(), containsString("a_client_character_set"));
5962
assertThat(stmt.getSql(), not(containsString("a_random_test_order")));
6063
assertThat(stmt.getSql(), not(containsString("a_random_test_order_seed")));
64+
assertThat(stmt.getSql(), not(containsString("a_tags")));
6165
}
6266

6367
@Test
@@ -68,6 +72,7 @@ void testGettingPre317Version_from_316() throws SQLException {
6872
assertThat(stmt.getSql(), containsString("a_client_character_set"));
6973
assertThat(stmt.getSql(), not(containsString("a_random_test_order")));
7074
assertThat(stmt.getSql(), not(containsString("a_random_test_order_seed")));
75+
assertThat(stmt.getSql(), not(containsString("a_tags")));
7176
}
7277

7378
@Test
@@ -78,5 +83,6 @@ void testGettingActualVersion_from_latest() throws SQLException {
7883
assertThat(stmt.getSql(), containsString("a_client_character_set"));
7984
assertThat(stmt.getSql(), containsString("a_random_test_order"));
8085
assertThat(stmt.getSql(), containsString("a_random_test_order_seed"));
86+
assertThat(stmt.getSql(), containsString("a_tags"));
8187
}
8288
}

0 commit comments

Comments
 (0)