@Test
public void testExecute() throws IOException, XPathExpressionException, SimpleMarshallerException {

	// Arrange
	String c32FileName = "MIE_SampleC32.xml";
	String factmodelXml = fileReader.readFile(TEST_PATH + FACTMODEL_PATH + c32FileName);
	String c32 = embeddedClinicalDocumentExtractor.extractClinicalDocumentFromFactModel(factmodelXml);
	String ruleExecutionContainerXml = fileReader.readFile(TEST_PATH + RULEEXECUTIONCONTAINER_PATH + c32FileName);
	RuleExecutionContainer ruleExecutionContainer = marshaller.unmarshalFromXml(RuleExecutionContainer.class, ruleExecutionContainerXml);
	Document c32Document = documentXmlConverter.loadDocument(c32);
	Document factModelDocument = documentXmlConverter.loadDocument(factmodelXml);
	FactModel factModel = marshaller.unmarshalFromXml(FactModel.class, factmodelXml);
	List<Node> listOfNodes = new LinkedList<Node>();
	Set<String> redactSectionCodesAndGeneratedEntryIds = new HashSet<String>();
	Set<String> redactSensitiveCategoryCodes = new HashSet<String>();
	ClinicalFact fact = factModel.getClinicalFactList().get(8);
	Set<String> valueSetCategories = new HashSet<String>();
	valueSetCategories.add("HIV");
	valueSetCategories.add("ETH");
	fact.setValueSetCategories(valueSetCategories);
	// Act
	sut.execute(c32Document, factModel.getXacmlResult(), factModel,
			factModelDocument, fact, ruleExecutionContainer, listOfNodes,
			redactSectionCodesAndGeneratedEntryIds,
			redactSensitiveCategoryCodes);
	
	// Assert
	assertEquals(1, listOfNodes.size());
	assertEquals(1, redactSectionCodesAndGeneratedEntryIds.size());
	assertEquals(1, redactSensitiveCategoryCodes.size());
	assertEquals("entry", listOfNodes.get(0).getNodeName());
	assertEquals("d1e282", redactSectionCodesAndGeneratedEntryIds.toArray()[0]);
	assertEquals("HIV", redactSensitiveCategoryCodes.toArray()[0]);
}