use of de.fraunhofer.iosb.ilt.faaast.service.request.RequestHandlerManager in project FAAAST-Service by FraunhoferIOSB.
the class RequestHandlerManagerTest method testInvokeOperationAsyncRequest.
@Test
public void testInvokeOperationAsyncRequest() {
CoreConfig coreConfig = CoreConfig.builder().build();
Persistence persistence = mock(Persistence.class);
MessageBus messageBus = mock(MessageBus.class);
AssetConnectionManager assetConnectionManager = mock(AssetConnectionManager.class);
AssetOperationProvider assetOperationProvider = mock(AssetOperationProvider.class);
RequestHandlerManager manager = new RequestHandlerManager(coreConfig, persistence, messageBus, assetConnectionManager);
Operation operation = getTestOperation();
OperationHandle expectedOperationHandle = new OperationHandle.Builder().handleId("1").requestId("1").build();
when(persistence.putOperationContext(any(), any(), any())).thenReturn(expectedOperationHandle);
when(persistence.getOperationResult(any())).thenReturn(new OperationResult.Builder().requestId("1").build());
when(assetConnectionManager.hasOperationProvider(any())).thenReturn(true);
when(assetConnectionManager.getOperationProvider(any())).thenReturn(assetOperationProvider);
InvokeOperationAsyncRequest invokeOperationAsyncRequest = new InvokeOperationAsyncRequest.Builder().requestId("1").id(new DefaultIdentifier.Builder().idType(IdentifierType.IRI).identifier("http://example.org").build()).inoutputArguments(operation.getInoutputVariables()).inputArguments(operation.getInputVariables()).build();
InvokeOperationAsyncResponse response = manager.execute(invokeOperationAsyncRequest);
OperationHandle actualOperationHandle = response.getPayload();
Assert.assertEquals(expectedOperationHandle, actualOperationHandle);
}
use of de.fraunhofer.iosb.ilt.faaast.service.request.RequestHandlerManager in project FAAAST-Service by FraunhoferIOSB.
the class RequestHandlerManagerTest method createRequestHandlerManager.
@Before
public void createRequestHandlerManager() {
environment = AASFull.createEnvironment();
coreConfig = CoreConfig.builder().build();
messageBus = mock(MessageBus.class);
persistence = mock(Persistence.class);
assetConnectionManager = mock(AssetConnectionManager.class);
manager = new RequestHandlerManager(coreConfig, persistence, messageBus, assetConnectionManager);
assetValueProvider = mock(AssetValueProvider.class);
when(assetConnectionManager.getValueProvider(any())).thenReturn(assetValueProvider);
}
use of de.fraunhofer.iosb.ilt.faaast.service.request.RequestHandlerManager in project FAAAST-Service by FraunhoferIOSB.
the class Service method init.
private void init() throws ConfigurationException {
if (config.getPersistence() == null) {
throw new InvalidConfigurationException("config.persistence must be non-null");
}
persistence = (Persistence) config.getPersistence().newInstance(config.getCore(), this);
if (config.getMessageBus() == null) {
throw new InvalidConfigurationException("config.messagebus must be non-null");
}
messageBus = (MessageBus) config.getMessageBus().newInstance(config.getCore(), this);
if (config.getAssetConnections() != null) {
List<AssetConnection> assetConnections = new ArrayList<>();
for (AssetConnectionConfig assetConnectionConfig : config.getAssetConnections()) {
assetConnections.add((AssetConnection) assetConnectionConfig.newInstance(config.getCore(), this));
}
assetConnectionManager = new AssetConnectionManager(config.getCore(), assetConnections, this);
}
if (config.getEndpoints() == null || config.getEndpoints().isEmpty()) {
// TODO maybe be less restrictive and only print warning
// throw new InvalidConfigurationException("at least endpoint must be defined in the configuration");
logger.warn("no endpoint configuration found, starting service without endpoint which means the service will not be accessible via any kind of API");
} else {
endpoints = new ArrayList<>();
for (EndpointConfig endpointConfig : config.getEndpoints()) {
Endpoint endpoint = (Endpoint) endpointConfig.newInstance(config.getCore(), this);
endpoints.add(endpoint);
}
}
this.requestHandler = new RequestHandlerManager(this.config.getCore(), this.persistence, this.messageBus, this.assetConnectionManager);
}
use of de.fraunhofer.iosb.ilt.faaast.service.request.RequestHandlerManager in project FAAAST-Service by FraunhoferIOSB.
the class RequestHandlerManagerTest method testInvokeOperationSyncRequest.
@Test
public void testInvokeOperationSyncRequest() {
CoreConfig coreConfig = CoreConfig.builder().build();
Persistence persistence = mock(Persistence.class);
MessageBus messageBus = mock(MessageBus.class);
AssetConnectionManager assetConnectionManager = mock(AssetConnectionManager.class);
when(assetConnectionManager.hasOperationProvider(any())).thenReturn(true);
when(assetConnectionManager.getOperationProvider(any())).thenReturn(new CustomAssetOperationProvider());
RequestHandlerManager manager = new RequestHandlerManager(coreConfig, persistence, messageBus, assetConnectionManager);
Operation operation = getTestOperation();
InvokeOperationSyncRequest invokeOperationSyncRequest = new InvokeOperationSyncRequest.Builder().requestId("1").inoutputArguments(operation.getInoutputVariables()).inputArguments(operation.getInputVariables()).id(new DefaultIdentifier.Builder().idType(IdentifierType.IRI).identifier("http://example.org").build()).build();
InvokeOperationSyncResponse actualResponse = manager.execute(invokeOperationSyncRequest);
InvokeOperationSyncResponse expectedResponse = new InvokeOperationSyncResponse.Builder().statusCode(StatusCode.Success).payload(new OperationResult.Builder().requestId("1").inoutputArguments(List.of(new DefaultOperationVariable.Builder().value(new DefaultProperty.Builder().idShort("TestProp").value("TestOutput").build()).build())).outputArguments(operation.getInputVariables()).executionState(ExecutionState.Completed).build()).build();
Assert.assertEquals(expectedResponse, actualResponse);
}
Aggregations