Skip to content

Commit 141215a

Browse files
committed
tests imports optimized
refactored ReportInspectors: moved Map creation to interface default method, moved info storage and initialization to subclasses from abstract class. Fixed test failure due to wrong order of construction
1 parent 6e34be6 commit 141215a

10 files changed

+30
-53
lines changed

Diff for: src/main/java/org/utplsql/api/reporter/inspect/AbstractReporterInspector.java

+1-19
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,15 @@
33
import org.utplsql.api.reporter.ReporterFactory;
44

55
import java.sql.Connection;
6-
import java.sql.SQLException;
7-
import java.util.*;
8-
import java.util.function.Function;
9-
import java.util.stream.Collectors;
106

117
abstract class AbstractReporterInspector implements ReporterInspector {
128

139
protected final ReporterFactory reporterFactory;
1410
protected final Connection connection;
15-
protected final Set<ReporterInfo> infos;
1611

17-
AbstractReporterInspector(ReporterFactory reporterFactory, Connection conn ) throws SQLException {
12+
AbstractReporterInspector(ReporterFactory reporterFactory, Connection conn ) {
1813
this.reporterFactory = reporterFactory;
1914
this.connection = conn;
20-
this.infos = loadReporterInfos();
21-
}
22-
23-
protected abstract Set<ReporterInfo> loadReporterInfos() throws SQLException;
24-
25-
@Override
26-
public Map<String, ReporterInfo> getReporterInfoMap() {
27-
return infos.stream().collect(Collectors.toMap(ReporterInfo::getName, Function.identity()));
28-
}
29-
30-
@Override
31-
public List<ReporterInfo> getReporterInfos() {
32-
return new ArrayList<>(infos);
3315
}
3416

3517
}

Diff for: src/main/java/org/utplsql/api/reporter/inspect/ReporterInspector.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import java.sql.SQLException;
1010
import java.util.List;
1111
import java.util.Map;
12+
import java.util.function.Function;
13+
import java.util.stream.Collectors;
1214

1315
/**
1416
* Gives information about available reporters
@@ -19,7 +21,9 @@ public interface ReporterInspector {
1921

2022
List<ReporterInfo> getReporterInfos();
2123

22-
Map<String, ReporterInfo> getReporterInfoMap();
24+
default Map<String, ReporterInfo> getReporterInfoMap() {
25+
return getReporterInfos().stream().collect(Collectors.toMap(ReporterInfo::getName, Function.identity()));
26+
}
2327

2428
/**
2529
* Returns a new instance of a ReporterInspector, based on the utPLSQL version used in the connection

Diff for: src/main/java/org/utplsql/api/reporter/inspect/ReporterInspector310.java

+9-7
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,29 @@
2020
class ReporterInspector310 extends AbstractReporterInspector {
2121

2222
private final Map<String, String> registeredReporterFactoryMethods;
23+
private final Set<ReporterInfo> infos;
2324

2425
ReporterInspector310(ReporterFactory reporterFactory, Connection conn ) throws SQLException {
2526
super(reporterFactory, conn);
26-
2727
registeredReporterFactoryMethods = reporterFactory.getRegisteredReporterInfo();
2828

29-
}
30-
31-
@Override
32-
protected Set<ReporterInfo> loadReporterInfos() throws SQLException {
3329
Set<ReporterInfo> reporterInfos = new HashSet<>();
3430
try (PreparedStatement stmt = connection.prepareStatement("select * from table(ut_runner.get_reporters_list) order by 1")) {
3531
try (ResultSet rs = stmt.executeQuery() ) {
3632
while (rs.next())
3733
reporterInfos.add(getReporterInfo(rs.getString(1)));
3834
}
3935
}
40-
return reporterInfos;
36+
this.infos = reporterInfos;
37+
38+
}
39+
40+
@Override
41+
public List<ReporterInfo> getReporterInfos() {
42+
return new ArrayList<>(infos);
4143
}
4244

43-
private ReporterInfo getReporterInfo( String reporterNameWithOwner ) throws SQLException {
45+
private ReporterInfo getReporterInfo(String reporterNameWithOwner ) throws SQLException {
4446
String reporterName = reporterNameWithOwner.substring(reporterNameWithOwner.indexOf(".")+1).toUpperCase();
4547

4648
ReporterInfo.Type type = ReporterInfo.Type.SQL;

Diff for: src/main/java/org/utplsql/api/reporter/inspect/ReporterInspectorPre310.java

+11-11
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,25 @@
77

88
import java.sql.Connection;
99
import java.sql.SQLException;
10-
import java.util.Arrays;
11-
import java.util.HashMap;
12-
import java.util.Map;
13-
import java.util.Set;
10+
import java.util.*;
1411
import java.util.stream.Collectors;
1512

1613
class ReporterInspectorPre310 extends AbstractReporterInspector {
1714

1815
private final Map<String, String> registeredReporterFactoryMethods;
1916
private final Map<CoreReporters, String> descriptions = new HashMap<>();
17+
private final Set<ReporterInfo> infos;
2018

2119
ReporterInspectorPre310(ReporterFactory reporterFactory, Connection conn) throws SQLException {
2220
super(reporterFactory, conn);
23-
initDefaultDescriptions();
2421
registeredReporterFactoryMethods = reporterFactory.getRegisteredReporterInfo();
22+
initDefaultDescriptions();
23+
24+
Version databaseVersion = new CompatibilityProxy(connection).getDatabaseVersion();
25+
this.infos = Arrays.stream(CoreReporters.values())
26+
.filter(r -> r.isAvailableFor(databaseVersion))
27+
.map(this::getReporterInfo)
28+
.collect(Collectors.toSet());
2529
}
2630

2731
private void initDefaultDescriptions() {
@@ -35,12 +39,8 @@ private void initDefaultDescriptions() {
3539
}
3640

3741
@Override
38-
protected Set<ReporterInfo> loadReporterInfos() throws SQLException {
39-
Version databaseVersion = new CompatibilityProxy(connection).getDatabaseVersion();
40-
return Arrays.stream(CoreReporters.values())
41-
.filter(r -> r.isAvailableFor(databaseVersion))
42-
.map(this::getReporterInfo)
43-
.collect(Collectors.toSet());
42+
public List<ReporterInfo> getReporterInfos() {
43+
return new ArrayList<>(this.infos);
4444
}
4545

4646
private ReporterInfo getReporterInfo(CoreReporters reporter) {

Diff for: src/test/java/org/utplsql/api/RegisterCustomReporterTest.java

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.utplsql.api;
22

33
import org.junit.jupiter.api.Test;
4-
import org.utplsql.api.compatibility.CompatibilityProxy;
54
import org.utplsql.api.reporter.DefaultReporter;
65
import org.utplsql.api.reporter.Reporter;
76
import org.utplsql.api.reporter.ReporterFactory;

Diff for: src/test/java/org/utplsql/api/ReporterInspectorIT.java

-7
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,18 @@
11
package org.utplsql.api;
22

3-
import oracle.jdbc.OracleCallableStatement;
4-
import oracle.jdbc.OracleConnection;
5-
import oracle.jdbc.OracleType;
63
import org.junit.jupiter.api.Test;
74
import org.utplsql.api.compatibility.CompatibilityProxy;
85
import org.utplsql.api.exception.InvalidVersionException;
96
import org.utplsql.api.reporter.CoreReporters;
10-
import org.utplsql.api.reporter.Reporter;
117
import org.utplsql.api.reporter.ReporterFactory;
128
import org.utplsql.api.reporter.inspect.ReporterInfo;
139
import org.utplsql.api.reporter.inspect.ReporterInspector;
1410

15-
import java.sql.PreparedStatement;
1611
import java.sql.SQLException;
17-
import java.sql.SQLType;
1812
import java.util.Comparator;
1913
import java.util.Map;
2014

2115
import static org.junit.jupiter.api.Assertions.assertEquals;
22-
import static org.junit.jupiter.api.Assertions.assertNotNull;
2316

2417
public class ReporterInspectorIT extends AbstractDatabaseTest {
2518

Diff for: src/test/java/org/utplsql/api/TestRunnerIT.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import org.utplsql.api.compatibility.CompatibilityProxy;
66
import org.utplsql.api.exception.InvalidVersionException;
77
import org.utplsql.api.exception.SomeTestsFailedException;
8-
import org.utplsql.api.reporter.*;
8+
import org.utplsql.api.reporter.CoreReporters;
99

1010
import java.sql.Connection;
1111
import java.sql.SQLException;

Diff for: src/test/java/org/utplsql/api/VersionObjectTest.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
import org.junit.jupiter.api.Test;
44
import org.utplsql.api.exception.InvalidVersionException;
55

6-
import static org.junit.jupiter.api.Assertions.assertEquals;
7-
import static org.junit.jupiter.api.Assertions.assertNull;
8-
import static org.junit.jupiter.api.Assertions.fail;
6+
import static org.junit.jupiter.api.Assertions.*;
97

108
public class VersionObjectTest {
119

Diff for: src/test/java/org/utplsql/api/reporter/CoverageHTMLReporterAssetTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
import org.junit.jupiter.api.AfterAll;
44
import org.junit.jupiter.api.Test;
55

6-
import static org.junit.jupiter.api.Assertions.*;
7-
86
import java.io.File;
97
import java.io.IOException;
108
import java.nio.file.*;
119
import java.nio.file.attribute.BasicFileAttributes;
1210

11+
import static org.junit.jupiter.api.Assertions.assertTrue;
12+
1313
public class CoverageHTMLReporterAssetTest {
1414

1515
private static final String TEST_FOLDER = "__testAssets";

Diff for: src/test/java/org/utplsql/api/testRunner/TestRunnerStatementProviderIT.java

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import java.sql.SQLException;
99

1010
import static org.junit.jupiter.api.Assertions.assertEquals;
11-
import static org.junit.jupiter.api.Assertions.fail;
1211

1312
public class TestRunnerStatementProviderIT extends AbstractDatabaseTest {
1413

0 commit comments

Comments
 (0)