Adds a new step to the test case with provided identifier. If provided identifier is not registered yet, a new test case will be created with that value and the step will be added as the first. For a specific 'id', the steps are stored in order as they are programmed. Check possible runtime exceptions when adding a new step because those which fail, will be ignored/skipped during test case programming giving an incomplete sequence invalid for the testing purpose.
-<id>: integer number, normally monotonically increased for each test case. Some external script/procedure shall clone a test case template in order to build a collection of independent and coherent test cases (normally same type) with different context values (Session-Id, Subscriber-Id, etc.).
+<id>: integer number, normally monotonically increased for each test case. Some external script/procedure shall clone a test case template in order to build a collection of independent and coherent test cases (normally same type) with different context values (Session-Id, Subscriber-Id, etc.). If 0 provided, `id` will be calculated as the current number of test cases plus 1 (normally valid when identification started on value of 1 and no holes were created).
<command>: commands to be executed for the test id provided. Each command programmed constitutes a test case 'step', numbered from 1 to N, with an exception for 'description' which is used to describe the test case:
### FSM testing
ADML implements a bulting *Finite State Machine* to plan testing flows with a great flexibility.
+Every operation will receive a response which `json` content is as follows:
-#### POST /testid-description
+```json
+{
+ "result":"true",
+ "response":"<test id>"
+}
+```
+
+or
+
+```json
+{
+ "result":"false",
+ "response":"<error hint>"
+}
+```
+
+In case of success operation, the value of the affected test identifier carried in `response` field is useful when zero value was provided to automatically reserve the next test case. In case of error, a brief error description will be carried in that field.
+
+#### POST /testid-description/{id}
**Request body**:
}
```
-#### POST /testid-ip-limit
+#### POST /testid-ip-limit/{id}
In-Progress limit is the maximum number of tests which can be executed in parallel.
This operation allows a specific test to set this global pool behaviour.
}
```
-#### POST /testid-timeout
+#### POST /testid-timeout/{id}
**Request body**:
}
```
-#### POST /testid-sendmsg2e
+#### POST /testid-sendmsg2e/{id}
**Request body**:
}
```
-#### POST /testid-sendmsg2c
+#### POST /testid-sendmsg2c/{id}
**Request body**:
}
```
-#### POST /testid-delay
+#### POST /testid-delay/{id}
**Request body**:
}
```
-#### POST /testid-sh-command
+#### POST /testid-sh-command/{id}
**Request body**:
}
```
-#### POST /testid-waitfe-hex
+#### POST /testid-waitfe-hex/{id}
**Request body**:
}
```
-#### POST /testid-waitfc-hex
+#### POST /testid-waitfc-hex/{id}
**Request body**:
}
```
-#### POST /testid-waitfe-msg
+#### POST /testid-waitfe-msg/{id}
**Request body**:
}
```
-#### POST /testid-waitfc-msg
+#### POST /testid-waitfc-msg/{id}
**Request body**:
}
```
-#### POST /testid-waitfe
+#### POST /testid-waitfe/{id}
**Request body**:
}
```
-#### POST /testid-waitfc
+#### POST /testid-waitfc/{id}
**Request body**:
}
```
-### EXECUTION ACTIONS
+### FSM TESTING EXECUTION ACTIONS
#### POST /test-ttps
#### POST /test-clear
-**Request body**: none
+**Request body**:
+
+```
+{
+ ["id":[test identifier (integer: all by default (-1))]]
+}
+```
**Response body**:
}
```
+### DYNAMIC PROCEDURE
+Used for system test. Arguments are determined by the way in a specific dynamic library is designed/documented.
+
+#### POST /dynamic
+
+**Request body**:
+
+```
+{
+ "arguments": <diameter arguments json object>
+}
+```
+
+**Response body**:
+
+```
+{
+ "result":"<true or false>",
+ "response":"<response>"
+}
+```