Skip to content

Commit db6ea53

Browse files
kristoffSCKrzysztof Chmielewski
authored andcommitted
TestPackageRefactoring - refactoring test package to match source folder. Fix checkstyle issues.
Signed-off-by: Krzysztof Chmielewski <krzysztof.chmielewski@getindata.com>
1 parent b452444 commit db6ea53

32 files changed

+1470
-1440
lines changed

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,7 @@ under the License.
306306
<consoleOutput>true</consoleOutput>
307307
<failsOnError>true</failsOnError>
308308
<failOnViolation>true</failOnViolation>
309+
<includeTestSourceDirectory>true</includeTestSourceDirectory>
309310
</configuration>
310311
</execution>
311312
</executions>

src/main/java/com/getindata/connectors/http/internal/sink/httpclient/JavaNetSinkHttpClient.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@ public class JavaNetSinkHttpClient implements SinkHttpClient {
2323
private final HttpClient httpClient;
2424

2525
public JavaNetSinkHttpClient() {
26-
this.httpClient =
27-
HttpClient.newBuilder().followRedirects(HttpClient.Redirect.NORMAL).build();
26+
this.httpClient = HttpClient.newBuilder()
27+
.followRedirects(HttpClient.Redirect.NORMAL)
28+
.build();
2829
}
2930

3031
@Override

src/test/java/com/getindata/StreamTableJob.java

Lines changed: 45 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -8,44 +8,49 @@
88

99
public class StreamTableJob {
1010

11-
public static void main(String[] args) {
12-
13-
ParameterTool parameters = ParameterTool.fromSystemProperties();
14-
parameters = parameters.mergeWith(ParameterTool.fromArgs(args));
15-
16-
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
17-
// env.enableCheckpointing(5000);
18-
env.setRestartStrategy(RestartStrategies.fixedDelayRestart(1000, 1000));
19-
env.setParallelism(1);
20-
env.disableOperatorChaining();
21-
env.getConfig().setGlobalJobParameters(parameters);
22-
23-
StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);
24-
25-
tableEnv.executeSql(
26-
"CREATE TABLE Orders (id STRING, id2 STRING, proc_time AS PROCTIME()) WITH ('connector' = 'datagen', 'rows-per-second' = '1', 'fields.id.kind' = 'sequence', 'fields.id.start' = '1', 'fields.id.end' = '120', "
27-
+ "'fields.id2.kind' = 'sequence', 'fields.id2.start' = '2', 'fields.id2.end' = '120')");
28-
tableEnv.executeSql(
29-
"CREATE TABLE Customers (id STRING, id2 STRING, msg STRING, uuid STRING, isActive STRING, balance STRING) WITH ('connector' = 'rest-lookup', 'url' = 'http://localhost:8080/client', "
30-
+ "'asyncPolling' = 'true', "
31-
+ "'field.isActive.path' = '$.details.isActive', "
32-
+ "'field.balance.path' = '$.details.nestedDetails.balance')");
33-
34-
Table resultTable =
35-
tableEnv.sqlQuery(
36-
"SELECT o.id, o.id2, c.msg, c.uuid, c.isActive, c.balance FROM Orders AS o "
37-
+ "JOIN Customers FOR SYSTEM_TIME AS OF o.proc_time AS c "
38-
+ "ON o.id = c.id AND o.id2 = c.id2");
39-
40-
/*DataStream<Row> rowDataStream = tableEnv.toDataStream(resultTable);
41-
rowDataStream.print();*/
42-
43-
// Table result = tableEnv.sqlQuery("SELECT * FROM Orders");
44-
// Table result = tableEnv.sqlQuery("SELECT * FROM Customers");
45-
// Table result = tableEnv.sqlQuery("SELECT * FROM T WHERE T.id > 10");
46-
47-
resultTable.execute().print();
48-
49-
// env.execute();
50-
}
11+
public static void main(String[] args) {
12+
13+
ParameterTool parameters = ParameterTool.fromSystemProperties();
14+
parameters = parameters.mergeWith(ParameterTool.fromArgs(args));
15+
16+
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
17+
// env.enableCheckpointing(5000);
18+
env.setRestartStrategy(RestartStrategies.fixedDelayRestart(1000, 1000));
19+
env.setParallelism(1);
20+
env.disableOperatorChaining();
21+
env.getConfig().setGlobalJobParameters(parameters);
22+
23+
StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);
24+
25+
tableEnv.executeSql(
26+
"CREATE TABLE Orders (id STRING, id2 STRING, proc_time AS PROCTIME())"
27+
+ " WITH ("
28+
+ "'connector' = 'datagen', 'rows-per-second' = '1', 'fields.id.kind' = 'sequence',"
29+
+ " 'fields.id.start' = '1', 'fields.id.end' = '120',"
30+
+ " 'fields.id2.kind' = 'sequence', 'fields.id2.start' = '2',"
31+
+ " 'fields.id2.end' = '120')"
32+
);
33+
tableEnv.executeSql(
34+
"CREATE TABLE Customers (id STRING, id2 STRING, msg STRING, uuid STRING, isActive STRING, balance STRING) WITH ('connector' = 'rest-lookup', 'url' = 'http://localhost:8080/client', "
35+
+ "'asyncPolling' = 'true', "
36+
+ "'field.isActive.path' = '$.details.isActive', "
37+
+ "'field.balance.path' = '$.details.nestedDetails.balance')");
38+
39+
Table resultTable =
40+
tableEnv.sqlQuery(
41+
"SELECT o.id, o.id2, c.msg, c.uuid, c.isActive, c.balance FROM Orders AS o "
42+
+ "JOIN Customers FOR SYSTEM_TIME AS OF o.proc_time AS c "
43+
+ "ON o.id = c.id AND o.id2 = c.id2");
44+
45+
/* DataStream<Row> rowDataStream = tableEnv.toDataStream(resultTable);
46+
rowDataStream.print();*/
47+
48+
// Table result = tableEnv.sqlQuery("SELECT * FROM Orders");
49+
// Table result = tableEnv.sqlQuery("SELECT * FROM Customers");
50+
// Table result = tableEnv.sqlQuery("SELECT * FROM T WHERE T.id > 10");
51+
52+
resultTable.execute().print();
53+
54+
// env.execute();
55+
}
5156
}
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
package com.getindata.connectors.http;
22

3+
import lombok.extern.slf4j.Slf4j;
4+
import org.junit.jupiter.api.Test;
35
import static org.assertj.core.api.Assertions.assertThat;
46

57
import com.getindata.connectors.http.internal.utils.ExceptionUtils;
6-
import lombok.extern.slf4j.Slf4j;
7-
import org.junit.jupiter.api.Test;
88

99
@Slf4j
1010
class ExceptionUtilsTest {
1111

12-
@Test
13-
void shouldConvertStackTrace() {
14-
String stringifyException =
15-
ExceptionUtils.stringifyException(new RuntimeException("Test Exception"));
16-
assertThat(stringifyException).contains("java.lang.RuntimeException: Test Exception");
17-
}
12+
@Test
13+
void shouldConvertStackTrace() {
14+
String stringifyException =
15+
ExceptionUtils.stringifyException(new RuntimeException("Test Exception"));
16+
assertThat(stringifyException).contains("java.lang.RuntimeException: Test Exception");
17+
}
1818
}
Lines changed: 102 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -1,113 +1,114 @@
11
package com.getindata.connectors.http;
22

3-
import static com.getindata.connectors.http.TestHelper.readTestFile;
4-
import static org.assertj.core.api.Assertions.assertThat;
5-
6-
import com.getindata.connectors.http.internal.JsonResultTableConverter;
7-
import com.getindata.connectors.http.internal.JsonResultTableConverter.HttpResultConverterOptions;
83
import java.util.List;
94
import java.util.Map;
5+
106
import org.apache.flink.table.data.RowData;
117
import org.junit.jupiter.api.BeforeEach;
128
import org.junit.jupiter.api.Test;
9+
import static org.assertj.core.api.Assertions.assertThat;
10+
11+
import com.getindata.connectors.http.internal.JsonResultTableConverter;
12+
import com.getindata.connectors.http.internal.JsonResultTableConverter.HttpResultConverterOptions;
13+
import static com.getindata.connectors.http.TestHelper.readTestFile;
1314

1415
class JsonResultTableConverterImplTest {
1516

16-
private static final String SAMPLES_FOLDER = "/http/";
17-
18-
private JsonResultTableConverter converter;
19-
20-
private HttpResultConverterOptions converterOptions;
21-
22-
private String json;
23-
24-
@BeforeEach
25-
public void setUp() {
26-
json = readTestFile(SAMPLES_FOLDER + "HttpResult.json");
27-
}
28-
29-
@Test
30-
void shouldHandleMissingField() {
31-
converterOptions =
32-
HttpResultConverterOptions.builder().columnNames(List.of("missingField")).build();
33-
34-
converter = new JsonResultTableConverter(converterOptions);
35-
RowData rowData = converter.convert(json);
36-
37-
String value = rowData.getString(0).toString();
38-
assertThat(value).isEmpty();
39-
}
40-
41-
@Test
42-
void shouldFindSimpleValue() {
43-
converterOptions = HttpResultConverterOptions.builder().columnNames(List.of("msg")).build();
44-
45-
converter = new JsonResultTableConverter(converterOptions);
46-
RowData rowData = converter.convert(json);
47-
48-
String value = rowData.getString(0).toString();
49-
assertThat(value).isEqualTo("Returned HTTP message for parameter PARAM, COUNTER");
50-
}
51-
52-
@Test
53-
void shouldHandleInvalidJson() {
54-
List<String> columnNames = List.of("msg", "id");
55-
converterOptions = HttpResultConverterOptions.builder().columnNames(columnNames).build();
56-
57-
converter = new JsonResultTableConverter(converterOptions);
58-
RowData rowData = converter.convert("{Invalid Json}");
59-
assertThat(rowData.getArity()).isEqualTo(columnNames.size());
60-
}
61-
62-
@Test
63-
void shouldFindNestedValues() {
64-
converterOptions =
65-
HttpResultConverterOptions.builder()
66-
.columnNames(List.of("isActive", "balance"))
67-
.aliases(
68-
Map.of(
69-
"isActive", "$.details.isActive",
70-
"balance", "$.details.nestedDetails.balance"))
71-
.build();
72-
73-
converter = new JsonResultTableConverter(converterOptions);
74-
RowData rowData = converter.convert(json);
75-
76-
String isActive = rowData.getString(0).toString();
77-
assertThat(isActive).isEqualTo("true");
78-
79-
String balance = rowData.getString(1).toString();
80-
assertThat(balance).isEqualTo("$1,729.34");
81-
}
82-
83-
@Test
84-
void shouldFindNestedValuesWIthMissingJsonPathHeader() {
85-
converterOptions =
86-
HttpResultConverterOptions.builder()
87-
.columnNames(List.of("isActive"))
88-
.aliases(Map.of("isActive", "details.isActive"))
89-
.build();
90-
91-
converter = new JsonResultTableConverter(converterOptions);
92-
RowData rowData = converter.convert(json);
93-
94-
String isActive = rowData.getString(0).toString();
95-
assertThat(isActive).isEqualTo("true");
96-
}
97-
98-
@Test
99-
void shouldFindValueWithRoot() {
100-
converterOptions =
101-
HttpResultConverterOptions.builder()
102-
.columnNames(List.of("isActive"))
103-
.root("$.details.")
104-
.build();
105-
106-
converter = new JsonResultTableConverter(converterOptions);
107-
RowData rowData = converter.convert(json);
108-
109-
String value = rowData.getString(0).toString();
110-
assertThat(value).isEqualTo("true");
111-
}
17+
private static final String SAMPLES_FOLDER = "/http/";
18+
19+
private JsonResultTableConverter converter;
20+
21+
private HttpResultConverterOptions converterOptions;
22+
23+
private String json;
24+
25+
@BeforeEach
26+
public void setUp() {
27+
json = readTestFile(SAMPLES_FOLDER + "HttpResult.json");
28+
}
29+
30+
@Test
31+
void shouldHandleMissingField() {
32+
converterOptions =
33+
HttpResultConverterOptions.builder().columnNames(List.of("missingField")).build();
34+
35+
converter = new JsonResultTableConverter(converterOptions);
36+
RowData rowData = converter.convert(json);
37+
38+
String value = rowData.getString(0).toString();
39+
assertThat(value).isEmpty();
40+
}
41+
42+
@Test
43+
void shouldFindSimpleValue() {
44+
converterOptions = HttpResultConverterOptions.builder().columnNames(List.of("msg")).build();
45+
46+
converter = new JsonResultTableConverter(converterOptions);
47+
RowData rowData = converter.convert(json);
48+
49+
String value = rowData.getString(0).toString();
50+
assertThat(value).isEqualTo("Returned HTTP message for parameter PARAM, COUNTER");
51+
}
52+
53+
@Test
54+
void shouldHandleInvalidJson() {
55+
List<String> columnNames = List.of("msg", "id");
56+
converterOptions = HttpResultConverterOptions.builder().columnNames(columnNames).build();
57+
58+
converter = new JsonResultTableConverter(converterOptions);
59+
RowData rowData = converter.convert("{Invalid Json}");
60+
assertThat(rowData.getArity()).isEqualTo(columnNames.size());
61+
}
62+
63+
@Test
64+
void shouldFindNestedValues() {
65+
converterOptions =
66+
HttpResultConverterOptions.builder()
67+
.columnNames(List.of("isActive", "balance"))
68+
.aliases(
69+
Map.of(
70+
"isActive", "$.details.isActive",
71+
"balance", "$.details.nestedDetails.balance"))
72+
.build();
73+
74+
converter = new JsonResultTableConverter(converterOptions);
75+
RowData rowData = converter.convert(json);
76+
77+
String isActive = rowData.getString(0).toString();
78+
assertThat(isActive).isEqualTo("true");
79+
80+
String balance = rowData.getString(1).toString();
81+
assertThat(balance).isEqualTo("$1,729.34");
82+
}
83+
84+
@Test
85+
void shouldFindNestedValuesWIthMissingJsonPathHeader() {
86+
converterOptions =
87+
HttpResultConverterOptions.builder()
88+
.columnNames(List.of("isActive"))
89+
.aliases(Map.of("isActive", "details.isActive"))
90+
.build();
91+
92+
converter = new JsonResultTableConverter(converterOptions);
93+
RowData rowData = converter.convert(json);
94+
95+
String isActive = rowData.getString(0).toString();
96+
assertThat(isActive).isEqualTo("true");
97+
}
98+
99+
@Test
100+
void shouldFindValueWithRoot() {
101+
converterOptions =
102+
HttpResultConverterOptions.builder()
103+
.columnNames(List.of("isActive"))
104+
.root("$.details.")
105+
.build();
106+
107+
converter = new JsonResultTableConverter(converterOptions);
108+
RowData rowData = converter.convert(json);
109+
110+
String value = rowData.getString(0).toString();
111+
assertThat(value).isEqualTo("true");
112+
}
112113

113114
}

src/test/java/com/getindata/connectors/http/TestHelper.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,22 @@
44
import java.nio.file.Files;
55
import java.nio.file.Path;
66
import java.util.Objects;
7+
78
import lombok.AccessLevel;
89
import lombok.NoArgsConstructor;
910

1011
@NoArgsConstructor(access = AccessLevel.PRIVATE)
1112
public final class TestHelper {
1213

13-
private static final TestHelper INSTANCE = new TestHelper();
14+
private static final TestHelper INSTANCE = new TestHelper();
1415

15-
public static String readTestFile(String pathToFile) {
16-
try {
17-
URI uri = Objects.requireNonNull(INSTANCE.getClass().getResource(pathToFile)).toURI();
18-
return Files.readString(Path.of(uri));
19-
} catch (Exception e) {
20-
throw new RuntimeException(e);
16+
public static String readTestFile(String pathToFile) {
17+
try {
18+
URI uri = Objects.requireNonNull(INSTANCE.getClass().getResource(pathToFile)).toURI();
19+
return Files.readString(Path.of(uri));
20+
} catch (Exception e) {
21+
throw new RuntimeException(e);
22+
}
2123
}
22-
}
2324

2425
}

0 commit comments

Comments
 (0)