@Test public void shouldMakeNonUniqueOperationIdsUnique() { final Swagger swagger = new Swagger().path("/path", new Path().get(new Operation().operationId("foo")) .post(new Operation().operationId("foo")).put(new Operation().operationId("bar"))); final Connector generated = generator.configureConnector(SWAGGER_TEMPLATE, new Connector.Builder().id("connector1").build(), createSettingsFrom(swagger)); final List<ConnectorAction> actions = generated.getActions(); assertThat(actions).hasSize(3); assertThat(actions.get(0).getId()).hasValueSatisfying(id -> assertThat(id).endsWith("foo")); assertThat(actions.get(1).getId()).hasValueSatisfying(id -> assertThat(id).endsWith("foo1")); assertThat(actions.get(2).getId()).hasValueSatisfying(id -> assertThat(id).endsWith("bar")); }
@Test public void shouldMakeNonUniqueOperationIdsUnique() { final Swagger swagger = new Swagger().path("/path", new Path().get(new Operation().operationId("foo")) .post(new Operation().operationId("foo")).put(new Operation().operationId("bar"))); final Connector generated = generator.configureConnector(SWAGGER_TEMPLATE, new Connector.Builder().id("connector1").build(), createSettingsFrom(swagger)); final List<ConnectorAction> actions = generated.getActions(); assertThat(actions).hasSize(3); assertThat(actions.get(0).getId()).hasValueSatisfying(id -> assertThat(id).endsWith("foo")); assertThat(actions.get(1).getId()).hasValueSatisfying(id -> assertThat(id).endsWith("foo1")); assertThat(actions.get(2).getId()).hasValueSatisfying(id -> assertThat(id).endsWith("bar")); }
@Test public void shouldCreateFromEmptyConnector() { final Connector emptyConnector = new Connector.Builder().build(); final OAuthApp oauthApp = OAuthApp.fromConnector(emptyConnector); final OAuthApp expected = new OAuthApp.Builder().build(); assertThat(oauthApp).isEqualTo(expected); }
@Test public void shouldOmitHiddenProperties() { final Connector withHiddenProperty = new Connector.Builder().createFrom(connector) .putProperty("theHiddenOne", new ConfigurationProperty.Builder().type("hidden").addTag(Credentials.AUTHENTICATION_URL_TAG).build()) .build(); final OAuthApp oauthApp = OAuthApp.fromConnector(withHiddenProperty); final OAuthApp expected = new OAuthApp.Builder()// .id("connector-id")// .name("Connector")// .icon("svg-icon")// .putProperty("clientId", CLIENT_ID_PROPERTY)// .putProperty("clientSecret", CLIENT_SECRET_PROPERTY)// .putConfiguredProperty("clientId", "client-id")// .putConfiguredProperty("clientSecret", "client-secret")// .build(); assertThat(oauthApp).isEqualTo(expected); }
@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 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"); } }
private Connector newSqlConnector() { ConnectorAction action1 = new ConnectorAction.Builder() .id(SQL_CONNECTOR_ACTION_ID) .actionType("connector") .description("Invoke SQL to obtain ...") .name("Invoke SQL") .addTag("dynamic") .pattern(Pattern.To) .build(); return new Connector.Builder() .id(CONNECTOR_ID) .name(SQL_CONNECTOR_NAME) .addAction(action1) .build(); }
/** * Creates an immutable copy of a {@link Connector} value. * Uses accessors to get values to initialize the new immutable instance. * If an instance is already immutable, it is returned as is. * @param instance The instance to copy * @return A copied immutable Connector instance */ public static Connector copyOf(Connector instance) { if (instance instanceof ImmutableConnector) { return (ImmutableConnector) instance; } return new Connector.Builder() .createFrom(instance) .build(); }
private static Connector newConnector(final String id) { return new Connector.Builder().id(id).build(); }
@Test public void shouldUpdateConnectorRemovingValues() { final OAuthApp app = new OAuthApp.Builder().createFrom(OAuthApp.fromConnector(connector))// .configuredProperties(Collections.emptyMap())// .putConfiguredProperty("clientSecret", "client-secret")// .build(); final Connector updated = app.update(connector); final Connector expected = new Connector.Builder().createFrom(connector)// .configuredProperties(Collections.emptyMap())// .putConfiguredProperty("clientSecret", "client-secret")// .build(); assertThat(updated).isEqualTo(expected); } }
private static Connection dummyConnection() { Connector connector = new Connector.Builder() .addAction( new ConnectorAction.Builder().id("fromAction") .descriptor(new ConnectorDescriptor.Builder().build()) .build()) .addAction( new ConnectorAction.Builder().id("toAction") .descriptor(new ConnectorDescriptor.Builder().build()) .build()) .build(); return new Connection.Builder().connector(connector).build(); } }
private static Connector usedConnector(final Connector connector, final int usage) { return new Connector.Builder().createFrom(connector).uses(usage).build(); }
@Override default Connector withVersion(int version) { return new Builder().createFrom(this).version(version).build(); }
static Connector mockConnector(final String id) { return new Connector.Builder().id(id) .putProperty("clientId", new ConfigurationProperty.Builder().addTag(Credentials.CLIENT_ID_TAG).build()) .putProperty("clientSecret", new ConfigurationProperty.Builder().addTag(Credentials.CLIENT_SECRET_TAG).build()) .putConfiguredProperty("clientId", "a-client-id") .putConfiguredProperty("clientSecret", "a-client-secret").build(); } }
@Test public void shouldUpdateConnectorWithDefaultValuesIfNoneGiven() { final Connector withHiddenProperty = new Connector.Builder().createFrom(connector) .putProperty("defaulted", new ConfigurationProperty.Builder().type("hidden") .addTag(Credentials.AUTHENTICATION_URL_TAG).defaultValue("I'm a default").build()) .build(); final Connector updated = OAuthApp.fromConnector(withHiddenProperty).update(withHiddenProperty); assertThat(updated.getConfiguredProperties()).containsEntry("defaulted", "I'm a default"); }
@Test public void shouldUpdateConnectorModifyingValues() { final OAuthApp app = new OAuthApp.Builder().createFrom(OAuthApp.fromConnector(connector))// .putConfiguredProperty("clientId", "new-client-id")// .build(); final Connector updated = app.update(connector); final Connector expected = new Connector.Builder().createFrom(connector)// .putConfiguredProperty("clientId", "new-client-id")// .build(); assertThat(updated).isEqualTo(expected); }
@Test public void shouldKeepConnectorConfiguredPropertiesIfNoneGiven() { final Connector withConfiguredProperty = new Connector.Builder().createFrom(connector) .putProperty("configured", new ConfigurationProperty.Builder().type("hidden").addTag(Credentials.AUTHENTICATION_URL_TAG).build()) .putConfiguredProperty("configured", "initial").build(); final Connector updated = OAuthApp.fromConnector(withConfiguredProperty).update(withConfiguredProperty); assertThat(updated.getConfiguredProperties()).containsEntry("configured", "initial"); }
@Test public void shouldFilterOutNonOAuthConnectors() { final Connector connector1 = new Connector.Builder().build(); final Connector connector2 = new Connector.Builder() .putProperty("clientId", new ConfigurationProperty.Builder().addTag(Credentials.CLIENT_ID_TAG).build()) .putConfiguredProperty("clientId", "my-client-id").build(); final Connector connector3 = new Connector.Builder() .putProperty("clientId", new ConfigurationProperty.Builder().addTag(Credentials.CLIENT_ID_TAG).build()).build(); final ListResult<Connector> result = ListResult.of(connector1, connector2, connector3); assertThat(OAuthConnectorFilter.INSTANCE.apply(result)).containsOnly(connector2, connector3); } }
@Test public void shouldSetConfiguredPropertyIfGivenEvenIfConfiguredPropertyOrDefaultExists() { final Connector withHiddenProperty = new Connector.Builder().createFrom(connector) .putProperty("prop", new ConfigurationProperty.Builder().type("hidden") .addTag(Credentials.AUTHENTICATION_URL_TAG).defaultValue("I'm a default").build()) .putConfiguredProperty("prop", "initial").build(); final Connector updated = OAuthApp.fromConnector(withHiddenProperty).update( new Connector.Builder().createFrom(withHiddenProperty).putConfiguredProperty("prop", "new-value").build()); assertThat(updated.getConfiguredProperties()).containsEntry("prop", "new-value"); }
@Override public Connector generate(final ConnectorTemplate connectorTemplate, final ConnectorSettings connectorSettings) { return new Connector.Builder().createFrom(baseConnectorFrom(connectorTemplate, connectorSettings)) .putAllProperties(connectorProperties).putConfiguredProperty("prop1", "value1").addAction(action).build(); }