@Test
public void testParseNodeShouldReturnWithACompositeConditionWhenConditionNodeArgumentHasChildWithConditionSetInvokerTagName() {

    //GIVEN
    given(configurationAccess.getProperties()).willReturn(properties);
    given(properties.getMaxDepthOfTree()).willReturn(10);
    given(node.getChildNodes()).willReturn(nodeList);
    given(nodeList.getLength()).willReturn(1);
    given(nodeList.item(0)).willReturn(paramElement);
    given(paramElement.getNodeType()).willReturn(Node.ELEMENT_NODE);
    given(paramElement.getTagName()).willReturn(TAGNAME_COND_SET_INVOKER);
    given(paramElement.getAttribute("name")).willReturn("CONDITION_SET_NAME");
    given(xPathEvaluator.getElementByXPath(Mockito.anyString(), (Document) Mockito.any())).willReturn(conditionSetElement);
    given(conditionSetElement.getNodeType()).willReturn(Node.ELEMENT_NODE);
    given(conditionSetElement.getTagName()).willReturn(TAGNAME_CONDITION_SET);
    List<Node> conditionList = new ArrayList<Node>();
    conditionList.add(paramElement2);
    given(conditionSetElement.getChildNodes()).willReturn(new MyNodeList(conditionList));
    given(paramElement2.getNodeType()).willReturn(Node.ELEMENT_NODE);
    given(paramElement2.getTagName()).willReturn(TAGNAME_CONDITION);
    given(paramElement2.getAttribute(CLASS_ATTRIBUTE)).willReturn(CLASS_NAME);
    given(conditionCheckerInitializer.getExternalClassObject(CLASS_NAME)).willReturn(conditionChecker);
    List<Node> paramList = new ArrayList<Node>();
    given(paramElement2.getElementsByTagName(PARAM_ATTRIBUTE)).willReturn(new MyNodeList(paramList));
    //WHEN
    ConditionDescriptor actual = underTest.parseNode(node, document);
    //THEN
    SimpleCondition actCondition = (SimpleCondition) actual.getCondition();
    assertEquals(actCondition.getConditionChecker(), conditionChecker);
}