Files
neuron/ft/subscribe_test.robot

133 lines
5.2 KiB
Plaintext

*** Settings ***
Resource resource/api.resource
Resource resource/common.resource
Resource resource/error.resource
Suite Setup Start Neuronx
Suite Teardown Stop Neuronx
*** Test Cases ***
North APP subscribe non-existent group, it should return failure
Add Node modbus-node ${PLUGIN-MODBUS-TCP}
Add Node mqtt ${PLUGIN-MQTT}
Sleep 1s
${res}= Subscribe Group mqtt modbus-node group
Check Response Status ${res} 404
Check Error Code ${res} ${NEU_ERR_GROUP_NOT_EXIST}
North APP subscribe existent group, it should return success
Add Group modbus-node group 1000
${res}= Subscribe Group mqtt modbus-node group
Check Response Status ${res} 200
Check Error Code ${res} ${NEU_ERR_SUCCESS}
North APP update subscribe nonexistent group, it should return success
${res}= Update Subscribe mqtt modbus-node group1 topic=/neuron
Check Response Status ${res} 404
Check Error Code ${res} ${NEU_ERR_GROUP_NOT_SUBSCRIBE}
North APP update subscribe existent group, it should return success
${res}= Update Subscribe mqtt modbus-node group topic=/neuron
Check Response Status ${res} 200
Check Error Code ${res} ${NEU_ERR_SUCCESS}
North APP subscribe multiple nonexistent groups, it should fail.
${g1} = Evaluate {"driver":"modbus-node", "group": "group1"}
${g2} = Evaluate {"driver": "modbus-node", "group": "group2", "params":{"topic":"/neuron"}}
${res}= Subscribe Groups mqtt ${g1} ${g2}
Check Response Status ${res} 404
Check Error Code ${res} ${NEU_ERR_GROUP_NOT_EXIST}
North MQTT APP subscribe with empty topic, it should fail.
${g1} = Evaluate {"driver": "modbus-node", "group": "group1", "params":{"topic":""}}
${res}= Subscribe Groups mqtt ${g1}
Check Response Status ${res} 200
Check Error Code ${res} ${NEU_ERR_MQTT_SUBSCRIBE_FAILURE}
North APP subscribe multiple groups, it should return success
Add Group modbus-node group1 1000
Add Group modbus-node group2 1000
${g1} = Evaluate {"driver":"modbus-node", "group": "group1"}
${g2} = Evaluate {"driver": "modbus-node", "group": "group2", "params":{"topic":"/neuron"}}
${res}= Subscribe Groups mqtt ${g1} ${g2}
Check Response Status ${res} 200
Check Error Code ${res} ${NEU_ERR_SUCCESS}
[Teardown] Run Keywords Del Group modbus-node group1
... AND Del Group modbus-node group2
Query the subscribers of the group, it should return all nodes subscribed to this group
${res} = Get Subscribe Group mqtt
Check Response Status ${res} 200
${len} = Get Length ${res}[groups]
Should Be Equal As Integers ${len} 1
Should Be Equal As Strings ${res}[groups][0][driver] modbus-node
Should Be Equal As Strings ${res}[groups][0][group] group
Should Be Equal As Strings ${res}[groups][0][params][topic] /neuron
Add Group modbus-node group1 1000
Subscribe Group mqtt modbus-node group1
${res} = Get Subscribe Group mqtt
Check Response Status ${res} 200
${len} = Get Length ${res}[groups]
Should Be Equal As Integers ${len} 2
Should Be Equal As Strings ${res}[groups][0][driver] modbus-node
Should Be Equal As Strings ${res}[groups][0][group] group
Should Be Equal As Strings ${res}[groups][1][driver] modbus-node
Should Be Equal As Strings ${res}[groups][1][group] group1
Delete the subscribe group config, it should return success
${res}= Del Group modbus-node group1
Check Response Status ${res} 200
Check Error Code ${res} ${NEU_ERR_SUCCESS}
${res} = Get Subscribe Group mqtt
Check Response Status ${res} 200
${len} = Get Length ${res}[groups]
Should Be Equal As Integers ${len} 1
Should Be Equal As Strings ${res}[groups][0][driver] modbus-node
Should Be Equal As Strings ${res}[groups][0][group] group
North APP unsubscribe group config, it should return success
${res}= Unsubscribe Group mqtt modbus-node group
Check Response Status ${res} 200
Check Error Code ${res} ${NEU_ERR_SUCCESS}
${res} = Get Subscribe Group mqtt
Check Response Status ${res} 200
${len} = Get Length ${res}[groups]
Should Be Equal As Integers ${len} 0
Delete DRIVER node with the subscribed group, it should return success.
${res}= Subscribe Group mqtt modbus-node group
Check Response Status ${res} 200
Check Error Code ${res} ${NEU_ERR_SUCCESS}
${res}= Del Node modbus-node
Check Response Status ${res} 200
Check Error Code ${res} ${NEU_ERR_SUCCESS}
${res} = Get Subscribe Group mqtt
Check Response Status ${res} 200
${len} = Get Length ${res}[groups]
Should Be Equal As Integers ${len} 0
[Teardown] Del Node mqtt