Skip to content

Commit

Permalink
Per PR comments, fixed module path, file name, checks and description…
Browse files Browse the repository at this point in the history
… in the test scenario and test steps readme files
  • Loading branch information
punamverma committed Oct 31, 2023
1 parent db471a0 commit fdc3c7f
Show file tree
Hide file tree
Showing 14 changed files with 148 additions and 137 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# SCD Data Validation of GET operational intents by USS test scenario

## 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.
Notably the following requirements:

- **[astm.f3548.v21.SCD0035](../../../../requirements/astm/f3548/v21.md)**

## Resources
### flight_intents
FlightIntentsResource provides the two V-shaped flight intents.
The convex hulls of the 2D footprints of the two flights intersect, but the polygons do not intersect.
There is an overlap in time and altitude of the two flights.
- flight_1_planned_time_range_A
- flight_2_planned_time_range_A

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

### tested_uss
FlightPlannerResource that will be used for the USS being tested for its data validation of operational intent.

### dss
DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.

## Setup test case
### Check for flight planning readiness test step
Both USSs are queried for their readiness to ensure this test can proceed.

#### Flight planning USS not ready check
If either USS does not respond appropriately to the endpoint queried to determine readiness, this check will fail and the USS will have failed to meet **[astm.f3548.v21.GEN0310](../../../../requirements/astm/f3548/v21.md)** as the USS does not support the InterUSS implementation of that requirement.

### Area clearing test step
Both USSs are requested to remove all flights from the area under test.

#### Area cleared successfully check
**[interuss.automated_testing.flight_planning.ClearArea](../../../../requirements/interuss/automated_testing/flight_planning.md)**

## Successfully plan flight near an existing flight test case
### [Control_uss plans flight 2 test step](../../../flight_planning/plan_flight_intent.md)
Flight 2 on time range A 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

### [Validate no notification pushed for flight 2](../validate_not_shared_operational_intent.md)
There should be no subscription by tested_uss to trigger notification of flight 2.
This will ensure that while planning a nearby flight tested_uss will need to make a GET request to control_uss for flight 2 details.
If this notification was pushed, the GET operational intent data validation test cannot be done.

### [Tested_uss plans flight 1 test step](../../../flight_planning/plan_flight_intent.md)
The test driver attempts to plan flight 1 on time range A via the tested USS. It checks if any conflicts with flight 2
which is of equal priority and came first.
per **[astm.f3548.v21.SCD0035](../../../../requirements/astm/f3548/v21.md)**.

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

### [Validate flight2 GET interaction test step](test_steps/validate_get_operational_intent.md)
Tested_uss needs to make GET request for obtaining details of flight 2.
In a previous step, we checked there was no notification of flight 2 to tested_uss.

### [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. As per **[astm.f3548.v21.USS0105](../../../../requirements/astm/f3548/v21.md)** and **[astm.f3548.v21.SCD0085](../../../../requirements/astm/f3548/v21.md)**

### [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)
Teardown

## Flight planning prevented due to invalid data sharing test case
### [Control_uss plans flight 2, sharing invalid interuss data test step](../../../flight_planning/plan_flight_intent.md)
Flight 2 on time range A should be successfully planned by the control USS.

### [Validate flight 2 shared intent with invalid interuss data test step](test_steps/validate_sharing_operational_intent_but_with_invalid_interuss_data.md)
Validate that flight 2 is planned

### [Validate no notification pushed for flight 2](../validate_not_shared_operational_intent.md)
There should be no subscription by tested_uss to trigger notification of flight 2.
This will ensure that while planning a nearby flight tested_uss will need to make a GET request to control_uss for flight 2 details.
If this notification was pushed, the GET operational intent data validation test cannot be done.

### [Test_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 on time range A via the tested_uss. It checks if any conflicts with flight 2
which is of equal priority and came first.
per **[astm.f3548.v21.SCD0035](../../../../requirements/astm/f3548/v21.md)**.

### [Validate flight 1 not shared by tested_uss test step](../validate_not_shared_operational_intent.md)
Validate flight 1 is not shared.

### [Validate flight 2 GET interaction test step](test_steps/validate_get_operational_intent.md)
Tested_uss needs to make GET request for obtaining details of flight 2 from control_uss.
In a previous step, we checked there was no notification of flight 2 to tested_uss.

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

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

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

## Cleanup
### Successful flight deletion check
**[interuss.automated_testing.flight_planning.DeleteFlightSuccess](../../../../requirements/interuss/automated_testing/flight_planning.md)**
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,21 @@ This page describes the content of a common test case where a valid user flight

## Plan should fail check

Flight intent data of a nearby flight shared was invalid, therefore it should have been failed to plan by the USS per **[interuss.automated_testing.flight_planning.ExpectedBehavior](../../../../../../requirements/interuss/automated_testing/flight_planning.md)**.
Flight intent data of a nearby flight shared was invalid, therefore it should have been failed to plan by the USS per **[interuss.automated_testing.flight_planning.ExpectedBehavior](../../../../../requirements/interuss/automated_testing/flight_planning.md)**.

## Failure If Planned check

Flight intent data of a nearby flight shared was invalid, but the result was planned. It should have been been failed.
If the USS indicates that the injection did not fail, this check will fail per
**[interuss.automated_testing.flight_planning.ExpectedBehavior](../../../../../../requirements/interuss/automated_testing/flight_planning.md)**.
**[interuss.automated_testing.flight_planning.ExpectedBehavior](../../../../../requirements/interuss/automated_testing/flight_planning.md)**.

## Failure If Conflict check
Flight intent data of a nearby flight shared was invalid, but the result was conflict with flight. It should have been been failed.
If the USS indicates that the injection did not fail, this check will fail per
**[interuss.automated_testing.flight_planning.ExpectedBehavior](../../../../../../requirements/interuss/automated_testing/flight_planning.md)**.
**[interuss.automated_testing.flight_planning.ExpectedBehavior](../../../../../requirements/interuss/automated_testing/flight_planning.md)**.

## Failure If Rejected check

Flight intent data of a nearby flight shared was invalid, but the result rejected. It should have been been failed.
If the USS indicates that the injection did not fail, this check will fail per
**[interuss.automated_testing.flight_planning.ExpectedBehavior](../../../../../../requirements/interuss/automated_testing/flight_planning.md)**.
**[interuss.automated_testing.flight_planning.ExpectedBehavior](../../../../../requirements/interuss/automated_testing/flight_planning.md)**.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Validate GET interaction test step

This step verifies that a USS makes a GET request to get the intent_details of an existing operation when needed as per ASTM F3548-21 by checking the interuss interactions of mock uss

## MockUSS interactions request check
**[interuss.mock_uss.interactions.Interactions](../../../../../requirements/interuss/mock_uss/hosted_instance.md)**.

## Expect GET request check
**[astm.f3548.v21.SCD0035](../../../../../requirements/astm/f3548/v21.md)**
SCD0035 needs a USS to verify before transitioning to Accepted that it does not conflict with a type of operational intent, and the only way to have verified this is by knowing all operational intent details, and (from previous checks of no notifications) the only way to know the operational intent details of flight is to have requested them via a GET details interaction.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Validate no notification test step

This step verifies when a flight is not created, it is also not notified by checking the interuss interactions of mock_uss instance.

## MockUSS interactions request check
**[interuss.mock_uss.interactions.Interactions](../../../../../requirements/interuss/mock_uss/hosted_instance.md)**.

## Expect Notification not sent check

**[astm.f3548.v21.SCD0085](../../../../../requirements/astm/f3548/v21.md)**
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Validate notification test step

This step verifies that, when creating or modifying an operational intent, a USS sent the required notification for a relevant subscription owned by a mock_uss instance by checking the interactions of that mock_uss instance.

## MockUSS interactions request check
**[interuss.mock_uss.interactions.Interactions](../../../../../requirements/interuss/mock_uss/hosted_instance.md)**.

## Expect Notification sent check
**[astm.f3548.v21.SCD0085](../../../../../requirements/astm/f3548/v21.md)**

## Notification data is valid check
**[astm.f3548.v21.SCD0085](../../../../../requirements/astm/f3548/v21.md)**
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@ This step verifies that a created flight is shared properly per ASTM F3548-21 by

## DSS responses check

**[astm.f3548.v21.DSS0005](../../../../../../requirements/astm/f3548/v21.md)**
**[astm.f3548.v21.DSS0005](../../../../../requirements/astm/f3548/v21.md)**

## Operational intent shared with DSS check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per **[astm.f3548.v21.USS0005](../../../../../../requirements/astm/f3548/v21.md)** and **[astm.f3548.v21.OPIN0025](../../../../../../requirements/astm/f3548/v21.md)**.
If a reference to the operational intent for the flight is not found in the DSS, this check will fail per **[astm.f3548.v21.USS0005](../../../../../requirements/astm/f3548/v21.md)** and **[astm.f3548.v21.OPIN0025](../../../../../requirements/astm/f3548/v21.md)**.

## Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per **[astm.f3548.v21.USS0105](../../../../../../requirements/astm/f3548/v21.md)** and **[astm.f3548.v21.OPIN0025](../../../../../../requirements/astm/f3548/v21.md)**.
If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per **[astm.f3548.v21.USS0105](../../../../../requirements/astm/f3548/v21.md)** and **[astm.f3548.v21.OPIN0025](../../../../../requirements/astm/f3548/v21.md)**.

## Invalid data in Operational intent details shared by Mock USS for negative test check

Mock USS shares operational intent details response for the negative test case as per [the GetOperationalIntentDetailsResponse schema of the OpenAPI specification](https://github.com/astm-utm/Protocol/blob/v1.0.0/utm.yaml#L1120) but the data is invalid, this check fill fail per **[astm.f3548.v21.USS0105](../../../../../../requirements/astm/f3548/v21.md)**.
Mock USS shares operational intent details response for the negative test case as per [the GetOperationalIntentDetailsResponse schema of the OpenAPI specification](https://github.com/astm-utm/Protocol/blob/v1.0.0/utm.yaml#L1120) but the data is invalid, this check fill fail per **[astm.f3548.v21.USS0105](../../../../../requirements/astm/f3548/v21.md)**.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

0 comments on commit fdc3c7f

Please sign in to comment.