Fix code coverage in LF
[ric-plt/a1.git] / integration_tests / test_a1.tavern.yaml
index 6952b9b..25d06be 100644 (file)
@@ -10,35 +10,81 @@ stages:
     response:
       status_code: 200
 
-
 ---
 
-test_name: test delayed policy
+test_name: test admission control
 
 stages:
-  - name: test the delayed policy
+  - name: type not there yet
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20000
+      method: GET
+    response:
+      status_code: 404
+
+  - name: put the type
     request:
-      url: http://localhost:10000/ric/policies/test_policy
+      url: http://localhost:10000/a1-p/policytypes/20000
       method: PUT
       json:
-        {}
-      headers:
-        content-type: application/json
+        name: Admission Control
+        description: various parameters to control admission of dual connection
+        policy_type_id: 20000
+        create_schema:
+          "$schema": http://json-schema.org/draft-07/schema#
+          type: object
+          properties:
+            enforce:
+              type: boolean
+              default: true
+            window_length:
+              type: integer
+              default: 1
+              minimum: 1
+              maximum: 60
+              description: Sliding window length (in minutes)
+            blocking_rate:
+              type: number
+              default: 10
+              minimum: 1
+              maximum: 100
+              description: "% Connections to block"
+            trigger_threshold:
+              type: integer
+              default: 10
+              minimum: 1
+              description: Minimum number of events in window to trigger blocking
+          required:
+            - enforce
+            - blocking_rate
+            - trigger_threshold
+            - window_length
+          additionalProperties: false
+
+  - name: type there now
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20000
+      method: GET
     response:
       status_code: 200
-      body:
-        ACK_FROM: DELAYED_TEST
-        status: SUCCESS
-
 
----
+  - name: test the admission control policy get not there yet
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy
+      method: GET
+    response:
+      status_code: 404
 
-test_name: test admission control
+  - name: test the admission control policy status get not there yet
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy/status
+      method: GET
+    response:
+      status_code: 404
 
-stages:
-  - name: test the admission control policy
+  - name: put the admission control policy
     request:
-      url: http://localhost:10000/ric/policies/admission_control_policy
+      url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy
       method: PUT
       json:
         enforce: true
@@ -47,40 +93,184 @@ stages:
         trigger_threshold: 10
       headers:
         content-type: application/json
+    response:
+      status_code: 201
+
+  - name: test the admission control policy get
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy
+      method: GET
     response:
       status_code: 200
       body:
-        ACK_FROM: ADMISSION_CONTROL
-        status: SUCCESS
+        enforce: true
+        window_length: 10
+        blocking_rate: 20
+        trigger_threshold: 10
 
-  - name: test the admission control policy get
+  - name: test the admission control policy status get
+    delay_before: 3 # give it a few seconds for rmr
     request:
-      url: http://localhost:10000/ric/policies/admission_control_policy
+      url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy/status
       method: GET
     response:
       status_code: 200
       body:
-        mock return from FETCH: pretend policy is here
+        - handler_id: test_receiver
+          status: OK
 
 ---
 
-test_name: bad_requests
+test_name: test the delay receiver
 
 stages:
-  - name: does not exist
+
+  - name: test the delay policy type not there yet
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20001
+      method: GET
+    response:
+      status_code: 404
+
+  - name: put the type
     request:
-      url: http://localhost:10000/ric/policies/darkness
+      url: http://localhost:10000/a1-p/policytypes/20001
       method: PUT
       json:
-        {}
+        name: test policy
+        description: just for testing
+        policy_type_id: 20001
+        create_schema:
+          "$schema": http://json-schema.org/draft-07/schema#
+          type: object
+          properties:
+            test:
+              type: string
+          required:
+            - test
+          additionalProperties: false
+
+  - name: type there now
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20001
+      method: GET
+    response:
+      status_code: 200
+      body:
+        name: test policy
+        description: just for testing
+        policy_type_id: 20001
+        create_schema:
+          "$schema": http://json-schema.org/draft-07/schema#
+          type: object
+          properties:
+            test:
+              type: string
+          required:
+            - test
+          additionalProperties: false
+
+  - name: test the delay policy instance get not there yet
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest
+      method: GET
+    response:
+      status_code: 404
+
+  - name: test the delay policy status get not there yet
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest/status
+      method: GET
+    response:
+      status_code: 404
+
+  - name: test the delay policy
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest
+      method: PUT
+      json:
+        test: foo
       headers:
         content-type: application/json
+    response:
+      status_code: 201
+
+  - name: test the delay policy get
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest
+      method: GET
+    response:
+      status_code: 200
+      body:
+        test: foo
+
+  - name: test the admission control policy status get
+    delay_before: 8  # give it a few seconds for rmr ; delay reciever sleeps for 5 seconds by default
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest/status
+      method: GET
+    response:
+      status_code: 200
+      body:
+        - handler_id: delay_receiver
+          status: OK
+
+
+---
+
+test_name: bad_requests
+
+stages:
+
+  - name: bad type get
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20002
+      method: GET
+    response:
+      status_code: 404
+
+
+  - name: bad instance get
+    request:
+      url: http://localhost:10000/a1-p/policytypes/20000/policies/darkness
+      method: GET
     response:
       status_code: 404
 
+  - name: bad int range 1
+    request:
+      url: http://localhost:10000/a1-p/policytypes/19999
+      method: PUT
+      json:
+        name: test policy
+        description: just for testing
+        policy_type_id: 19999
+        create_schema:
+          "$schema": http://json-schema.org/draft-07/schema#
+          type: object
+    response:
+      status_code: 400
+
+  - name: bad int range 2
+    request:
+      url: http://localhost:10000/a1-p/policytypes/21024
+      method: PUT
+      json:
+        name: test policy
+        description: just for testing
+        policy_type_id: 21024
+        create_schema:
+          "$schema": http://json-schema.org/draft-07/schema#
+          type: object
+    response:
+      status_code: 400
+
+
+
+
   - name: bad body for admission control policy
     request:
-      url: http://localhost:10000/ric/policies/admission_control_policy
+      url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy
       method: PUT
       json:
         not: "expected"
@@ -91,24 +281,17 @@ stages:
 
   - name: not a json
     request:
-      url: http://localhost:10000/ric/policies/admission_control_policy
+      url: http://localhost:10000/a1-p/policytypes/20000/policies/admission_control_policy
       method: PUT
       data: "asdf"
     response:
       status_code: 415
 
-  - name: bad body for test policy
+  - name: bad body for delaytest
     request:
-      url: http://localhost:10000/ric/policies/test_policy
+      url: http://localhost:10000/a1-p/policytypes/20001/policies/delaytest
       method: PUT
       json:
         not: "welcome"
     response:
       status_code: 400
-
-  - name: test policy doesnt support fetch
-    request:
-      url: http://localhost:10000/ric/policies/test_policy
-      method: GET
-    response:
-      status_code: 400