import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.StandardCharsets;
+import java.util.Map;
import java.util.Properties;
import org.junit.jupiter.api.Test;
ApplicationConfigParser parserUnderTest = new ApplicationConfigParser();
@Test
- public void whenCorrectDmaapConfig() throws Exception {
+ public void whenCorrectConfig() throws Exception {
JsonObject jsonRootObject = getJsonRootObject();
- parserUnderTest.parse(jsonRootObject);
+ ApplicationConfigParser.ConfigParserResult result = parserUnderTest.parse(jsonRootObject);
- Properties actualPublisherConfig = parserUnderTest.getDmaapPublisherConfig();
+ Properties actualPublisherConfig = result.dmaapPublisherConfig();
assertAll("publisherConfig",
() -> assertEquals("localhost:6845/events", actualPublisherConfig.get("ServiceName"), "Wrong ServiceName"),
() -> assertEquals("A1-POLICY-AGENT-WRITE", actualPublisherConfig.get("topic"), "Wrong topic"),
() -> assertEquals("admin", actualPublisherConfig.get("password"), "Wrong password"),
() -> assertEquals(ProtocolTypeConstants.HTTPNOAUTH.toString(), actualPublisherConfig.get("TransportType"),
"Wrong TransportType"),
- () -> assertEquals(15000, actualPublisherConfig.get("timeout"), "Wrong timeout"),
- () -> assertEquals(100, actualPublisherConfig.get("limit"), "Wrong limit"));
+ () -> assertEquals("15000", actualPublisherConfig.get("timeout"), "Wrong timeout"),
+ () -> assertEquals("100", actualPublisherConfig.get("limit"), "Wrong limit"));
- Properties actualConsumerConfig = parserUnderTest.getDmaapConsumerConfig();
+ Properties actualConsumerConfig = result.dmaapConsumerConfig();
assertAll("consumerConfig",
() -> assertEquals("localhost:6845/events", actualConsumerConfig.get("ServiceName"), "Wrong ServiceName"),
() -> assertEquals("A1-POLICY-AGENT-READ", actualConsumerConfig.get("topic"), "Wrong topic"),
() -> assertEquals("policy-agent", actualConsumerConfig.get("id"), "Wrong id"),
() -> assertEquals(ProtocolTypeConstants.HTTPNOAUTH.toString(), actualConsumerConfig.get("TransportType"),
"Wrong TransportType"),
- () -> assertEquals(15000, actualConsumerConfig.get("timeout"), "Wrong timeout"),
- () -> assertEquals(100, actualConsumerConfig.get("limit"), "Wrong limit"));
+ () -> assertEquals("15000", actualConsumerConfig.get("timeout"), "Wrong timeout"),
+ () -> assertEquals("100", actualConsumerConfig.get("limit"), "Wrong limit"));
+
+ Map<String, ControllerConfig> controllers = result.controllerConfigs();
+ assertEquals(1, controllers.size(), "size");
+ ImmutableControllerConfig expectedControllerConfig = ImmutableControllerConfig.builder() //
+ .baseUrl("http://localhost:8083/") //
+ .name("controller1") //
+ .userName("user") //
+ .password("password") //
+ .build(); //
+ assertEquals(expectedControllerConfig, controllers.get("controller1"), "controller contents");
}
private JsonObject getJsonRootObject() throws JsonIOException, JsonSyntaxException, IOException {
private JsonObject fake_info_object;
public String toString() {
- return String.format("[dmaap_publisher=%s, fake_info_object=%s]", dmaap_publisher.toString(), fake_info_object.toString());
+ return String.format("[dmaap_publisher=%s, fake_info_object=%s]", dmaap_publisher.toString(),
+ fake_info_object.toString());
}
}
private JsonObject fake_info_object;
public String toString() {
- return String.format("[dmaap_subscriber=%s, fake_info_object=%s]", dmaap_subscriber.toString(), fake_info_object.toString());
+ return String.format("[dmaap_subscriber=%s, fake_info_object=%s]", dmaap_subscriber.toString(),
+ fake_info_object.toString());
}
}
JsonObject jsonRootObject = getJsonRootObject();
JsonObject json = jsonRootObject.getAsJsonObject("config");
json.remove("ric");
- final String message = "Could not find member: ric in: " + json;
+ final String message = "Could not find member: 'ric' in: " + json;
Exception actualException = assertThrows(ServiceException.class, () -> parserUnderTest.parse(jsonRootObject));
"Wrong error message when the streams publishes' URL has incorrect syntax");
}
- public JsonObject getDmaapInfo(JsonObject jsonRootObject, String streamsPublishesOrSubscribes, String dmaapPublisherOrSubscriber)
- throws Exception {
+ public JsonObject getDmaapInfo(JsonObject jsonRootObject, String streamsPublishesOrSubscribes,
+ String dmaapPublisherOrSubscriber) throws Exception {
return jsonRootObject.getAsJsonObject("config").getAsJsonObject(streamsPublishesOrSubscribes)
.getAsJsonObject(dmaapPublisherOrSubscriber).getAsJsonObject("dmaap_info");
}