- try (InputStream is = new FileInputStream("src/test/resources/guard.policy-minmax-missing-fields1.yaml")) {
- //
- // Have yaml parse it
- //
- Yaml yaml = new Yaml();
- Map<String, Object> toscaObject = yaml.load(is);
- //
- // Load the policies
- //
- service.loadPolicies(toscaObject);
- //
- // We can create a DecisionRequest on the fly - no need
- // to have it in the .json files
- //
- DecisionRequest request = new DecisionRequest();
- request.setOnapName("JUnit");
- request.setOnapComponent("test5MissingFields");
- request.setRequestId(UUID.randomUUID().toString());
- request.setAction("guard");
- Map<String, Object> guard = new HashMap<>();
- guard.put("actor", "FOO");
- guard.put("recipe", "bar");
- guard.put("vfCount", "4");
- Map<String, Object> resource = new HashMap<>();
- resource.put("guard", guard);
- request.setResource(resource);
- //
- // Ask for a decision - should get permit
- //
- DecisionResponse response = service.makeDecision(request);
- LOGGER.info("Looking for Permit Decision {}", response);
- assertThat(response).isNotNull();
- assertThat(response.getStatus()).isNotNull();
- assertThat(response.getStatus()).isEqualTo("Permit");
- //
- // Try a deny
- //
- guard.put("vfCount", "10");
- resource.put("guard", guard);
- request.setResource(resource);
- response = service.makeDecision(request);
- LOGGER.info("Looking for Deny Decision {}", response);
- assertThat(response).isNotNull();
- assertThat(response.getStatus()).isNotNull();
- assertThat(response.getStatus()).isEqualTo("Deny");
- }
+ TestUtils.loadPolicies("src/test/resources/guard.policy-minmax-missing-fields1.yaml", service);
+ //
+ // We can create a DecisionRequest on the fly - no need
+ // to have it in the .json files
+ //
+ DecisionRequest request = new DecisionRequest();
+ request.setOnapName("JUnit");
+ request.setOnapComponent("test5MissingFields");
+ request.setRequestId(UUID.randomUUID().toString());
+ request.setAction("guard");
+ Map<String, Object> guard = new HashMap<>();
+ guard.put("actor", "FOO");
+ guard.put("recipe", "bar");
+ guard.put("vfCount", "4");
+ Map<String, Object> resource = new HashMap<>();
+ resource.put("guard", guard);
+ request.setResource(resource);
+ //
+ // Ask for a decision - should get permit
+ //
+ Pair<DecisionResponse, Response> decision = service.makeDecision(request);
+ LOGGER.info("Looking for Permit Decision {}", decision.getKey());
+ assertThat(decision.getKey()).isNotNull();
+ assertThat(decision.getKey().getStatus()).isNotNull();
+ assertThat(decision.getKey().getStatus()).isEqualTo("Permit");
+ //
+ // Try a deny
+ //
+ guard.put("vfCount", "10");
+ resource.put("guard", guard);
+ request.setResource(resource);
+ decision = service.makeDecision(request);
+ LOGGER.info("Looking for Deny Decision {}", decision.getKey());
+ assertThat(decision.getKey()).isNotNull();
+ assertThat(decision.getKey().getStatus()).isNotNull();
+ assertThat(decision.getKey().getStatus()).isEqualTo("Deny");
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void test6Blacklist() throws CoderException, XacmlApplicationException {
+ LOGGER.info("**************** Running test4 ****************");
+ //
+ // Setup requestVfCount1 to point to another target for this test
+ //
+ ((Map<String, Object>)requestVfCount3.getResource().get("guard")).put("targets", "vLoadBalancer-01");
+ //
+ // vfcount=1 above min of 2: should get a permit
+ //
+ requestAndCheckDecision(requestVfCount3, PERMIT);
+ //
+ // Now load the vDNS blacklist policy
+ //
+ TestUtils.loadPolicies("src/test/resources/vDNS.policy.guard.blacklist.output.tosca.yaml", service);
+ //
+ // vfcount=1 above min of 2: should get a permit
+ //
+ requestAndCheckDecision(requestVfCount3, DENY);