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

zehnder pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git


The following commit(s) were added to refs/heads/dev by this push:
     new de49887  [hotfix] Refactor e2e tests for 3rd party integrations
de49887 is described below

commit de4988770dbd28da908ad432f4a2816e0661dafd
Author: Philipp Zehnder <[email protected]>
AuthorDate: Sun Oct 17 17:05:50 2021 +0200

    [hotfix] Refactor e2e tests for 3rd party integrations
---
 .../utils/ThirdPartyIntegrationUtils.ts}           | 51 ++++++++--------------
 .../InfluxDbAdapter.ts => thirdparty/InfluxDb.ts}  | 49 ++++++++-------------
 .../KafkaAdapter.ts => thirdparty/Kafka.ts}        | 40 +++++------------
 .../{adapter/MqttAdapter.ts => thirdparty/Mqtt.ts} | 39 +++++------------
 .../MySQLDbAdapter.ts => thirdparty/MySQLDb.ts}    | 36 ++++++---------
 5 files changed, 71 insertions(+), 144 deletions(-)

diff --git a/ui/cypress/tests/adapter/MqttAdapter.ts 
b/ui/cypress/support/utils/ThirdPartyIntegrationUtils.ts
similarity index 50%
copy from ui/cypress/tests/adapter/MqttAdapter.ts
copy to ui/cypress/support/utils/ThirdPartyIntegrationUtils.ts
index c5ecf4c..7a70498 100644
--- a/ui/cypress/tests/adapter/MqttAdapter.ts
+++ b/ui/cypress/support/utils/ThirdPartyIntegrationUtils.ts
@@ -16,21 +16,20 @@
  *
  */
 
-import { AdapterUtils } from '../../support/utils/AdapterUtils';
-import { GenericAdapterBuilder } from 
'../../support/builder/GenericAdapterBuilder';
-import { SpecificAdapterBuilder } from 
'../../support/builder/SpecificAdapterBuilder';
-import { PipelineBuilder } from '../../support/builder/PipelineBuilder';
-import { PipelineElementBuilder } from 
'../../support/builder/PipelineElementBuilder';
-import { PipelineUtils } from '../../support/utils/PipelineUtils';
 
-describe('Test MQTT Integration', () => {
-  before('Setup Test', () => {
-    cy.initStreamPipesTest();
-  });
+import { SpecificAdapterBuilder } from '../builder/SpecificAdapterBuilder';
+import { AdapterUtils } from './AdapterUtils';
+import { PipelineBuilder } from '../builder/PipelineBuilder';
+import { PipelineUtils } from './PipelineUtils';
+import { PipelineElementInput } from '../model/PipelineElementInput';
+import { AdapterInput } from '../model/AdapterInput';
+import { SpecificAdapterInput } from '../model/SpecificAdapterInput';
+import { GenericAdapterInput } from '../model/GenericAdapterInput';
 
-  it('Perform Test', () => {
-    const simulatorAdapterName = 'simulator';
+export class ThirdPartyIntegrationUtils {
 
+  public static runTest(sink: PipelineElementInput, adapter: AdapterInput) {
+    const simulatorAdapterName = 'simulator';
 
     const machineAdapter = SpecificAdapterBuilder
       .create('Machine_Data_Simulator')
@@ -40,29 +39,17 @@ describe('Test MQTT Integration', () => {
 
     AdapterUtils.testSpecificStreamAdapter(machineAdapter);
 
-    const topicname = 'cypresstopic';
     const pipelineInput = PipelineBuilder.create('Pipeline Test')
       .addSource(simulatorAdapterName)
-      .addSink(
-        PipelineElementBuilder.create('mqtt_publisher')
-          .addInput('input', 'host', 'localhost')
-          .addInput('input', 'topic', topicname)
-          .build())
+      .addSink(sink)
       .build();
 
     PipelineUtils.testPipeline(pipelineInput);
 
-    const adapterInput = GenericAdapterBuilder
-      .create('MQTT')
-      .setName('Adapter Mqtt')
-      .setTimestampProperty('timestamp')
-      .addProtocolInput('select', 'Unauthenticated', 'check')
-      .addProtocolInput('input', 'broker_url', 'tcp://localhost:1883')
-      .addProtocolInput('input', 'topic', topicname)
-      .setFormat('json_object')
-      .build();
-
-    AdapterUtils.testGenericStreamAdapter(adapterInput);
-  });
-
-});
+    if (adapter instanceof SpecificAdapterInput) {
+      AdapterUtils.testSpecificStreamAdapter(adapter);
+    } else if (adapter instanceof GenericAdapterInput) {
+      AdapterUtils.testGenericStreamAdapter(adapter);
+    }
+  }
+}
diff --git a/ui/cypress/tests/adapter/InfluxDbAdapter.ts 
b/ui/cypress/tests/thirdparty/InfluxDb.ts
similarity index 52%
rename from ui/cypress/tests/adapter/InfluxDbAdapter.ts
rename to ui/cypress/tests/thirdparty/InfluxDb.ts
index 48a0400..21f17d2 100644
--- a/ui/cypress/tests/adapter/InfluxDbAdapter.ts
+++ b/ui/cypress/tests/thirdparty/InfluxDb.ts
@@ -17,10 +17,9 @@
  */
 
 import { SpecificAdapterBuilder } from 
'../../support/builder/SpecificAdapterBuilder';
-import { PipelineBuilder } from '../../support/builder/PipelineBuilder';
 import { PipelineElementBuilder } from 
'../../support/builder/PipelineElementBuilder';
-import { AdapterUtils } from '../../support/utils/AdapterUtils';
-import { PipelineUtils } from '../../support/utils/PipelineUtils';
+import { ThirdPartyIntegrationUtils } from 
'../../support/utils/ThirdPartyIntegrationUtils';
+import { PipelineElementInput } from 
'../../support/model/PipelineElementInput';
 
 describe('Test InfluxDB Integration', () => {
   before('Setup Test', () => {
@@ -28,47 +27,33 @@ describe('Test InfluxDB Integration', () => {
   });
 
   it('Perform Test', () => {
-    const simulatorAdapterName = 'simulator';
-
-    const machineAdapter = SpecificAdapterBuilder
-      .create('Machine_Data_Simulator')
-      .setName(simulatorAdapterName)
-      .addInput('input', 'wait-time-ms', '1000')
-      .build();
-
-    AdapterUtils.testSpecificStreamAdapter(machineAdapter);
-
-    const topicname = 'cypresstopic';
-    const pipelineInput = PipelineBuilder.create('Pipeline Test')
-      .addSource(simulatorAdapterName)
-      .addSink(
-        PipelineElementBuilder.create('influxdb')
-          .addInput('input', 'db_host', 'http://localhost')
-          .addInput('input', 'db_name', 'sp')
-          .addInput('input', 'db_measurement', topicname)
-          .addInput('input', 'db_user', 'sp')
-          .addInput('input', 'db_password', 'default')
-          .addInput('input', 'batch_interval_actions', '2')
-          .addInput('input', 'max_flush_duration', 
'{backspace}{backspace}{backspace}{backspace}500')
-          .addInput('drop-down', 'timestamp_mapping', 'timestamp')
-          .build())
+    const dbName = 'cypresstestdb';
+
+    const sink: PipelineElementInput = 
PipelineElementBuilder.create('influxdb')
+      .addInput('input', 'db_host', 'http://localhost')
+      .addInput('input', 'db_name', 'sp')
+      .addInput('input', 'db_measurement', dbName)
+      .addInput('input', 'db_user', 'sp')
+      .addInput('input', 'db_password', 'default')
+      .addInput('input', 'batch_interval_actions', '2')
+      .addInput('input', 'max_flush_duration', 
'{backspace}{backspace}{backspace}{backspace}500')
+      .addInput('drop-down', 'timestamp_mapping', 'timestamp')
       .build();
 
-    PipelineUtils.testPipeline(pipelineInput);
-
-    const adapterInput = SpecificAdapterBuilder
+    const adapter = SpecificAdapterBuilder
       .create('InfluxDB_Stream_Adapter')
       .setName('InfluxDB Adapter')
       .addInput('input', 'influxDbHost', 'http://localhost')
       .addInput('input', 'influxDbPort', '8086')
       .addInput('input', 'influxDbDatabase', 'sp')
-      .addInput('input', 'influxDbMeasurement', topicname)
+      .addInput('input', 'influxDbMeasurement', dbName)
       .addInput('input', 'influxDbUsername', 'sp')
       .addInput('input', 'influxDbPassword', 'default')
       .addInput('input', 'pollingInterval', '200')
       .build();
 
-    AdapterUtils.testSpecificStreamAdapter(adapterInput);
+    ThirdPartyIntegrationUtils.runTest(sink, adapter);
+
   });
 
 });
diff --git a/ui/cypress/tests/adapter/KafkaAdapter.ts 
b/ui/cypress/tests/thirdparty/Kafka.ts
similarity index 54%
rename from ui/cypress/tests/adapter/KafkaAdapter.ts
rename to ui/cypress/tests/thirdparty/Kafka.ts
index 1125c73..466be69 100644
--- a/ui/cypress/tests/adapter/KafkaAdapter.ts
+++ b/ui/cypress/tests/thirdparty/Kafka.ts
@@ -16,12 +16,10 @@
  *
  */
 
-import { AdapterUtils } from '../../support/utils/AdapterUtils';
 import { GenericAdapterBuilder } from 
'../../support/builder/GenericAdapterBuilder';
-import { SpecificAdapterBuilder } from 
'../../support/builder/SpecificAdapterBuilder';
-import { PipelineBuilder } from '../../support/builder/PipelineBuilder';
 import { PipelineElementBuilder } from 
'../../support/builder/PipelineElementBuilder';
-import { PipelineUtils } from '../../support/utils/PipelineUtils';
+import { ThirdPartyIntegrationUtils } from 
'../../support/utils/ThirdPartyIntegrationUtils';
+import { PipelineElementInput } from 
'../../support/model/PipelineElementInput';
 
 describe('Test Kafka Integration', () => {
   before('Setup Test', () => {
@@ -29,32 +27,16 @@ describe('Test Kafka Integration', () => {
   });
 
   it('Perform Test', () => {
-    const simulatorAdapterName = 'simulator';
+    const topicName = 'cypresstopic';
 
-
-    const machineAdapter = SpecificAdapterBuilder
-      .create('Machine_Data_Simulator')
-      .setName(simulatorAdapterName)
-      .addInput('input', 'wait-time-ms', '1000')
+    const sink: PipelineElementInput = 
PipelineElementBuilder.create('kafka_publisher')
+      .addInput('select', 'Unauthenticated', 'check')
+      .addInput('input', 'host', 'localhost')
+      .addInput('input', 'port', 
'{backspace}{backspace}{backspace}{backspace}9094')
+      .addInput('input', 'topic', topicName)
       .build();
 
-    AdapterUtils.testSpecificStreamAdapter(machineAdapter);
-
-    const topicname = 'cypresstopic';
-    const pipelineInput = PipelineBuilder.create('Pipeline Test')
-      .addSource(simulatorAdapterName)
-      .addSink(
-        PipelineElementBuilder.create('kafka_publisher')
-          .addInput('select', 'Unauthenticated', 'check')
-          .addInput('input', 'host', 'localhost')
-          .addInput('input', 'port', 
'{backspace}{backspace}{backspace}{backspace}9094')
-          .addInput('input', 'topic', topicname)
-          .build())
-      .build();
-
-    PipelineUtils.testPipeline(pipelineInput);
-
-    const adapterInput = GenericAdapterBuilder
+    const adapter = GenericAdapterBuilder
       .create('Apache_Kafka')
       .setName('Kafka4')
       .setTimestampProperty('timestamp')
@@ -62,11 +44,11 @@ describe('Test Kafka Integration', () => {
       .addProtocolInput('input', 'host', 'localhost')
       .addProtocolInput('input', 'port', '9094')
       .addProtocolInput('click', 'sp-reload', '')
-      .addProtocolInput('select', topicname, 'check')
+      .addProtocolInput('select', topicName, 'check')
       .setFormat('json_object')
       .build();
 
-    AdapterUtils.testGenericStreamAdapter(adapterInput);
+    ThirdPartyIntegrationUtils.runTest(sink, adapter);
   });
 
 });
diff --git a/ui/cypress/tests/adapter/MqttAdapter.ts 
b/ui/cypress/tests/thirdparty/Mqtt.ts
similarity index 55%
rename from ui/cypress/tests/adapter/MqttAdapter.ts
rename to ui/cypress/tests/thirdparty/Mqtt.ts
index c5ecf4c..ee98973 100644
--- a/ui/cypress/tests/adapter/MqttAdapter.ts
+++ b/ui/cypress/tests/thirdparty/Mqtt.ts
@@ -16,12 +16,10 @@
  *
  */
 
-import { AdapterUtils } from '../../support/utils/AdapterUtils';
 import { GenericAdapterBuilder } from 
'../../support/builder/GenericAdapterBuilder';
-import { SpecificAdapterBuilder } from 
'../../support/builder/SpecificAdapterBuilder';
-import { PipelineBuilder } from '../../support/builder/PipelineBuilder';
 import { PipelineElementBuilder } from 
'../../support/builder/PipelineElementBuilder';
-import { PipelineUtils } from '../../support/utils/PipelineUtils';
+import { ThirdPartyIntegrationUtils } from 
'../../support/utils/ThirdPartyIntegrationUtils';
+import { PipelineElementInput } from 
'../../support/model/PipelineElementInput';
 
 describe('Test MQTT Integration', () => {
   before('Setup Test', () => {
@@ -29,40 +27,25 @@ describe('Test MQTT Integration', () => {
   });
 
   it('Perform Test', () => {
-    const simulatorAdapterName = 'simulator';
+    const topicName = 'cypresstopic';
 
+    const sink: PipelineElementInput =
+      PipelineElementBuilder.create('mqtt_publisher')
+        .addInput('input', 'host', 'localhost')
+        .addInput('input', 'topic', topicName)
+        .build();
 
-    const machineAdapter = SpecificAdapterBuilder
-      .create('Machine_Data_Simulator')
-      .setName(simulatorAdapterName)
-      .addInput('input', 'wait-time-ms', '1000')
-      .build();
-
-    AdapterUtils.testSpecificStreamAdapter(machineAdapter);
-
-    const topicname = 'cypresstopic';
-    const pipelineInput = PipelineBuilder.create('Pipeline Test')
-      .addSource(simulatorAdapterName)
-      .addSink(
-        PipelineElementBuilder.create('mqtt_publisher')
-          .addInput('input', 'host', 'localhost')
-          .addInput('input', 'topic', topicname)
-          .build())
-      .build();
-
-    PipelineUtils.testPipeline(pipelineInput);
-
-    const adapterInput = GenericAdapterBuilder
+    const adapter = GenericAdapterBuilder
       .create('MQTT')
       .setName('Adapter Mqtt')
       .setTimestampProperty('timestamp')
       .addProtocolInput('select', 'Unauthenticated', 'check')
       .addProtocolInput('input', 'broker_url', 'tcp://localhost:1883')
-      .addProtocolInput('input', 'topic', topicname)
+      .addProtocolInput('input', 'topic', topicName)
       .setFormat('json_object')
       .build();
 
-    AdapterUtils.testGenericStreamAdapter(adapterInput);
+    ThirdPartyIntegrationUtils.runTest(sink, adapter);
   });
 
 });
diff --git a/ui/cypress/tests/adapter/MySQLDbAdapter.ts 
b/ui/cypress/tests/thirdparty/MySQLDb.ts
similarity index 59%
rename from ui/cypress/tests/adapter/MySQLDbAdapter.ts
rename to ui/cypress/tests/thirdparty/MySQLDb.ts
index 0055e68..bf67ef0 100644
--- a/ui/cypress/tests/adapter/MySQLDbAdapter.ts
+++ b/ui/cypress/tests/thirdparty/MySQLDb.ts
@@ -17,10 +17,9 @@
  */
 
 import { SpecificAdapterBuilder } from 
'../../support/builder/SpecificAdapterBuilder';
-import { PipelineBuilder } from '../../support/builder/PipelineBuilder';
 import { PipelineElementBuilder } from 
'../../support/builder/PipelineElementBuilder';
-import { AdapterUtils } from '../../support/utils/AdapterUtils';
-import { PipelineUtils } from '../../support/utils/PipelineUtils';
+import { ThirdPartyIntegrationUtils } from 
'../../support/utils/ThirdPartyIntegrationUtils';
+import { PipelineElementInput } from 
'../../support/model/PipelineElementInput';
 
 describe('Test MySQL Integration', () => {
   before('Setup Test', () => {
@@ -28,26 +27,17 @@ describe('Test MySQL Integration', () => {
   });
 
   it('Perform Test', () => {
-    const simulatorAdapterName = 'simulator';
-
-    AdapterUtils.addMachineDataSimulator(simulatorAdapterName);
-
-    const topicname = 'cypresstopic1';
-    const pipelineInput = PipelineBuilder.create('Pipeline Test')
-      .addSource(simulatorAdapterName)
-      .addSink(
-        PipelineElementBuilder.create('mysql_database')
-          .addInput('input', 'host', 'localhost')
-          .addInput('input', 'user', 'root')
-          .addInput('input', 'password', '7uc4rAymrPhxv6a5')
-          .addInput('input', 'db', 'sp')
-          .addInput('input', 'table', topicname)
-          .build())
+    const dbName = 'cypressDatabase';
+
+    const sink: PipelineElementInput = 
PipelineElementBuilder.create('mysql_database')
+      .addInput('input', 'host', 'localhost')
+      .addInput('input', 'user', 'root')
+      .addInput('input', 'password', '7uc4rAymrPhxv6a5')
+      .addInput('input', 'db', 'sp')
+      .addInput('input', 'table', dbName)
       .build();
 
-    PipelineUtils.testPipeline(pipelineInput);
-
-    const adapterInput = SpecificAdapterBuilder
+    const adapter = SpecificAdapterBuilder
       .create('MySql_Stream_Adapter')
       .setName('MySQL Adapter')
       .setTimestampProperty('timestamp')
@@ -55,10 +45,10 @@ describe('Test MySQL Integration', () => {
       .addInput('input', 'mysqlUser', 'root')
       .addInput('input', 'mysqlPassword', '7uc4rAymrPhxv6a5')
       .addInput('input', 'mysqlDatabase', 'sp')
-      .addInput('input', 'mysqlTable', topicname)
+      .addInput('input', 'mysqlTable', dbName)
       .build();
 
-    AdapterUtils.testSpecificStreamAdapter(adapterInput);
+    ThirdPartyIntegrationUtils.runTest(sink, adapter);
   });
 
 });

Reply via email to