@Override
	public List<String> doTest() {
		List<String> result = new ArrayList<String>();
		
		EARMARKDocument doc = getDocument();
		
		result.add("\n[i] Check number of nodes");
		Set<EARMARKChildNode> nodes = doc.getAllEARMARKNode();
		String msg1 = "Number of node in the document, test";
		if (nodes.size() == nodeNumber) {
			result.add(passed(msg1));
		} else {
			result.add(failed(msg1, "there are " + nodes.size() + " instead of " + nodeNumber));
		}
		
		result.add("\n[i] Check document text");
		result.add("Current node: " + doc.toString());
		String totalText = text1 + text2 + text4 + text3;
		String currentText = doc.getTextContent();
		String msg3 = "Number of node in the document, test";
		if (totalText.equals(currentText)) {
			result.add(passed(msg3));
		} else {
			result.add(failed(msg3, "textual content differ\n\tcurrent -> " + 
					currentText + "\n\tactual -> " + totalText));
		}
		
		result.add("\n[i] Check if each node returns the text it contains");
		String msg2 = "Text comparison (CONTAINS for ranges, EQ for others) test";
		for (EARMARKChildNode node : nodes) {
			result.add("Current node: " + node.toString());
			
			String comp = text1 + text2 + text4 + text3;
			if (
					node.getNodeType() == EARMARKNode.Type.Element && 
					((Element)node).hasGeneralIdentifier().equals("q")) {
				comp = text2 + text4;
			}
			
			String content = node.getTextContent();
			
			if (
					content.equals(comp) || 
					(
							node.getNodeType() == EARMARKNode.Type.PointerRange && 
							comp.contains(content))) {
				result.add(passed(msg2));
			} else {
				result.add(failed(msg2, "textual content differ\n\tcurrent -> " + 
						content + "\n\tactual -> " + comp));
			}
			result.add("\n");
		}
		
		return result;
	}