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);
});
});