Skip to content

Commit e7b1b0a

Browse files
committed
main - add test for passing properties to format used by lookup query creator.
Signed-off-by: Krzysztof Chmielewski <krzysiek.chmielewski@gmail.com>
1 parent aa98ed0 commit e7b1b0a

File tree

3 files changed

+109
-1
lines changed

3 files changed

+109
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.getindata.connectors.http.internal.table.lookup.querycreators;
2+
3+
import java.util.Collections;
4+
import java.util.Set;
5+
6+
import org.apache.flink.api.common.serialization.SerializationSchema;
7+
import org.apache.flink.configuration.ConfigOption;
8+
import org.apache.flink.configuration.ConfigOptions;
9+
import org.apache.flink.configuration.ReadableConfig;
10+
import org.apache.flink.table.connector.format.EncodingFormat;
11+
import org.apache.flink.table.data.RowData;
12+
import org.apache.flink.table.factories.DynamicTableFactory.Context;
13+
import org.apache.flink.table.factories.FactoryUtil;
14+
import org.apache.flink.table.factories.SerializationFormatFactory;
15+
import org.apache.flink.table.factories.TestFormatFactory.EncodingFormatMock;
16+
17+
public class CustomFormatFactory implements SerializationFormatFactory {
18+
19+
public static final String IDENTIFIER = "query-creator-test-format";
20+
public static final String REQUIRED_OPTION = "required-option-one";
21+
static boolean requiredOptionsWereUsed = false;
22+
23+
@Override
24+
public EncodingFormat<SerializationSchema<RowData>> createEncodingFormat(
25+
Context context,
26+
ReadableConfig readableConfig) {
27+
FactoryUtil.validateFactoryOptions(this, readableConfig);
28+
return new EncodingFormatMock(",");
29+
}
30+
31+
@Override
32+
public String factoryIdentifier() {
33+
return IDENTIFIER;
34+
}
35+
36+
@Override
37+
public Set<ConfigOption<?>> requiredOptions() {
38+
requiredOptionsWereUsed = true;
39+
return Set.of(ConfigOptions.key(REQUIRED_OPTION).stringType().noDefaultValue());
40+
}
41+
42+
@Override
43+
public Set<ConfigOption<?>> optionalOptions() {
44+
return Collections.emptySet();
45+
}
46+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package com.getindata.connectors.http.internal.table.lookup.querycreators;
2+
3+
import java.util.List;
4+
5+
import org.apache.flink.configuration.Configuration;
6+
import org.apache.flink.table.api.DataTypes;
7+
import org.apache.flink.table.data.RowData;
8+
import org.junit.jupiter.api.BeforeEach;
9+
import org.junit.jupiter.api.Test;
10+
import static org.assertj.core.api.Assertions.assertThat;
11+
12+
import com.getindata.connectors.http.internal.table.lookup.LookupRow;
13+
import com.getindata.connectors.http.internal.table.lookup.RowDataSingleValueLookupSchemaEntry;
14+
import static com.getindata.connectors.http.internal.table.lookup.HttpLookupTableSourceFactory.row;
15+
16+
class GenericJsonQueryCreatorFactoryTest {
17+
18+
private Configuration config;
19+
private LookupRow lookupRow;
20+
21+
@BeforeEach
22+
public void setUp() {
23+
this.config = new Configuration();
24+
this.lookupRow = new LookupRow();
25+
lookupRow = new LookupRow()
26+
.addLookupEntry(
27+
new RowDataSingleValueLookupSchemaEntry(
28+
"key1",
29+
RowData.createFieldGetter(DataTypes.STRING().getLogicalType(), 0)
30+
));
31+
32+
lookupRow.setLookupPhysicalRowDataType(
33+
row(List.of(
34+
DataTypes.FIELD("key1", DataTypes.STRING())
35+
)));
36+
37+
CustomFormatFactory.requiredOptionsWereUsed = false;
38+
}
39+
40+
@Test
41+
public void shouldPassPropertiesToQueryCreatorFormat() {
42+
assertThat(CustomFormatFactory.requiredOptionsWereUsed)
43+
.withFailMessage(
44+
"CustomFormatFactory was not cleared, "
45+
+ "make sure `CustomFormatFactory.requiredOptionsWereUsed = false` "
46+
+ "was called before this test execution.")
47+
.isFalse();
48+
49+
this.config.setString("lookup-request.format", CustomFormatFactory.IDENTIFIER);
50+
this.config.setString(
51+
String.format("lookup-request.format.%s.%s", CustomFormatFactory.IDENTIFIER,
52+
CustomFormatFactory.REQUIRED_OPTION), "optionValue");
53+
54+
new GenericJsonQueryCreatorFactory().createLookupQueryCreator(
55+
config,
56+
lookupRow
57+
);
58+
59+
assertThat(CustomFormatFactory.requiredOptionsWereUsed).isTrue();
60+
}
61+
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
com.getindata.connectors.http.TestPostRequestCallbackFactory
1+
com.getindata.connectors.http.TestPostRequestCallbackFactory
2+
com.getindata.connectors.http.internal.table.lookup.querycreators.CustomFormatFactory

0 commit comments

Comments
 (0)