AETHER-2941 open-policy-agent: create unit tests for REGO Rules

Change-Id: Ib6b9294e3cedaf96e77b03e21727b2ea108d43e3
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-group-ent.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-group-ent.out
new file mode 100644
index 0000000..2e38048
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-group-ent.out
@@ -0,0 +1,60 @@
+[
+  {
+    "connectivity_services": {
+      "connectivity_service": [
+        {
+          "acc_prometheus_url": "./prometheus_acc",
+          "core_5g_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/5g",
+          "description": "5G Test",
+          "display_name": "ROC 5G Test Connectivity Service",
+          "id": "cs5gtest"
+        },
+        {
+          "description": "ROC 4G Test Connectivity Service",
+          "display_name": "4G Test",
+          "hss_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/imsis",
+          "id": "cs4gtest",
+          "pcrf_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/policies",
+          "spgwc_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config"
+        }
+      ]
+    },
+    "enterprises": {
+      "enterprise": [
+        [
+          {
+            "description": "This Enterprise holds discovered IMSIs that cannot be associated elsewhere.",
+            "display_name": "Default Enterprise",
+            "enterprise_id": "defaultent"
+          },
+          {
+            "connectivity_service": [
+              {
+                "connectivity_service": "cs5gtest",
+                "enabled": true
+              }
+            ],
+            "description": "ACME Corporation",
+            "display_name": "ACME Corp",
+            "enterprise_id": "acme"
+          },
+          {
+            "connectivity_service": [
+              {
+                "connectivity_service": "cs5gtest",
+                "enabled": true
+              },
+              {
+                "connectivity_service": "cs4gtest",
+                "enabled": false
+              }
+            ],
+            "description": "Starbucks Corporation",
+            "display_name": "Starbucks Inc.",
+            "enterprise_id": "starbucks"
+          }
+        ]
+      ]
+    }
+  }
+]
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-no-ent.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-no-ent.out
new file mode 100644
index 0000000..d1ba2a7
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-no-ent.out
@@ -0,0 +1,28 @@
+[
+  {
+    "connectivity_services": {
+      "connectivity_service": [
+        {
+          "acc_prometheus_url": "./prometheus_acc",
+          "core_5g_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/5g",
+          "description": "5G Test",
+          "display_name": "ROC 5G Test Connectivity Service",
+          "id": "cs5gtest"
+        },
+        {
+          "description": "ROC 4G Test Connectivity Service",
+          "display_name": "4G Test",
+          "hss_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/imsis",
+          "id": "cs4gtest",
+          "pcrf_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/policies",
+          "spgwc_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config"
+        }
+      ]
+    },
+    "enterprises": {
+      "enterprise": [
+        []
+      ]
+    }
+  }
+]
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-single-ent.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-single-ent.out
new file mode 100644
index 0000000..57819d8
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-single-ent.out
@@ -0,0 +1,40 @@
+[
+  {
+    "connectivity_services": {
+      "connectivity_service": [
+        {
+          "acc_prometheus_url": "./prometheus_acc",
+          "core_5g_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/5g",
+          "description": "5G Test",
+          "display_name": "ROC 5G Test Connectivity Service",
+          "id": "cs5gtest"
+        },
+        {
+          "description": "ROC 4G Test Connectivity Service",
+          "display_name": "4G Test",
+          "hss_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/imsis",
+          "id": "cs4gtest",
+          "pcrf_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/policies",
+          "spgwc_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config"
+        }
+      ]
+    },
+    "enterprises": {
+      "enterprise": [
+        [
+          {
+            "connectivity_service": [
+              {
+                "connectivity_service": "cs5gtest",
+                "enabled": true
+              }
+            ],
+            "description": "ACME Corporation",
+            "display_name": "ACME Corp",
+            "enterprise_id": "acme"
+          }
+        ]
+      ]
+    }
+  }
+]
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-basic.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-basic.out
new file mode 100644
index 0000000..df89fab
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-basic.out
@@ -0,0 +1,83 @@
+[
+  {
+    "ap-list": {
+      "ap-list": [
+        []
+      ]
+    },
+    "application": {
+      "application": [
+        []
+      ]
+    },
+    "connectivity-service": {
+      "connectivity-service": [
+        []
+      ]
+    },
+    "device-group": {
+      "device-group": [
+        []
+      ]
+    },
+    "enterprise": {
+      "enterprise": [
+        []
+      ]
+    },
+    "ip-domain": {
+      "ip-domain": [
+        []
+      ]
+    },
+    "network": {
+      "network": [
+        []
+      ]
+    },
+    "site": {
+      "site": [
+        []
+      ]
+    },
+    "template": {
+      "template": [
+        [
+          {
+            "description": "do",
+            "display-name": "laborum fugiat",
+            "downlink": 322694552,
+            "id": "aliquip",
+            "sd": 14628949,
+            "sst": 1,
+            "uplink": 1607714163
+          },
+          {
+            "description": "do",
+            "display-name": "quattro fugiat",
+            "downlink": 322694552,
+            "id": "quattro",
+            "sd": 14628949,
+            "sst": 1,
+            "uplink": 1607714163
+          }
+        ]
+      ]
+    },
+    "traffic_class": {
+      "traffic_class": [
+        []
+      ]
+    },
+    "upf": {
+      "upf": [
+        []
+      ]
+    },
+    "vcs": {
+      "vcs": [
+        []
+      ]
+    }
+  }
+]
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-get.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-get.out
new file mode 100644
index 0000000..4b3d3c0
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-get.out
@@ -0,0 +1,239 @@
+[
+  {
+    "ap-list": {
+      "ap-list": [
+        [
+          {
+            "access_points": [
+              {
+                "address": "ap2^chicago^acme^com",
+                "enable": true,
+                "tac": 8002
+              }
+            ],
+            "description": "Chicago APs",
+            "display_name": "Chicago",
+            "enterprise": "acme",
+            "id": "acme_chicago_aps"
+          }
+        ]
+      ]
+    },
+    "application": {
+      "application": [
+        [
+          {
+            "description": "Data Acquisition",
+            "display_name": "DA",
+            "endpoint": [
+              {
+                "address": "da.acme.com",
+                "name": "da",
+                "port_end": 7585,
+                "port_start": 7588,
+                "protocol": "TCP"
+              }
+            ],
+            "enterprise": "acme",
+            "id": "acme_dataacquisition"
+          }
+        ]
+      ]
+    },
+    "connectivity-service": {
+      "connectivity-service": [
+        [
+          {
+            "core_5g_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/5g",
+            "description": "5G Test",
+            "display_name": "ROC 5G Test Connectivity Service",
+            "id": "cs5gtest"
+          },
+          {
+            "description": "ROC 4G Test Connectivity Service",
+            "display_name": "4G Test",
+            "hss_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/imsis",
+            "id": "cs4gtest",
+            "pcrf_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/policies",
+            "spgwc_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config"
+          }
+        ]
+      ]
+    },
+    "device-group": {
+      "device-group": [
+        [
+          {
+            "display_name": "ACME Robots",
+            "id": "acme_chicago_robots",
+            "imsis": [
+              {
+                "imsi_range_from": 13698808332993000,
+                "imsi_range_to": 13698808332993003,
+                "name": "production"
+              },
+              {
+                "imsi_range_from": 13698808332993010,
+                "imsi_range_to": 13698808332993012,
+                "name": "warehouse"
+              }
+            ],
+            "ip_domain": "acme_chicago",
+            "site": "acme_chicago"
+          }
+        ]
+      ]
+    },
+    "enterprise": {
+      "enterprise": [
+        [
+          {
+            "connectivity_service": [
+              {
+                "connectivity_service": "cs5gtest",
+                "enabled": true
+              }
+            ],
+            "description": "ACME Corporation",
+            "display_name": "ACME Corp",
+            "id": "acme"
+          }
+        ]
+      ]
+    },
+    "ip-domain": {
+      "ip-domain": [
+        []
+      ]
+    },
+    "network": {
+      "network": [
+        [
+          {
+            "description": "Chicago 123_456",
+            "display_name": "Chicago",
+            "enterprise": "acme",
+            "id": "acme_chicago",
+            "mcc": 123,
+            "mnc": 456
+          }
+        ]
+      ]
+    },
+    "site": {
+      "site": [
+        [
+          {
+            "description": "ACME HQ",
+            "display_name": "Chicago",
+            "enterprise": "acme",
+            "id": "acme_chicago",
+            "network": "acme_chicago"
+          }
+        ]
+      ]
+    },
+    "template": {
+      "template": [
+        [
+          {
+            "description": "VCS Template 1",
+            "display_name": "Template 1",
+            "downlink": 24669539,
+            "id": "template_1",
+            "sd": 10886763,
+            "sst": 158,
+            "traffic_class": "class_1",
+            "uplink": 23770218
+          },
+          {
+            "description": "VCS Template 2",
+            "display_name": "Template 2",
+            "downlink": 2791589,
+            "id": "template_2",
+            "sd": 16619900,
+            "sst": 157,
+            "traffic_class": "class_2",
+            "uplink": 24721051
+          }
+        ]
+      ]
+    },
+    "traffic_class": {
+      "traffic_class": [
+        [
+          {
+            "description": "High Priority TC",
+            "display_name": "Class 1",
+            "id": "class_1",
+            "pdb": 577,
+            "pelr": 3,
+            "qci": 10
+          },
+          {
+            "description": "Medium Priority TC",
+            "display_name": "Class 2",
+            "id": "class_2",
+            "pdb": 831,
+            "pelr": 4,
+            "qci": 20
+          },
+          {
+            "description": "Low Priority TC",
+            "display_name": "Class 3",
+            "id": "class_3",
+            "pdb": 833,
+            "pelr": 4,
+            "qci": 30
+          }
+        ]
+      ]
+    },
+    "upf": {
+      "upf": [
+        [
+          {
+            "address": "chicago.robots_upf.acme.com",
+            "description": "Chicago Robots UPF",
+            "display_name": "Chicago Robots",
+            "enterprise": "acme",
+            "id": "acme_chicago_robots",
+            "port": 6161
+          }
+        ]
+      ]
+    },
+    "vcs": {
+      "vcs": [
+        [
+          {
+            "ap": "acme_chicago_aps",
+            "application": [
+              {
+                "allow": false,
+                "application": "acme_dataacquisition"
+              }
+            ],
+            "description": "Chicago Robots",
+            "device_group": [
+              {
+                "device_group": "acme_chicago_robots",
+                "enable": true
+              }
+            ],
+            "display_name": "Chicago Robots VCS",
+            "downlink": 28492626,
+            "enterprise": "acme",
+            "id": "acme_chicago_robots",
+            "sd": 2973238,
+            "sst": 79,
+            "template": "template_2",
+            "traffic_class": "class_2",
+            "upf": "acme_chicago_robots",
+            "uplink": 13227287
+          }
+        ]
+      ]
+    }
+  }
+]
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-set.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-set.out
new file mode 100644
index 0000000..6f88625
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-set.out
@@ -0,0 +1,128 @@
+[
+  {
+    "ap-list": {
+      "ap-list": [
+        []
+      ]
+    },
+    "application": {
+      "application": [
+        []
+      ]
+    },
+    "connectivity-service": {
+      "connectivity-service": [
+        []
+      ]
+    },
+    "device-group": {
+      "device-group": [
+        [
+          {
+            "display-name": "tempor ut",
+            "id": "amet",
+            "imsis": [
+              {
+                "imsi-range-from": 170029313275000,
+                "imsi-range-to": 69764015096000,
+                "name": "enim"
+              },
+              {
+                "imsi-range-from": 116299798497000,
+                "imsi-range-to": 22297092854800,
+                "name": "ad"
+              }
+            ],
+            "ip-domain": "qui",
+            "site": "inc"
+          }
+        ]
+      ]
+    },
+    "enterprise": {
+      "enterprise": [
+        [
+          {
+            "connectivity-service": [
+              {
+                "connectivity-service": "repre",
+                "enabled": true
+              },
+              {
+                "connectivity-service": "irure",
+                "enabled": true
+              }
+            ],
+            "description": "minim et",
+            "display-name": "laborum in",
+            "id": "dolor"
+          }
+        ]
+      ]
+    },
+    "ip-domain": {
+      "ip-domain": [
+        []
+      ]
+    },
+    "network": {
+      "network": [
+        []
+      ]
+    },
+    "site": {
+      "site": [
+        [
+          {
+            "description": "pariatur culpa",
+            "display-name": "occaecat nostrud",
+            "enterprise": "dolor",
+            "id": "inc",
+            "network": "irur"
+          }
+        ]
+      ]
+    },
+    "template": {
+      "template": [
+        [
+          {
+            "description": "enim ",
+            "display-name": "do labore laborum elit",
+            "downlink": 24669539,
+            "id": "magn",
+            "sd": 10886763,
+            "sst": 158,
+            "traffic-class": "consectetur in cillum",
+            "uplink": 23770218
+          },
+          {
+            "description": "aute dolore dolo",
+            "display-name": "quis pariatur dolore magna commodo",
+            "downlink": 2791589,
+            "id": "aliqua",
+            "sd": 16619900,
+            "sst": 157,
+            "traffic-class": "dolor in in et",
+            "uplink": 24721051
+          }
+        ]
+      ]
+    },
+    "traffic_class": {
+      "traffic_class": [
+        []
+      ]
+    },
+    "upf": {
+      "upf": [
+        []
+      ]
+    },
+    "vcs": {
+      "vcs": [
+        []
+      ]
+    }
+  }
+]
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-4.0.0-example-get.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-4.0.0-example-get.out
new file mode 100644
index 0000000..30bca26
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-4.0.0-example-get.out
@@ -0,0 +1,297 @@
+[
+  {
+    "application": {
+      "application": [
+        [
+          {
+            "address": "da.acme.com",
+            "description": "Data Acquisition",
+            "display_name": "DA",
+            "endpoint": [
+              {
+                "display_name": "data acquisition endpoint",
+                "endpoint_id": "da",
+                "mbr": {
+                  "downlink": 1000000,
+                  "uplink": 2000000
+                },
+                "port_end": 7588,
+                "port_start": 7585,
+                "protocol": "TCP",
+                "traffic_class": "class_2"
+              }
+            ],
+            "enterprise": "acme",
+            "id": "acme_dataacquisition"
+          }
+        ]
+      ]
+    },
+    "connectivity-service": {
+      "connectivity-service": [
+        [
+          {
+            "acc_prometheus_url": "./prometheus_acc",
+            "core_5g_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/5g",
+            "description": "5G Test",
+            "display_name": "ROC 5G Test Connectivity Service",
+            "id": "cs5gtest"
+          },
+          {
+            "description": "ROC 4G Test Connectivity Service",
+            "display_name": "4G Test",
+            "hss_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/imsis",
+            "id": "cs4gtest",
+            "pcrf_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/policies",
+            "spgwc_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config"
+          }
+        ]
+      ]
+    },
+    "device-group": {
+      "device-group": [
+        [
+          {
+            "display_name": "ACME Default",
+            "id": "acme_chicago_default",
+            "ip_domain": "acme_chicago",
+            "site": "acme_chicago"
+          },
+          {
+            "device": {
+              "mbr": {
+                "downlink": 1000000,
+                "uplink": 5000000
+              },
+              "traffic_class": "class_1"
+            },
+            "display_name": "ACME Robots",
+            "id": "acme_chicago_robots",
+            "imsis": [
+              {
+                "display_name": "production robots",
+                "imsi_id": "production",
+                "imsi_range_from": 0,
+                "imsi_range_to": 3
+              },
+              {
+                "display_name": "warehouse robots",
+                "imsi_id": "warehouse",
+                "imsi_range_from": 10,
+                "imsi_range_to": 12
+              }
+            ],
+            "ip_domain": "acme_chicago",
+            "site": "acme_chicago"
+          }
+        ]
+      ]
+    },
+    "enterprise": {
+      "enterprise": [
+        [
+          {
+            "connectivity_service": [
+              {
+                "connectivity_service": "cs5gtest",
+                "enabled": true
+              }
+            ],
+            "description": "ACME Corporation",
+            "display_name": "ACME Corp",
+            "id": "acme"
+          }
+        ]
+      ]
+    },
+    "ip-domain": {
+      "ip-domain": [
+        [
+          {
+            "admin_status": "DISABLE",
+            "description": "Chicago IP Domain",
+            "display_name": "Chicago",
+            "dns_primary": "8.8.8.4",
+            "dns_secondary": "8.8.8.4",
+            "enterprise": "acme",
+            "id": "acme_chicago",
+            "mtu": 12690,
+            "subnet": "163.25.44.0/31"
+          }
+        ]
+      ]
+    },
+    "site": {
+      "site": [
+        [
+          {
+            "description": "ACME HQ",
+            "display_name": "Chicago",
+            "enterprise": "acme",
+            "id": "acme_chicago",
+            "imsi_definition": {
+              "enterprise": 1,
+              "format": "CCCNNNEEESSSSSS",
+              "mcc": "123",
+              "mnc": "456"
+            },
+            "monitoring": {
+              "edge_cluster_prometheus_url": "prometheus_ace1",
+              "edge_device": [
+                {
+                  "description": "monitoring device placed near the sprocket manufacturing machine",
+                  "display_name": "sprocket monitoring pi",
+                  "edge_device_id": "acme_chicago_monitoring_pi_1"
+                },
+                {
+                  "description": "monitoring device placed near the widget refinisher",
+                  "display_name": "widget monitoring pi",
+                  "edge_device_id": "acme_chicago_monitoring_pi_2"
+                }
+              ],
+              "edge_monitoring_prometheus_url": "prometheus_amp"
+            },
+            "small_cell": [
+              {
+                "address": "ap2.chicago.acme.com",
+                "display_name": "cell number one",
+                "enable": true,
+                "small_cell_id": "cell1",
+                "tac": "8002"
+              }
+            ]
+          }
+        ]
+      ]
+    },
+    "template": {
+      "template": [
+        [
+          {
+            "default_behavior": "DENY_ALL",
+            "description": "VCS Template 1",
+            "display_name": "Template 1",
+            "id": "template_1",
+            "sd": 10886763,
+            "slice": {
+              "mbr": {
+                "downlink": 5000000,
+                "downlink_burst_size": 600000,
+                "uplink": 10000000,
+                "uplink_burst_size": 600000
+              }
+            },
+            "sst": 158
+          },
+          {
+            "default_behavior": "DENY_ALL",
+            "description": "VCS Template 2",
+            "display_name": "Template 2",
+            "id": "template_2",
+            "sd": 16619900,
+            "slice": {
+              "mbr": {
+                "downlink": 5000000,
+                "uplink": 10000000,
+                "uplink_burst_size": 500000
+              }
+            },
+            "sst": 157
+          }
+        ]
+      ]
+    },
+    "traffic-class": {
+      "traffic-class": [
+        [
+          {
+            "arp": 1,
+            "description": "High Priority TC",
+            "display_name": "Class 1",
+            "id": "class_1",
+            "pdb": 100,
+            "pelr": 10,
+            "qci": 10
+          },
+          {
+            "arp": 1,
+            "description": "Medium Priority TC",
+            "display_name": "Class 2",
+            "id": "class_2",
+            "pdb": 100,
+            "pelr": 10,
+            "qci": 20
+          },
+          {
+            "arp": 1,
+            "description": "Low Priority TC",
+            "display_name": "Class 3",
+            "id": "class_3",
+            "pdb": 100,
+            "pelr": 10,
+            "qci": 30
+          }
+        ]
+      ]
+    },
+    "upf": {
+      "upf": [
+        [
+          {
+            "address": "entry1.upfpool.chicago.acme.com",
+            "description": "Chicago UPF Pool _ Entry 1",
+            "display_name": "Chicago Pool 1",
+            "enterprise": "acme",
+            "id": "acme_chicago_pool_entry1",
+            "port": 6161,
+            "site": "acme_chicago"
+          },
+          {
+            "address": "entry2.upfpool.chicago.acme.com",
+            "description": "Chicago UPF Pool _ Entry 2",
+            "display_name": "Chicago Pool 2",
+            "enterprise": "acme",
+            "id": "acme_chicago_pool_entry2",
+            "port": 6161,
+            "site": "acme_chicago"
+          }
+        ]
+      ]
+    },
+    "vcs": {
+      "vcs": [
+        [
+          {
+            "default_behavior": "DENY_ALL",
+            "description": "Chicago Robots",
+            "device_group": [
+              {
+                "device_group": "acme_chicago_robots",
+                "enable": true
+              }
+            ],
+            "display_name": "Chicago Robots VCS",
+            "enterprise": "acme",
+            "filter": [
+              {
+                "allow": false,
+                "application": "acme_dataacquisition"
+              }
+            ],
+            "id": "acme_chicago_robots",
+            "sd": 2973238,
+            "site": "acme_chicago",
+            "slice": {
+              "mbr": {
+                "downlink": 5000000,
+                "downlink_burst_size": 600000
+              }
+            },
+            "sst": 79,
+            "upf": "acme_chicago_pool_entry1"
+          }
+        ]
+      ]
+    }
+  }
+]