use of io.syndesis.common.model.connection.DynamicActionMetadata in project syndesis by syndesisio.
the class ConnectionActionHandlerTest method shouldAddMetaAndSetStatusToBadRequestIfMetaCallFails.
@Test
public void shouldAddMetaAndSetStatusToBadRequestIfMetaCallFails() {
@SuppressWarnings({ "unchecked", "rawtypes" }) final Class<Entity<Map<String, Object>>> entityType = (Class) Entity.class;
ArgumentCaptor.forClass(entityType);
// simulates fallback return
final DynamicActionMetadata fallback = new DynamicActionMetadata.Builder().build();
when(metadataCommand.execute()).thenReturn(fallback);
when(((HystrixInvokableInfo<?>) metadataCommand).isSuccessfulExecution()).thenReturn(false);
final Response response = handler.enrichWithMetadata(SALESFORCE_CREATE_OR_UPDATE, Collections.emptyMap());
assertThat(response.getStatus()).isEqualTo(Status.BAD_REQUEST.getStatusCode());
@SuppressWarnings("unchecked") final Meta<ConnectorDescriptor> meta = (Meta<ConnectorDescriptor>) response.getEntity();
final ConnectorDescriptor descriptor = new ConnectorDescriptor.Builder().createFrom(createOrUpdateSalesforceObjectDescriptor).inputDataShape(//
ConnectionActionHandler.ANY_SHAPE).outputDataShape(//
salesforceOutputShape).build();
assertThat(meta.getValue()).isEqualTo(descriptor);
final MetaData metadata = meta.getData();
assertThat(metadata).isNotNull();
assertThat(metadata.getType()).contains(MetaData.Type.WARNING);
assertThat(metadata.getMessage()).contains("The query did not succeed");
}
use of io.syndesis.common.model.connection.DynamicActionMetadata in project syndesis by syndesisio.
the class ConnectionActionHandlerTest method shouldElicitActionPropertySuggestions.
@Test
public void shouldElicitActionPropertySuggestions() {
final DynamicActionMetadata suggestions = new DynamicActionMetadata.Builder().putProperty("sObjectName", Collections.singletonList(DynamicActionMetadata.ActionPropertySuggestion.Builder.of("Contact", "Contact"))).putProperty("sObjectIdName", Arrays.asList(DynamicActionMetadata.ActionPropertySuggestion.Builder.of("ID", "Contact ID"), DynamicActionMetadata.ActionPropertySuggestion.Builder.of("Email", "Email"), DynamicActionMetadata.ActionPropertySuggestion.Builder.of("TwitterScreenName__c", "Twitter Screen Name"))).inputShape(//
salesforceContactShape).build();
when(metadataCommand.execute()).thenReturn(suggestions);
when(((HystrixInvokableInfo<?>) metadataCommand).isSuccessfulExecution()).thenReturn(true);
final ConnectorDescriptor enrichedDefinitioin = new ConnectorDescriptor.Builder().createFrom(createOrUpdateSalesforceObjectDescriptor).replaceConfigurationProperty("sObjectName", c -> c.addEnum(ConfigurationProperty.PropertyValue.Builder.of("Contact", "Contact"))).replaceConfigurationProperty("sObjectIdName", c -> c.addEnum(ConfigurationProperty.PropertyValue.Builder.of("ID", "Contact ID"))).replaceConfigurationProperty("sObjectIdName", c -> c.addEnum(ConfigurationProperty.PropertyValue.Builder.of("Email", "Email"))).replaceConfigurationProperty("sObjectIdName", c -> c.addEnum(ConfigurationProperty.PropertyValue.Builder.of("TwitterScreenName__c", "Twitter Screen Name"))).inputDataShape(//
salesforceContactShape).build();
final Map<String, String> parameters = new HashMap<>();
parameters.put("sObjectName", "Contact");
final Response response = handler.enrichWithMetadata(SALESFORCE_CREATE_OR_UPDATE, parameters);
assertThat(response.getStatus()).isEqualTo(Status.OK.getStatusCode());
@SuppressWarnings("unchecked") final Meta<ConnectorDescriptor> meta = (Meta<ConnectorDescriptor>) response.getEntity();
assertThat(meta.getValue()).isEqualTo(enrichedDefinitioin);
}
Aggregations