@Test
public void testAssertAndExecuteClinicalFacts() throws JAXBException {

	// Arrange
	StatefulKnowledgeSession sessionMock = mock(StatefulKnowledgeSession.class);
	doReturn(sessionMock).when(sut).createStatefulKnowledgeSession();
	String factModelStringMock = "factModelStringMock";
	FactModel factModelMock = mock(FactModel.class);
	when(
			marshallerMock.unmarshalFromXml(FactModel.class,
					factModelStringMock)).thenReturn(factModelMock);
	XacmlResult xacmlResultMock = mock(XacmlResult.class);
	when(factModelMock.getXacmlResult()).thenReturn(xacmlResultMock);
	LinkedList<ClinicalFact> clinicalFactListMock = new LinkedList<ClinicalFact>();
	ClinicalFact clinicalFactMock1 = mock(ClinicalFact.class);
	ClinicalFact clinicalFactMock2 = mock(ClinicalFact.class);
	clinicalFactListMock.add(clinicalFactMock1);
	clinicalFactListMock.add(clinicalFactMock2);
	when(factModelMock.getClinicalFactList()).thenReturn(
			clinicalFactListMock).thenReturn(clinicalFactListMock);
	when(sessionMock.insert(clinicalFactMock1)).thenReturn(null);
	when(sessionMock.insert(clinicalFactMock2)).thenReturn(null);
	doNothing().when(sessionMock).addEventListener(
			isA(DefaultAgendaEventListener.class));
	when(sessionMock.fireAllRules()).thenReturn(0);
	RuleExecutionContainer ruleExecutionContainerMock = mock(RuleExecutionContainer.class);
	when(sessionMock.getGlobal("ruleExecutionContainer")).thenReturn(
			ruleExecutionContainerMock);
	String executionResponseContainerXMLStringMock = "executionResponseContainerXMLStringMock";
	when(marshallerMock.marshal(ruleExecutionContainerMock)).thenReturn(
			executionResponseContainerXMLStringMock);
	// Act
	AssertAndExecuteClinicalFactsResponse response = sut
			.assertAndExecuteClinicalFacts(factModelStringMock);
	// Assert
	assertNotNull(response);
	assertEquals(executionResponseContainerXMLStringMock,
			response.getRuleExecutionResponseContainer());
}