Skip to content

Commit

Permalink
Clean up get op data validation scenario
Browse files Browse the repository at this point in the history
  • Loading branch information
BenjaminPelletier committed Dec 18, 2023
1 parent 6139bde commit 6833bd1
Show file tree
Hide file tree
Showing 7 changed files with 156 additions and 171 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

## Description
This test checks that the USS being tested validates the operational intents received as response to its GET request from another USS.
Control_uss which is a mock uss plans a nearby V-shaped operation, and provides the data that tested_uss GETs.
tested_uss validates the GET response from control_uss and accordingly plan its operation.
mock_uss which is a mock uss plans a nearby V-shaped operation, and provides the data that tested_uss GETs.
tested_uss validates the GET response from mock_uss and accordingly plan its operation.
Notably the following requirements:

- **[astm.f3548.v21.SCD0035](../../../../requirements/astm/f3548/v21.md)**
Expand All @@ -18,7 +18,7 @@ There is an overlap in time and altitude of the two flights.
- flight_1
- flight_2

### control_uss
### mock_uss
MockUSSResource that will be used for planning flights, controlling data shared for validation testing, and gathering interuss interactions from mock_uss.

### tested_uss
Expand All @@ -29,74 +29,66 @@ DSSInstanceResource that provides access to a DSS instance where flight creation

## Successfully plan flight near an existing flight test case

### [Control_uss plans flight 2 test step](../../../flight_planning/plan_flight_intent.md)
### [mock_uss plans flight 2 test step](../../../flight_planning/plan_flight_intent.md)
Flight 2 should be successfully planned by the control USS.

### [Validate flight 2 sharing test step](../validate_shared_operational_intent.md)
Validate that flight 2 is planned

### Check for notification to tested_uss due to subscription in flight 2 area test step
In order to run this test scenario, we need tested_uss to trigger GET operational intent request to mock_uss.
But, if there is a subscription by tested_uss, that would trigger notification of flight 2 to tested_uss.
Some USSes will not make a GET request to control_uss for flight 2 details, while planning a nearby flight,
if they got a notification for flight2. Hence, if a USS didn't make a GET request, we will only fail it if didn't get
a notification, or else, a precondition for the test will not be met. Some USSes might make a GET request despite getting
a notification, but as it would not be clear whether invalid information through notification or GET request was used for planning,
the test will be not be continued.

### [Tested_uss plans flight 1 test step](../../../flight_planning/plan_flight_intent.md)
### [tested_uss plans flight 1 test step](../../../flight_planning/plan_flight_intent.md)
The test driver attempts to plan flight 1 via the tested USS. It checks if any conflicts with flight 2
which is of equal priority and came first.

### [Validate flight 1 sharing test step](../validate_shared_operational_intent.md)
Validate flight 1 is planned.

### Check for notification to tested_uss due to subscription in flight 2 area test step
In the following test step, we want to assert that tested_uss must have retrieved operational intent details from
mock_uss via a GET request. This assertion is only valid, however, if tested_uss did not obtain the operational
intent details in a different way -- specifically, a notification due to a pre-existing subscription. In this test
step, we determine if tested_uss had a pre-existing subscription by checking if mock_uss sent a notification to
tested_uss.

### [Validate flight2 GET interaction, if no notification test step](test_steps/validate_get_operational_intent.md)
Validate that tested_uss makes a GET request for obtaining details of flight 2 from control_uss.
In a previous step (Precondition - check tested_uss has no subscription in flight 2 area), we ensured that no notification of flight 2 was sent to tested_uss.
Hence, tested_uss will need to make a GET request to obtain flight 2 details.
This step is skipped if a notification to tested_uss was found in the previous step.

### [Validate flight1 Notification sent to Control_uss test step](test_steps/validate_notification_operational_intent.md)
Tested_uss notifies flight 1 to Control_uss, due to its subscription through flight 2.
### [Validate flight1 Notification sent to mock_uss test step](test_steps/validate_notification_operational_intent.md)
tested_uss notifies flight 1 to mock_uss, due to its subscription through flight 2.

### [Delete tested_uss flight test step](../../../flight_planning/delete_flight_intent.md)
Teardown

### [Delete control_uss flight test step](../../../flight_planning/delete_flight_intent.md)
### [Delete mock_uss flight test step](../../../flight_planning/delete_flight_intent.md)
Teardown

## Flight planning prevented due to invalid data sharing test case
### [Control_uss plans flight 2, sharing invalid operational intent data test step](../../../flight_planning/plan_flight_intent.md)
Flight 2 should be successfully planned by the control_uss.
The control_uss, which is mock_uss is instructed to share invalid data with other USS, for negative test.
### [mock_uss plans flight 2, sharing invalid operational intent data test step](../../../flight_planning/plan_flight_intent.md)
Flight 2 should be successfully planned by the mock_uss.
The mock_uss, which is mock_uss is instructed to share invalid data with other USS, for negative test.

### [Validate flight 2 shared operational intent with invalid data test step](test_steps/validate_sharing_operational_intent_but_with_invalid_interuss_data.md)
Validate that flight 2 is shared with invalid data as a modified behavior is injected by uss_qualifier for a negative test.

### Check for notification to tested_uss due to subscription in flight 2 area test step
In order to run this test scenario, we need tested_uss to trigger GET operational intent request to mock_uss.
But, if there is a subscription by tested_uss, that would trigger notification of flight 2 to tested_uss.
Some USSes will not make a GET request to control_uss for flight 2 details, while planning a nearby flight,
if they got a notification for flight2. Hence, if a USS didn't make a GET request, we will only fail it if didn't get
a notification, or else, a precondition for the test will not be met. Some USSes might make a GET request despite getting
a notification, but as it would not be clear whether invalid information through notification or GET request was used for planning,
the test will be not be continued.

### [Tested_uss attempts to plan flight 1, expect failure test step](test_steps/plan_flight_intent_expect_failed.md)
### [tested_uss attempts to plan flight 1, expect failure test step](test_steps/plan_flight_intent_expect_failed.md)
The test driver attempts to plan the flight 1 via the tested_uss. It checks if any conflicts with flight 2
which is of equal priority and came first.

### [Validate flight 1 not shared by tested_uss test step](../validate_not_shared_operational_intent.md)
Validate flight 1 is not shared with DSS, as plan failed.

### Check for notification to tested_uss due to subscription in flight 2 area test step
In the following test step, we want to assert that tested_uss must have retrieved operational intent details from
mock_uss via a GET request. This assertion is only valid, however, if tested_uss did not obtain the operational
intent details in a different way -- specifically, a notification due to a pre-existing subscription. In this test
step, we determine if tested_uss had a pre-existing subscription by checking if mock_uss sent a notification to
tested_uss.

### [Validate flight2 GET interaction, if no notification test step](test_steps/validate_get_operational_intent.md)
Validate that tested_uss makes a GET request for obtaining details of flight 2 from control_uss.
In a previous step (Precondition - check tested_uss has no subscription in flight 2 area), we ensured that no notification of flight 2 was sent to tested_uss.
Hence, tested_uss will need to make a GET request to obtain flight 2 details.
This step is skipped if a notification to tested_uss was found in the previous step.

### [Validate flight 1 Notification not sent to Control_uss test step](test_steps/validate_no_notification_operational_intent.md)
### [Validate flight 1 Notification not sent to mock_uss test step](test_steps/validate_no_notification_operational_intent.md)

### [Delete Control_uss flight test step](../../../flight_planning/delete_flight_intent.md)
### [Delete mock_uss flight test step](../../../flight_planning/delete_flight_intent.md)
Teardown

## Cleanup
Expand Down
Loading

0 comments on commit 6833bd1

Please sign in to comment.