@Test public void shouldReportErrorsFromInvalidPetstoreSwagger() throws IOException { final String specification = resource("/swagger/invalid/invalid-scheme.petstore.swagger.json"); final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .putConfiguredProperty("specification", specification)// .build(); final APISummary summary = generator.info(SWAGGER_TEMPLATE, connectorSettings); assertThat(summary.getErrors()).hasSize(1); assertThat(summary.getWarnings()).hasSize(1); }
@Test public void shouldReportErrorsFromInvalidPetstoreSwagger() throws IOException { final String specification = resource("/swagger/invalid/invalid-scheme.petstore.swagger.json"); final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .putConfiguredProperty("specification", specification)// .build(); final ConnectorSummary summary = generator.info(SWAGGER_TEMPLATE, connectorSettings); assertThat(summary.getErrors()).hasSize(1); assertThat(summary.getWarnings()).hasSize(1); }
@Test public void shouldCreateSecurityConfigurationFromConcurSwagger() throws IOException { final String specification = resource("/swagger/concur.swagger.json"); final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .name("Concur List API")// .description("Invokes Concur List API")// .icon("fa-globe")// .putConfiguredProperty("specification", specification)// .build(); final Connector generated = generator.generate(SWAGGER_TEMPLATE, connectorSettings); assertThat(generated.getProperties().keySet()).contains("accessToken", "authorizationEndpoint", "tokenEndpoint", "clientId", "clientSecret", "tokenStrategy", "authorizeUsingParameters"); assertThat(generated.getProperties().get("tokenStrategy").getDefaultValue()).isEqualTo("AUTHORIZATION_HEADER"); assertThat(generated.getProperties().get("authorizeUsingParameters").getDefaultValue()).isEqualTo("true"); }
@Test public void shouldProvideInfoFromPetstoreSwagger() throws IOException { final String specification = resource("/swagger/petstore.swagger.json"); final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .putConfiguredProperty("specification", specification)// .build(); final ConnectorSummary summary = generator.info(SWAGGER_TEMPLATE, connectorSettings); final ActionsSummary actionsSummary = new ActionsSummary.Builder().totalActions(20).putActionCountByTag("store", 4) .putActionCountByTag("user", 8).putActionCountByTag("pet", 8).build(); final ConnectorSummary expected = new ConnectorSummary.Builder()// .name("Swagger Petstore")// .actionsSummary(actionsSummary)// .build(); assertThat(summary).isEqualToIgnoringGivenFields(expected, "icon", "description", "properties", "warnings", "configuredProperties"); assertThat(summary.getIcon()).startsWith("data:image"); assertThat(summary.getDescription()).startsWith("This is a sample server Petstore server"); assertThat(summary.getProperties().keySet()).contains("host", "basePath", "authenticationType", "clientId", "clientSecret", "accessToken", "authorizationEndpoint", "oauthScopes", "specification"); assertThat(summary.getConfiguredProperties().keySet()).containsOnly("specification"); assertThat(reformatJson(summary.getConfiguredProperties().get("specification"))).isEqualTo(reformatJson(specification)); }
@Test public void shouldProvideInfoFromPetstoreSwagger() throws IOException { final String specification = resource("/swagger/petstore.swagger.json"); final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .putConfiguredProperty("specification", specification)// .build(); final APISummary summary = generator.info(SWAGGER_TEMPLATE, connectorSettings); final ActionsSummary actionsSummary = new ActionsSummary.Builder().totalActions(20).putActionCountByTag("store", 4) .putActionCountByTag("user", 8).putActionCountByTag("pet", 8).build(); final APISummary expected = new APISummary.Builder()// .name("Swagger Petstore")// .actionsSummary(actionsSummary)// .build(); assertThat(summary).isEqualToIgnoringGivenFields(expected, "icon", "description", "properties", "warnings", "configuredProperties"); assertThat(summary.getIcon()).matches(s -> s.isPresent() && s.get().startsWith("data:image")); assertThat(summary.getDescription()).startsWith("This is a sample server Petstore server"); assertThat(summary.getProperties().keySet()).contains("host", "basePath", "authenticationType", "clientId", "clientSecret", "accessToken", "authorizationEndpoint", "oauthScopes", "specification"); assertThat(summary.getConfiguredProperties().keySet()).containsOnly("specification"); assertThat(reformatJson(summary.getConfiguredProperties().get("specification"))).isEqualTo(reformatJson(specification)); }
@Test public void shouldCreateBaseConnectorsWithGivenNameAndDescription() { final ConnectorSettings settings = new ConnectorSettings.Builder().name("given-name").description("given-description") .putConfiguredProperty("property2", "value2").build(); final Connector connector = generator.baseConnectorFrom(template, settings); assertThat(connector).isEqualToIgnoringGivenFields(// new Connector.Builder()// .name("given-name")// .description("given-description")// .connectorGroup(template.getConnectorGroup())// .connectorGroupId("template-group")// .properties(template.getConnectorProperties())// .putConfiguredProperty("property2", "value2").build(), "id", "icon"); assertThat(connector.getIcon()).isEqualTo("data:image/svg+xml,dummy"); } }
@Test public void shouldCreateBaseConnectorsWithGivenNameAndDescription() { final ConnectorSettings settings = new ConnectorSettings.Builder().name("given-name").description("given-description") .putConfiguredProperty("property2", "value2").build(); final Connector connector = generator.baseConnectorFrom(template, settings); assertThat(connector).isEqualToIgnoringGivenFields(// new Connector.Builder()// .name("given-name")// .description("given-description")// .connectorGroup(template.getConnectorGroup())// .connectorGroupId("template-group")// .properties(template.getConnectorProperties())// .putConfiguredProperty("property2", "value2").build(), "id", "icon"); assertThat(connector.getIcon()).isEqualTo("data:image/svg+xml,dummy"); } }
@Test public void shouldCreateBaseConnectors() { final ConnectorSettings settings = new ConnectorSettings.Builder().putConfiguredProperty("property2", "value2").build(); final Connector connector = generator.baseConnectorFrom(template, settings); assertThat(connector).isEqualToIgnoringGivenFields(// new Connector.Builder()// .name("test-name")// .description("test-description")// .connectorGroup(template.getConnectorGroup())// .connectorGroupId("template-group")// .properties(template.getConnectorProperties())// .putConfiguredProperty("property2", "value2")// .build(), "id", "icon"); assertThat(connector.getIcon()).isEqualTo("data:image/svg+xml,dummy"); }
@Test public void shouldCreateBaseConnectors() { final ConnectorSettings settings = new ConnectorSettings.Builder().putConfiguredProperty("property2", "value2").build(); final Connector connector = generator.baseConnectorFrom(template, settings); assertThat(connector).isEqualToIgnoringGivenFields(// new Connector.Builder()// .name("test-name")// .description("test-description")// .connectorGroup(template.getConnectorGroup())// .connectorGroupId("template-group")// .properties(template.getConnectorProperties())// .putConfiguredProperty("property2", "value2")// .build(), "id", "icon"); assertThat(connector.getIcon()).isEqualTo("data:image/svg+xml,dummy"); }
@Test public void shouldCreateSecurityConfigurationFromConcurSwagger() throws IOException { final String specification = resource("/swagger/concur.swagger.json"); final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .name("Concur List API")// .description("Invokes Concur List API")// .icon("fa-globe")// .putConfiguredProperty("specification", specification)// .build(); final Connector generated = generator.generate(SWAGGER_TEMPLATE, connectorSettings); assertThat(generated.getProperties().keySet()).contains("accessToken", "authorizationEndpoint", "tokenEndpoint", "clientId", "clientSecret", "tokenStrategy", "authorizeUsingParameters"); assertThat(generated.getProperties().get("tokenStrategy").getDefaultValue()).isEqualTo("AUTHORIZATION_HEADER"); assertThat(generated.getProperties().get("authorizeUsingParameters").getDefaultValue()).isEqualTo("true"); }
@Test public void shouldCreateSecurityConfigurationFromReverbSwagger() throws IOException { final String specification = resource("/swagger/reverb.swagger.yaml"); final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .name("Reverb API")// .description("Invokes Reverb API")// .icon("fa-music")// .putConfiguredProperty("specification", specification)// .build(); final Connector generated = generator.generate(SWAGGER_TEMPLATE, connectorSettings); assertThat(generated.getProperties().keySet()).contains("accessToken", "authorizationEndpoint", "tokenEndpoint", "clientId", "clientSecret"); assertThat(generated.getProperties().get("authenticationType").getEnum()) .containsExactly(new ConfigurationProperty.PropertyValue.Builder().value("oauth2").label("OAuth 2.0").build()); }
@Test public void shouldCreateSecurityConfigurationFromReverbSwagger() throws IOException { final String specification = resource("/swagger/reverb.swagger.yaml"); final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .name("Reverb API")// .description("Invokes Reverb API")// .icon("fa-music")// .putConfiguredProperty("specification", specification)// .build(); final Connector generated = generator.generate(SWAGGER_TEMPLATE, connectorSettings); assertThat(generated.getProperties().keySet()).contains("accessToken", "authorizationEndpoint", "tokenEndpoint", "clientId", "clientSecret"); assertThat(generated.getProperties().get("authenticationType").getEnum()) .containsExactly(new ConfigurationProperty.PropertyValue.Builder().value("oauth2").label("OAuth 2.0").build()); }
private static ConnectorSettings createSettingsFrom(final Swagger swagger) { return new ConnectorSettings.Builder()// .putConfiguredProperty("specification", SwaggerHelper.serialize(swagger))// .build(); } }
@Test public void shouldNotFailOnEmptySwagger() { final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .putConfiguredProperty("specification", "{}")// .build(); final APISummary summary = generator.info(SWAGGER_TEMPLATE, connectorSettings); assertThat(summary).isNotNull(); }
@Test public void shouldNotFailOnTrivialyEmptyOperations() { final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .putConfiguredProperty("specification", "{\"swagger\": \"2.0\",\"info\": {\"version\": \"0.0.0\",\"title\": \"title\",\"description\": \"description\"},\"paths\": {\"/operation\": {\"get\": {\"responses\": {\"200\": {\"description\": \"OK\"}}}}}}")// .build(); final ConnectorSummary summary = generator.info(SWAGGER_TEMPLATE, connectorSettings); assertThat(summary).isNotNull(); }
private static ConnectorSettings createSettingsFrom(final Swagger swagger) { return new ConnectorSettings.Builder()// .putConfiguredProperty("specification", SwaggerHelper.serialize(swagger))// .build(); }
@Test public void shouldIncorporateGivenConfiguredProperties() throws IOException { final String specification = resource("/swagger/reverb.swagger.yaml"); final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .name("Reverb API")// .description("Invokes Reverb API")// .icon("fa-music")// .putConfiguredProperty("specification", specification)// .putConfiguredProperty("tokenEndpoint", "http://some.token.url").build(); final Connector connector = generator.generate(SWAGGER_TEMPLATE, connectorSettings); assertThat(connector.getConfiguredProperties()).containsEntry("tokenEndpoint", "http://some.token.url"); }
@Test public void shouldNotFailOnTrivialyEmptyOperations() { final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .putConfiguredProperty("specification", "{\"swagger\": \"2.0\",\"info\": {\"version\": \"0.0.0\",\"title\": \"title\",\"description\": \"description\"},\"paths\": {\"/operation\": {\"get\": {\"responses\": {\"200\": {\"description\": \"OK\"}}}}}}")// .build(); final APISummary summary = generator.info(SWAGGER_TEMPLATE, connectorSettings); assertThat(summary).isNotNull(); }
@Test public void shouldNotFailOnEmptySwagger() { final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .putConfiguredProperty("specification", "{}")// .build(); final ConnectorSummary summary = generator.info(SWAGGER_TEMPLATE, connectorSettings); assertThat(summary).isNotNull(); }
@Test public void shouldIncorporateGivenConfiguredProperties() throws IOException { final String specification = resource("/swagger/reverb.swagger.yaml"); final ConnectorSettings connectorSettings = new ConnectorSettings.Builder()// .name("Reverb API")// .description("Invokes Reverb API")// .icon("fa-music")// .putConfiguredProperty("specification", specification)// .putConfiguredProperty("tokenEndpoint", "http://some.token.url").build(); final Connector connector = generator.generate(SWAGGER_TEMPLATE, connectorSettings); assertThat(connector.getConfiguredProperties()).containsEntry("tokenEndpoint", "http://some.token.url"); }