Files
neuron/ft/node_api_test.robot
T
eeff bf8079ad18 Refactor functionality tests
1. Refactor group config api tests to use keywords from api resources
  2. Refactor modbus tcp tests to use keywords from api resources
  3. Refactor node api tests to use keywords from api resources
  4. Refactor opcua tests to use keywords from api resources
  5. Refactor tag api tests to use keywords from api resources
2021-12-21 18:56:33 +08:00

327 lines
16 KiB
Plaintext

*** Settings ***
Resource api_http.resource
Suite Setup Neuron Context Ready
Suite Teardown Neuron Context Stop
*** Variables ***
*** Test Cases ***
POST ping, status can be ok
Ping
Use the wrong body to crate a node, it should return failure
${res} = Add Node type=${${NODE_DRIVER}} namexx=test-node plugin_name=test-plugin-name
Check Response Status ${res} 400
Check Error Code ${res} ${ERR_REQUEST_BODY_INVALID}
Use a plugin name that does not exist to create a node, it should return failure
${res} = Add Node type=${${NODE_DRIVER}} name=test-node plugin_name=test-plugin-name
Check Response Status ${res} 404
Check Error Code ${res} ${ERR_PLUGIN_NAME_NOT_FOUND}
Use a invalid node type to create a node, it should return failure
${res} = Add Node type=${10} name=test-node plugin_name=modbus-tcp-plugin
Check Response Status ${res} 400
Check Error Code ${res} ${ERR_NODE_TYPE_INVALID}
Create a node with the correct body, it should return success
${res} = Add Node type=${${NODE_DRIVER}} name=test-node plugin_name=modbus-tcp-plugin
Check Response Status ${res} 200
Check Error Code ${res} ${ERR_SUCCESS}
Create an existing node, it should return failure
${res} = Add Node type=${${NODE_DRIVER}} name=test-node plugin_name=modbus-tcp-plugin
Check Response Status ${res} 409
Check Error Code ${res} ${ERR_NODE_EXIST}
Get node with wrong parameters, it will return failure
GET /api/v2/node?tt=${NODE_DRIVER}
Integer response status 400
Integer response body error ${ERR_REQUEST_PARAM_INVALID}
Get DRIVER node, it should return all DRIVER node
${res} = Get Nodes ${NODE_DRIVER}
Check Response Status ${res} 200
FOR ${name} IN sample-driver-adapter modbus-tcp-adapter opcua-adapter test-node
Node With Name Should Exist ${res}[nodes] ${name}
END
Get WEB node, it should return all WEB node
${res} = Get Nodes ${NODE_WEB}
Check Response Status ${res} 200
Node With Name Should Exist ${res}[nodes] default-dashboard-adapter
Get MQTT node, it should return all mqtt node
${res} = Get Nodes ${NODE_MQTT}
Check Response Status ${res} 200
Node With Name Should Exist ${res}[nodes] mqtt-adapter
Get STREAM PROCESSOR node, it should return all STREAM PROCESSOR node
${res} = Get Nodes ${NODE_STREAM_PROCESSOR}
Check Response Status ${res} 200
Run Keyword If ${res} != &{EMPTY} Fail not an empty object
Get APP node, it should return all APP node
${res} = Get Nodes ${NODE_APP}
Check Response Status ${res} 200
Node With Name Should Exist ${res}[nodes] sample-app-adapter
Get UNKNOWN type node, it should return empty node
${res} = Get Nodes ${NODE_UNKNOWN}
Check Response Status ${res} 200
Run Keyword If ${res} != &{EMPTY} Fail not an empty object
Get INVALID type node, it should return failure
${res} = Get Nodes ${123456}
Check Response Status ${res} 400
Check Error Code ${res} ${ERR_REQUEST_PARAM_INVALID}
Delete the existing node, it will return success
${res} = Get Nodes ${NODE_DRIVER}
Check Response Status ${res} 200
${node_id} = Get Node By Name ${res}[nodes] test-node
Should Not Be Equal As Integers ${node_id} 0
${res} = Del Node ${node_id}
Check Response Status ${res} 200
${res} = Get Nodes ${NODE_DRIVER}
Check Response Status ${res} 200
${node_id} = Get Node By Name ${res}[nodes] test-node
Should Be Equal As Integers ${node_id} 0
Delete a non-existent node, it will return failure
${res} = Del Node ${1000}
Check Response Status ${res} 404
Check Error Code ${res} ${ERR_NODE_NOT_EXIST}
Add setting to non-existent node, it should return failure
${res} = Node Setting ${999} {"host": "1.1.1.1", "port": 6677, "connection_mode": 0}
Check Response Status ${res} 404
Check Error Code ${res} ${ERR_NODE_NOT_EXIST}
Get setting from non-existent node, it should return failure
${res} = Get Node Setting ${999}
Check Response Status ${res} 404
Check Error Code ${res} ${ERR_NODE_NOT_EXIST}
Get setting from a node that has never been set, it should return failure
${driver_node_id} = Add Node And Return ID ${NODE_DRIVER} driver-node ${PLUGIN_MODBUS_TCP}
${res} = Get Node Setting ${driver_node_id}
Check Response Status ${res} 200
Check Error Code ${res} ${ERR_NODE_SETTING_NOT_EXIST}
${res} = Del Node ${driver_node_id}
Check Response Status ${res} 200
Check Error Code ${res} ${ERR_SUCCESS}
Add the correct settings to the node, it should return success
${driver_node_id} = Add Node And Return ID ${NODE_DRIVER} driver-node ${PLUGIN_MODBUS_TCP}
${res} = Node Setting ${driver_node_id} {"host": "1.1.1.1", "port": 6677, "connection_mode": 0}
Check Response Status ${res} 200
Check Error Code ${res} ${ERR_SUCCESS}
Get the setting of node, it should return to the previous setting
${driver_node_id} = Get Node ID ${NODE_DRIVER} driver-node
${res} = Get Node Setting ${driver_node_id}
${params} = Set Variable ${res}[params]
Check Response Status ${res} 200
Should Be Equal As Integers ${res}[node_id] ${driver_node_id}
Should Be Equal As Integers ${params}[port] 6677
Should Be Equal As Strings ${params}[host] 1.1.1.1
Should Be Equal As Integers ${params}[connection_mode] 0
Add wrong settings to node, it should return failure
${driver_node_id} = Get Node ID ${NODE_DRIVER} driver-node
${res} = Node Setting ${driver_node_id} {"xxhost": "1.1.1.1", "port": 6677, "connection_mode": 0}
Check Response Status ${res} 400
Check Error Code ${res} ${ERR_NODE_SETTING_INVALID}
Update a node that does not exist, it should return failure
${res} = Update Node ${99} test-name
Check Response Status ${res} 404
Check Error Code ${res} ${ERR_NODE_NOT_EXIST}
Update the name of the node, it should return success
${app_node_id} = Add Node And Return ID ${NODE_APP} app-node ${PLUGIN_MQTT}
${res} = Update Node ${app_node_id} test-name
Check Response Status ${res} 200
Check Error Code ${res} ${ERR_SUCCESS}
${res} = Get Nodes ${NODE_APP}
Check Response Status ${res} 200
Node With Name Should Exist ${res}[nodes] test-name
${res} = Del Node ${app_node_id}
Check Response Status ${res} 200
Check Error Code ${res} ${ERR_SUCCESS}
Start an unconfigured node, it should return failure
${modbus_node_id} = Add Node And Return ID ${NODE_DRIVER} modbus-test-node ${PLUGIN_MODBUS_TCP}
Sleep 1s
${running_state} ${link_state} = Get Node State ${modbus_node_id}
Should Be Equal As Integers ${running_state} ${NODE_STATE_INIT}
Should Be Equal As Integers ${link_state} ${NODE_LINK_STATE_DISCONNECTED}
${res} = Node Ctl ${modbus_node_id} ${NODE_CTL_START}
Check Response Status ${res} 409
Check Error Code ${res} ${ERR_NODE_NOT_READY}
${res} = Del Node ${modbus_node_id}
Check Response Status ${res} 200
Check Error Code ${res} ${ERR_SUCCESS}
Start the configured node, it should return success
${modbus_node_id} = Add Node And Return ID ${NODE_DRIVER} modbus-test-node ${PLUGIN_MODBUS_TCP}
Sleep 1s
Node Setting ${modbus_node_id} {"host": "127.0.0.1", "port": 502, "connection_mode": 0}
${running_state} ${link_state} = Get Node State ${modbus_node_id}
Should Be Equal As Integers ${running_state} ${NODE_STATE_READY}
Should Be Equal As Integers ${link_state} ${NODE_LINK_STATE_CONNECTING}
${res} = Node Ctl ${modbus_node_id} ${NODE_CTL_START}
Check Response Status ${res} 200
Check Error Code ${res} ${ERR_SUCCESS}
${running_state} ${link_state} = Get Node State ${modbus_node_id}
Should Be Equal As Integers ${running_state} ${NODE_STATE_RUNNING}
Should Be Equal As Integers ${link_state} ${NODE_LINK_STATE_CONNECTING}
Start the stopped node, it should return success
${modbus_node_id} = Get Node ID ${NODE_DRIVER} modbus-test-node
Node Ctl ${modbus_node_id} ${NODE_CTL_STOP}
${running_state} ${link_state} = Get Node State ${modbus_node_id}
Should Be Equal As Integers ${running_state} ${NODE_STATE_STOP}
Should Be Equal As Integers ${link_state} ${NODE_LINK_STATE_CONNECTING}
${res} = Node Ctl ${modbus_node_id} ${NODE_CTL_START}
Check Response Status ${res} 200
Check Error Code ${res} ${ERR_SUCCESS}
${running_state} ${link_state} = Get Node State ${modbus_node_id}
Should Be Equal As Integers ${running_state} ${NODE_STATE_RUNNING}
Should Be Equal As Integers ${link_state} ${NODE_LINK_STATE_CONNECTING}
Start the running node, it should return failure
${modbus_node_id} = Get Node ID ${NODE_DRIVER} modbus-test-node
${res} = Node Ctl ${modbus_node_id} ${NODE_CTL_START}
Check Response Status ${res} 409
Check Error Code ${res} ${ERR_NODE_IS_RUNNING}
${res} = Node Ctl ${modbus_node_id} ${NODE_CTL_STOP}
Check Response Status ${res} 200
Check Error Code ${res} ${ERR_SUCCESS}
Stop node that is stopped, it should return failure
${modbus_node_id} = Get Node ID ${NODE_DRIVER} modbus-test-node
${res} = Node Ctl ${modbus_node_id} ${NODE_CTL_STOP}
Check Response Status ${res} 409
Check Error Code ${res} ${ERR_NODE_IS_STOPED}
${res} = Del Node ${modbus_node_id}
Check Response Status ${res} 200
Check Error Code ${res} ${ERR_SUCCESS}
Stop node that is ready(init/idle), it should return failure
${modbus_node_id} = Add Node And Return ID ${NODE_DRIVER} modbus-test-node ${PLUGIN_MODBUS_TCP}
Sleep 1s
${res} = Node Ctl ${modbus_node_id} ${NODE_CTL_STOP}
Check Response Status ${res} 409
Check Error Code ${res} ${ERR_NODE_NOT_RUNNING}
Node Setting ${modbus_node_id} {"host": "127.0.0.1", "port": 502, "connection_mode": 0}
${res} = Node Ctl ${modbus_node_id} ${NODE_CTL_STOP}
Check Response Status ${res} 409
Check Error Code ${res} ${ERR_NODE_NOT_RUNNING}
${res} = Del Node ${modbus_node_id}
Check Response Status ${res} 200
Check Error Code ${res} ${ERR_SUCCESS}
When setting up a READY/RUNNING/STOPED node, the node status will not change
${modbus_node_id} = Add Node And Return ID ${NODE_DRIVER} modbus-test-node ${PLUGIN_MODBUS_TCP}
Sleep 1s
Node Setting ${modbus_node_id} {"host": "127.0.0.1", "port": 502, "connection_mode": 0}
${running_state} ${link_state} = Get Node State ${modbus_node_id}
Should Be Equal As Integers ${running_state} ${NODE_STATE_READY}
Should Be Equal As Integers ${link_state} ${NODE_LINK_STATE_CONNECTING}
Node Setting ${modbus_node_id} {"host": "127.0.0.1", "port": 502, "connection_mode": 0}
${running_state} ${link_state} = Get Node State ${modbus_node_id}
Should Be Equal As Integers ${running_state} ${NODE_STATE_READY}
Should Be Equal As Integers ${link_state} ${NODE_LINK_STATE_CONNECTING}
Node Ctl ${modbus_node_id} ${NODE_CTL_START}
${running_state} ${link_state} = Get Node State ${modbus_node_id}
Should Be Equal As Integers ${running_state} ${NODE_STATE_RUNNING}
Should Be Equal As Integers ${link_state} ${NODE_LINK_STATE_CONNECTING}
Node Ctl ${modbus_node_id} ${NODE_CTL_STOP}
${running_state} ${link_state} = Get Node State ${modbus_node_id}
Should Be Equal As Integers ${running_state} ${NODE_STATE_STOP}
Should Be Equal As Integers ${link_state} ${NODE_LINK_STATE_CONNECTING}
*** Keywords ***
Neuron Context Ready
Neuron Ready
LOGIN
Neuron Context Stop
LOGOUT
Stop Neuron