| Num | Action | Result | Status |
|---|
| 1. | Create object input_conveyor_belt | - Check if object input_conveyor_belt data-structures and objects have been initialized correctly
- input_conveyor_belt should change state to "Idle"
| CR: UT: |
| 2. | Send SENSOR_INTERRUPT to input_conveyor_belt (Message from conveyor_belt_manager) with parameters conveyor_belt_id | - SENSOR_INTERRUPT message handler should be called
- input_conveyor_belt should send ReadSensor to input_magnetic_sensor
- input_conveyor_belt should create object package
- input_conveyor_belt should send SetInputConveyorBeltId to package with fields conveyor_belt_id
- input_conveyor_belt should send SetProductInfo to package with fields product_info
- input_conveyor_belt should send GetRouting to routing_table with fields package
- input_conveyor_belt should send SetOutputConveyorBeltId to package with fields output_conveyor_belt_id
- input_conveyor_belt should start timer await_package_routing
- input_conveyor_belt should change state to "Awaiting Package Routing"
| CR: UT: |
| 3. | Send AcknowledgePackage to input_conveyor_belt (Message from output_conveyor_belt) with parameters input_belt | - AcknowledgePackage message handler should be called
- input_conveyor_belt should stop timer await_package_routing
- input_conveyor_belt should change state to "Idle"
- input_conveyor_belt should delete object package
| CR: UT: |
| Num | Action | Result | Status |
|---|
| 1. | Create object input_conveyor_belt | - Check if object input_conveyor_belt data-structures and objects have been initialized correctly
- input_conveyor_belt should change state to "Idle"
| CR: UT: |
| 2. | Send SENSOR_INTERRUPT to input_conveyor_belt (Message from conveyor_belt_manager) with parameters conveyor_belt_id | - SENSOR_INTERRUPT message handler should be called
- input_conveyor_belt should send ReadSensor to input_magnetic_sensor
- input_conveyor_belt should create object package
- input_conveyor_belt should send SetInputConveyorBeltId to package with fields conveyor_belt_id
- input_conveyor_belt should send SetProductInfo to package with fields product_info
- input_conveyor_belt should send GetRouting to routing_table with fields package
- input_conveyor_belt should send SetOutputConveyorBeltId to package with fields output_conveyor_belt_id
- input_conveyor_belt should start timer await_package_routing
- input_conveyor_belt should change state to "Awaiting Package Routing"
| CR: UT: |
| 3. | Send timeout await_package_routing to input_conveyor_belt | - await_package_routing timeout handler should be called
- input_conveyor_belt should delete object package
- input_conveyor_belt should change state to "Jammed"
- input_conveyor_belt should send CONVEYOR_BELT_JAMMED_ALARM to operator with fields raise, belt_id
| CR: UT: |
| Num | Action | Result | Status |
|---|
| 1. | Create object conveyor_belt (Created by conveyor_belt_manager) | - Check if object conveyor_belt has been initialized correctly
- conveyor_belt should change state to "Out of Service"
| CR: UT: |
| 2. | Send ConfigureBelt to conveyor_belt (Message from conveyor_belt_manager) with parameters belt_id, belt_type | - ConfigureBelt message handler should be called
- conveyor_belt should create object magnetic_sensor
- conveyor_belt should send Activate to magnetic_sensor
- conveyor_belt should change state to "Idle"
| CR: UT: |
| 3. | Send UnConfigureBelt to conveyor_belt (Message from conveyor_belt_manager) with parameters belt_id, belt_type | - UnConfigureBelt message handler should be called
- conveyor_belt should send Deactivate to magnetic_sensor
- conveyor_belt should delete object magnetic_sensor
| CR: UT: |
| 4. | Delete object conveyor_belt (Deleted by conveyor_belt_manager) | - Verify that object conveyor_belt has released all resources
| CR: UT: |