+ @Test
+ public void testHtmlProcessorRuleNullEmptyList() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ RuleType mockRuleType = Mockito.mock(RuleType.class);
+ TargetType mockTargetType = Mockito.mock(TargetType.class);
+ EffectType effectTypePermit = EffectType.PERMIT;
+ AdviceExpressionsType mockAdviceExsType = Mockito.mock(AdviceExpressionsType.class);
+ AdviceExpressionType mockAdviceEx = Mockito.mock(AdviceExpressionType.class);
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ List<AnyOfType> anyOfList = new ArrayList<AnyOfType>();
+ List<AdviceExpressionType> adviceExList = new ArrayList<AdviceExpressionType>();
+ adviceExList.add(mockAdviceEx);
+
+ when(mockRuleType.getEffect()).thenReturn(effectTypePermit);
+ when(mockRuleType.getRuleId()).thenReturn(null);
+ when(mockRuleType.getTarget()).thenReturn(mockTargetType);
+ when(mockRuleType.getObligationExpressions()).thenReturn(null);
+ when(mockRuleType.getAdviceExpressions()).thenReturn(mockAdviceExsType);
+ when(mockTargetType.getAnyOf()).thenReturn(null);
+ when(mockAdviceExsType.getAdviceExpression()).thenReturn(adviceExList);
+ when(mockAdviceEx.getAttributeAssignmentExpression()).thenReturn(null);
+ when(mockAdviceEx.getAppliesTo()).thenReturn(effectTypePermit);
+
+ processor.rule(mockRuleType);
+
+ verify(mockRuleType, atLeast(1)).getEffect();
+ verify(mockRuleType, atLeast(1)).getRuleId();
+ verify(mockRuleType, atLeast(1)).getTarget();
+ verify(mockRuleType, atLeast(1)).getCondition();
+ verify(mockRuleType, atLeast(1)).getObligationExpressions();
+ verify(mockRuleType, atLeast(1)).getAdviceExpressions();
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+ verify(mockAdviceExsType, atLeast(1)).getAdviceExpression();
+ verify(mockAdviceEx, atLeast(1)).getAttributeAssignmentExpression();
+ verify(mockAdviceEx, atLeast(1)).getAppliesTo();
+
+ when(mockTargetType.getAnyOf()).thenReturn(anyOfList);
+ processor.rule(mockRuleType);
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+ }
+
+ @Test
+ public void testHtmlProcessorRuleNonNullObjects() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ RuleType mockRuleType = Mockito.mock(RuleType.class);
+ TargetType mockTargetType = Mockito.mock(TargetType.class);
+ AdviceExpressionsType mockAdvice = Mockito.mock(AdviceExpressionsType.class);
+ ObligationExpressionsType mockObEx = Mockito.mock(ObligationExpressionsType.class);
+ AdviceExpressionType adviceExpTypeMock = Mockito.mock(AdviceExpressionType.class);
+ ObligationExpressionType mockObExType = Mockito.mock(ObligationExpressionType.class);
+ EffectType effectTypePermit = EffectType.PERMIT;
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ List<AnyOfType> anyOfList = new ArrayList<AnyOfType>();
+ anyOfList.add(new AnyOfType());
+
+ List<AdviceExpressionType> adviceList = new ArrayList<AdviceExpressionType>();
+ adviceList.add(adviceExpTypeMock);
+
+ List<AttributeAssignmentExpressionType> attrList = new ArrayList<AttributeAssignmentExpressionType>();
+
+ List<ObligationExpressionType> obExList = new ArrayList<ObligationExpressionType>();
+ obExList.add(mockObExType);
+
+ List<Object> contentList = new ArrayList<>();
+ contentList.add(new Object());
+
+ when(mockRuleType.getRuleId()).thenReturn("");
+ when(mockRuleType.getTarget()).thenReturn(mockTargetType);
+ when(mockRuleType.getEffect()).thenReturn(effectTypePermit);
+ when(mockTargetType.getAnyOf()).thenReturn(anyOfList);
+ when(mockRuleType.getAdviceExpressions()).thenReturn(mockAdvice);
+ when(mockAdvice.getAdviceExpression()).thenReturn(adviceList);
+ when(mockRuleType.getObligationExpressions()).thenReturn(mockObEx);
+ when(mockObEx.getObligationExpression()).thenReturn(obExList);
+ when(mockObExType.getAttributeAssignmentExpression()).thenReturn(null);
+ when(mockObExType.getFulfillOn()).thenReturn(effectTypePermit);
+ when(adviceExpTypeMock.getAdviceId()).thenReturn("");
+ when(adviceExpTypeMock.getAppliesTo()).thenReturn(effectTypePermit);
+ when(adviceExpTypeMock.getAttributeAssignmentExpression()).thenReturn(attrList);
+
+ processor.rule(mockRuleType);
+
+ verify(mockRuleType, atLeast(1)).getRuleId();
+ verify(mockRuleType, atLeast(1)).getTarget();
+ verify(mockRuleType, atLeast(1)).getEffect();
+ verify(mockRuleType, atLeast(1)).getAdviceExpressions();
+ verify(mockRuleType, atLeast(1)).getObligationExpressions();
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+ verify(mockObEx, atLeast(1)).getObligationExpression();
+ verify(mockObExType, atLeast(1)).getAttributeAssignmentExpression();
+ verify(mockObExType, atLeast(1)).getFulfillOn();
+ verify(mockAdvice, atLeast(1)).getAdviceExpression();
+ verify(adviceExpTypeMock, atLeast(1)).getAdviceId();
+ verify(adviceExpTypeMock, atLeast(1)).getAppliesTo();
+ verify(adviceExpTypeMock, atLeast(1)).getAttributeAssignmentExpression();
+ }
+
+ @Test
+ public void testHtmlProcessorOnPreVisitRule() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicyType mockPolicyType = null;
+ RuleType mockRuleType = Mockito.mock(RuleType.class);
+ EffectType effectTypePermit = EffectType.PERMIT;
+ TargetType mockTargetType = Mockito.mock(TargetType.class);
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+
+ List<AnyOfType> anyOfList = new ArrayList<AnyOfType>();
+ anyOfList.add(new AnyOfType());
+
+ when(mockRuleType.getCondition()).thenReturn(null);
+ when(mockRuleType.getDescription()).thenReturn(null);
+ when(mockRuleType.getEffect()).thenReturn(effectTypePermit);
+ when(mockRuleType.getTarget()).thenReturn(mockTargetType);
+ when(mockTargetType.getAnyOf()).thenReturn(anyOfList);
+
+ CallbackResult callbackResult = processor.onPreVisitRule(mockPolicyType, mockRuleType);
+ assertNotNull(callbackResult);
+
+ verify(mockRuleType, atLeast(1)).getCondition();
+ verify(mockRuleType, atLeast(1)).getDescription();
+ verify(mockRuleType, atLeast(1)).getEffect();
+ verify(mockRuleType, atLeast(1)).getTarget();
+ verify(mockRuleType, atLeast(1)).getAdviceExpressions();
+ verify(mockTargetType, atLeast(1)).getAnyOf();
+
+ mockPolicyType = Mockito.mock(PolicyType.class);
+ when(mockRuleType.getDescription()).thenReturn("");
+
+ callbackResult = processor.onPreVisitRule(mockPolicyType, mockRuleType);
+ assertNotNull(callbackResult);
+ }
+
+ @Test
+ public void testHtmlProcessorOnPostVisitRule() {
+ PolicySetType mockPolicySetType = Mockito.mock(PolicySetType.class);
+ PolicyType mockPolicyType = null;
+ RuleType mockRuleType = Mockito.mock(RuleType.class);
+
+ processor = new HtmlProcessor(temp, mockPolicySetType);
+ CallbackResult callbackResult = processor.onPostVisitRule(mockPolicyType, mockRuleType);
+ assertNotNull(callbackResult);
+
+ mockPolicyType = Mockito.mock(PolicyType.class);
+ callbackResult = processor.onPostVisitRule(mockPolicyType, mockRuleType);
+ assertNotNull(callbackResult);
+ }