You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2018/09/06 10:49:00 UTC

[incubator-plc4x] branch feature/api-redesign-chris-c updated: - Fixed the camel test-suite and build

This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch feature/api-redesign-chris-c
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git


The following commit(s) were added to refs/heads/feature/api-redesign-chris-c by this push:
     new a4afc99  - Fixed the camel test-suite and build
a4afc99 is described below

commit a4afc99d9ed033424f56e44afad00faa4f6c1228
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Sep 6 12:48:57 2018 +0200

    - Fixed the camel test-suite and build
---
 integrations/apache-camel/pom.xml                       | 15 +++++++--------
 .../main/java/org/apache/plc4x/camel/Plc4XConsumer.java |  5 ++---
 .../test/java/org/apache/plc4x/camel/MockDriver.java    | 17 +++++++----------
 .../java/org/apache/plc4x/camel/Plc4XProducerTest.java  |  8 ++++----
 4 files changed, 20 insertions(+), 25 deletions(-)

diff --git a/integrations/apache-camel/pom.xml b/integrations/apache-camel/pom.xml
index 3fa68fe..ff292f5 100644
--- a/integrations/apache-camel/pom.xml
+++ b/integrations/apache-camel/pom.xml
@@ -89,6 +89,12 @@
     </dependency>
     <dependency>
       <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-protocol-driver-base</artifactId>
+      <version>0.0.1-SNAPSHOT</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
       <artifactId>plc4j-protocol-ads</artifactId>
       <version>0.0.1-SNAPSHOT</version>
       <scope>test</scope>
@@ -159,14 +165,7 @@
             </goals>
             <configuration>
               <failOnWarning>true</failOnWarning>
-              <ignoredDependencies>
-                <ignoredDependency>org.assertj:assertj-core</ignoredDependency>
-                <ignoredDependency>junit:junit</ignoredDependency>
-                <ignoredDependency>org.hamcrest:hamcrest-core</ignoredDependency>
-                <ignoredDependency>org.hamcrest:hamcrest-library</ignoredDependency>
-                <ignoredDependency>org.mockito:mockito-core</ignoredDependency>
-                <ignoredDependency>org.slf4j:slf4j-api</ignoredDependency>
-                <ignoredDependency>ch.qos.logback:logback-classic</ignoredDependency>
+              <ignoredDependencies combine.children="append">
                 <ignoredDependency>org.apache.plc4x:plc4j-protocol-ads</ignoredDependency>
               </ignoredDependencies>
             </configuration>
diff --git a/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XConsumer.java b/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XConsumer.java
index 510690a..f2cccee 100644
--- a/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XConsumer.java
+++ b/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XConsumer.java
@@ -79,14 +79,13 @@ public class Plc4XConsumer extends ServiceSupport implements Consumer, java.util
     }
 
     @Override
-    protected void doStart() throws InterruptedException, ExecutionException, TimeoutException, PlcException {
+    protected void doStart() throws InterruptedException, ExecutionException, PlcException {
         PlcSubscriber plcSubscriber = plcConnection.getSubscriber().orElseThrow(
             () -> new PlcException("Connection doesn't support subscriptions."));
         // TODO: Is it correct to only support one field?
         PlcSubscriptionRequest request = plcSubscriber.subscriptionRequestBuilder()
             .addCyclicField("default", fieldQuery, Duration.of(3, ChronoUnit.SECONDS)).build();
-        CompletableFuture<PlcSubscriptionResponse> subscriptionFuture = getSubscriber().subscribe(request);
-        subscriptionResponse = subscriptionFuture.get(5, TimeUnit.SECONDS);
+        plcSubscriber.register(request, this);
     }
 
     @Override
diff --git a/integrations/apache-camel/src/test/java/org/apache/plc4x/camel/MockDriver.java b/integrations/apache-camel/src/test/java/org/apache/plc4x/camel/MockDriver.java
index 7ae7263..b8575eb 100644
--- a/integrations/apache-camel/src/test/java/org/apache/plc4x/camel/MockDriver.java
+++ b/integrations/apache-camel/src/test/java/org/apache/plc4x/camel/MockDriver.java
@@ -29,6 +29,7 @@ import org.apache.plc4x.java.api.messages.PlcSubscriptionResponse;
 import org.apache.plc4x.java.api.model.PlcField;
 import org.apache.plc4x.java.api.model.PlcSubscriptionHandle;
 import org.apache.plc4x.java.api.types.PlcResponseCode;
+import org.apache.plc4x.java.base.messages.DefaultPlcSubscriptionResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -65,18 +66,14 @@ public class MockDriver implements PlcDriver {
     public PlcConnection connect(String url) {
         // Mock a connection.
         PlcConnection plcConnectionMock = mock(PlcConnection.class, RETURNS_DEEP_STUBS);
-        /*try {
-            when(plcConnectionMock.prepareField(anyString())).thenReturn(mock(PlcField.class));
-        } catch (PlcException e) {
-            throw new RuntimeException(e);
-        }*/
         when(plcConnectionMock.getWriter()).thenReturn(Optional.of(mock(PlcWriter.class, RETURNS_DEEP_STUBS)));
 
         // Mock a typical subscriber.
-        /*PlcSubscriber plcSubscriber = mock(PlcSubscriber.class, RETURNS_DEEP_STUBS);
+        PlcSubscriber plcSubscriber = mock(PlcSubscriber.class, RETURNS_DEEP_STUBS);
         when(plcSubscriber.subscribe(any())).thenAnswer(invocation -> {
             LOGGER.info("Received {}", invocation);
-            PlcSubscriptionRequest subscriptionRequest = invocation.getArgument(0);
+            // TODO: Translate this so it actually does something ...
+            /*PlcSubscriptionRequest subscriptionRequest = invocation.getArgument(0);
             List<PlcSubscriptionResponse> responseItems =
                 subscriptionRequest.getFieldNames().stream().map(
                     fieldName -> subscriptionRequest.getField(fieldName)).map(field -> {
@@ -95,14 +92,14 @@ public class MockDriver implements PlcDriver {
                     return new SubscriptionResponseItem<>(subscriptionRequestItem,
                         mock(PlcSubscriptionHandle.class, RETURNS_DEEP_STUBS), PlcResponseCode.OK);
                 }).collect(Collectors.toList());
-            PlcSubscriptionResponse response = new PlcSubscriptionResponse(subscriptionRequest, responseItems);
+            PlcSubscriptionResponse response = new PlcSubscriptionResponse(subscriptionRequest, responseItems);*/
+            PlcSubscriptionResponse response = new DefaultPlcSubscriptionResponse();
             CompletableFuture<PlcSubscriptionResponse> responseFuture = new CompletableFuture<>();
             responseFuture.complete(response);
             return responseFuture;
         });
         when(plcConnectionMock.getSubscriber()).thenReturn(Optional.of(plcSubscriber));
-        return plcConnectionMock;*/
-        return null;
+        return plcConnectionMock;
     }
 
     @Override
diff --git a/integrations/apache-camel/src/test/java/org/apache/plc4x/camel/Plc4XProducerTest.java b/integrations/apache-camel/src/test/java/org/apache/plc4x/camel/Plc4XProducerTest.java
index 7d8ef2f..f35ce3d 100644
--- a/integrations/apache-camel/src/test/java/org/apache/plc4x/camel/Plc4XProducerTest.java
+++ b/integrations/apache-camel/src/test/java/org/apache/plc4x/camel/Plc4XProducerTest.java
@@ -23,7 +23,6 @@ import org.apache.camel.ExchangePattern;
 import org.apache.plc4x.java.PlcDriverManager;
 import org.apache.plc4x.java.api.connection.PlcConnection;
 import org.apache.plc4x.java.api.connection.PlcWriter;
-import org.apache.plc4x.java.api.model.PlcField;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -51,8 +50,10 @@ public class Plc4XProducerTest {
         when(endpointMock.getPlcDriverManager()).thenReturn(plcDriverManagerMock);
         SUT = new Plc4XProducer(endpointMock);
         testExchange = mock(Exchange.class, RETURNS_DEEP_STUBS);
-        when(testExchange.getIn().getHeader(eq(Constants.FIELD_QUERY_HEADER), eq(PlcField.class)))
-            .thenReturn(mock(PlcField.class));
+        when(testExchange.getIn().getHeader(eq(Constants.FIELD_NAME_HEADER), eq(String.class)))
+            .thenReturn("Hurz");
+        when(testExchange.getIn().getHeader(eq(Constants.FIELD_QUERY_HEADER), eq(String.class)))
+            .thenReturn("PlcField.class");
     }
 
     @Test
@@ -66,7 +67,6 @@ public class Plc4XProducerTest {
         when(testExchange.getIn().getBody()).thenReturn(Arrays.asList("test","test"));
         when(testExchange.getIn().getBody(eq(List.class))).thenReturn(Arrays.asList("test","test"));
         SUT.process(testExchange);
-
     }
 
     @Test