EMR-API BUILD test failure

Error while running a test unit
java.lang.AssertionError: expected:<2> but was:<0> at org.junit.Assert.fail(Assert.java:88) at org.junit.Assert.failNotEquals(Assert.java:834) at org.junit.Assert.assertEquals(Assert.java:645) at org.junit.Assert.assertEquals(Assert.java:631) at org.openmrs.util.MigrateDiagnosisTest.migrateShouldVoidEmrapiDiagnosisAndCreateAnewCoreDiagnosis(MigrateDiagnosisTest.java:84) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:73) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:73) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:217) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

@dkayiwa @wyclif

1 Like

@mozzy did you create this test class: MigrateDiagnosisTest? And if so, where can we see it?

@mksd

package org.openmrs.util;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;

import java.util.List;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openmrs.Obs;
import org.openmrs.Patient;
import org.openmrs.api.ConceptService;
import org.openmrs.api.EncounterService;
import org.openmrs.api.PatientService;
import org.openmrs.module.emrapi.EmrApiProperties;
import org.openmrs.module.emrapi.diagnosis.Diagnosis;
import org.openmrs.module.emrapi.diagnosis.DiagnosisMetadata;
import org.openmrs.module.emrapi.diagnosis.DiagnosisService;
import org.openmrs.module.emrapi.test.ContextSensitiveMetadataTestUtils;
import org.openmrs.module.emrapi.visit.EmrVisitService;
import org.openmrs.test.BaseModuleContextSensitiveTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;


@RunWith(SpringJUnit4ClassRunner.class)
public class MigrateDiagnosisTest extends BaseModuleContextSensitiveTest {

	private static  final String DIAGNOSIS_DATASET = "DiagnosisDataset.xml";

	@Autowired
	ConceptService conceptService;

	@Autowired
	EncounterService encounterService;

	@Autowired
	EmrVisitService emrVisitService;

	@Autowired
	DiagnosisService emrapiDiagnosisService;

	@Autowired
	org.openmrs.api.DiagnosisService diagnosisService;

	@Autowired
	PatientService patientService;

	@Autowired
	EmrApiProperties emrApiProperties;

	private DiagnosisMetadata diagnosisMetadata;

	@Before
	public void setUp() throws Exception {
		executeDataSet(DIAGNOSIS_DATASET);
		diagnosisMetadata = ContextSensitiveMetadataTestUtils.setupDiagnosisMetadata(conceptService, emrApiProperties);
	}

	@Test
	public void getAllPatientsWithDiagnosisShouldReturnListOfPatientIdsWithADiagnosis() {
		diagnosisMetadata.setDiagnosisSetConcept(conceptService.getConcept(19));
		List<Integer> patientIds = emrVisitService.getAllPatientsWithDiagnosis(diagnosisMetadata);
		Patient patient1 = patientService.getPatient(patientIds.get(0));
		assertEquals(patient1.getId(), new Integer(7));
		assertEquals(patient1.getVoided(), false);
	}

	@Test
	public void migrateShouldVoidEmrapiDiagnosisAndCreateAnewCoreDiagnosis() {

		Patient patient = patientService.getPatient(7);

		OldDiagnosisBuilder oldDiagnosisBuilder = new OldDiagnosisBuilder(diagnosisMetadata);

		Obs obs = oldDiagnosisBuilder.buildDiagnosis(patient, "2013-09-10", Diagnosis.Order.SECONDARY, Diagnosis.Certainty.CONFIRMED, "non-coded pain", encounterService.getEncounter(1)).save().get();
		oldDiagnosisBuilder.buildDiagnosis(patient, "2013-08-10", Diagnosis.Order.PRIMARY, Diagnosis.Certainty.PRESUMED, "non-coded disease", encounterService.getEncounter(1)).save().get();

		assertFalse(obs.getVoided());

		List<Diagnosis> emrapiDiagnoses = emrapiDiagnosisService.getDiagnoses(patient, null);
		assertEquals(2, emrapiDiagnoses.size());

		MigrateDiagnosis migrateDiagnosis = new MigrateDiagnosis();

		migrateDiagnosis.migrate(diagnosisMetadata);

		assertTrue(obs.getVoided());

		List<org.openmrs.Diagnosis> coreDiagnoses = diagnosisService.getDiagnoses(patient, null);

		assertEquals(2, coreDiagnoses.size());
	}
}

So this is a test that you have created yourself? Would you mind debugging it a little?

It looks like coreDiagnoses is of size 0, did you investigate why that might be?

1 Like

well even wen i replace 0 like, assertEquals(0, emrapiDiagnoses.size());

java.lang.AssertionError
	at org.junit.Assert.fail(Assert.java:86)
	at org.junit.Assert.assertTrue(Assert.java:41)
	at org.junit.Assert.assertTrue(Assert.java:52)
	at org.openmrs.util.MigrateDiagnosisTest.migrateShouldVoidEmrapiDiagnosisAndCreateAnewCoreDiagnosis(MigrateDiagnosisTest.java:90)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:73)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)
	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:73)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:217)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Please debug, line by line, until you find out the assertion that fails (should be on line 90).

these are the assertions that fail

Ok so the first one might be the problem, emrapiDiagnoses is of size 0. Did you investigate that?

here is the Data-Set am using

<?xml version='1.0' encoding='UTF-8'?>
<dataset>
	<patient patient_id="7" creator="1" date_created="2015-01-01 00:00:00"  voided="false"/>
	<patient patient_id="8" creator="1" date_created="2015-01-01 00:00:00"  voided="false"/>

	<concept concept_id="159965" retired="false" datatype_id="4" class_id="10" is_set="true" creator="1" date_created="2010-12-14 02:44:15.0" version="" changed_by="1" date_changed="2016-07-10 02:52:39.0" uuid="159947AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"/>
	<concept concept_id="159946" retired="false" datatype_id="2" class_id="5" is_set="false" creator="1" date_created="2010-12-04 22:02:33.0" version="" changed_by="1" date_changed="2015-12-13 15:09:46.0" uuid="159946AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"/>
	<concept concept_id="159394" retired="false" datatype_id="2" class_id="5" is_set="false" creator="1" date_created="2010-08-24 18:54:05.0" version="" changed_by="1" date_changed="2015-11-04 04:45:03.0" uuid="159394AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"/>
	<concept concept_id="1284" retired="false" datatype_id="2" class_id="5" is_set="false" creator="1" date_created="2005-02-24 12:33:10.0" version="" changed_by="1" date_changed="2016-07-10 02:53:00.0" uuid="1284AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"/>
	<concept concept_id="159943" retired="false" datatype_id="4" class_id="11" is_set="false" creator="1" date_created="2010-12-04 21:52:08.0" version="" changed_by="1" date_changed="2015-11-04 04:43:31.0" uuid="159943AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"/>
	<concept concept_id="159393" retired="false" datatype_id="4" class_id="11" is_set="false" creator="1" date_created="2010-08-24 18:49:47.0" version="" changed_by="1" date_changed="2015-11-03 02:37:41.0" uuid="159393AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"/>
	<concept concept_id="116128" retired="false" datatype_id="4" class_id="4" is_set="false" creator="1" date_created="2007-11-03 00:00:00.0" version="" changed_by="1" date_changed="2015-11-03 02:51:24.0" uuid="116128AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"/>

	<concept_set concept_set_id="38" concept_id="159965" concept_set="1284" sort_weight="1.0" creator="1" date_created="2011-06-09 00:39:52.0" uuid="38AEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"/>

	<concept_name concept_name_id="16603" concept_id="116128" name="MALARIA" locale="en" locale_preferred="true" creator="1" date_created="2007-11-02 19:28:08.0" concept_name_type="FULLY_SPECIFIED" voided="false" voided_by="1" uuid="16603BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"/>


	<location location_id="1901" name="Location tagged to visit" creator="1" date_created="2005-01-01 00:00:00.0" retired="false" uuid="f1771d8e-bf1f-4dc5-957f-9d40a5eebf08"/>
	<visit visit_id="1010" patient_id="7" visit_type_id="1" date_started="2013-04-04 00:00:00.0"  location_id="1901" creator="1" date_created="2005-01-01 00:00:00.0" voided="0" uuid="1esd5218-6b78-11e0-93c3-18a905e044dc" />
	<encounter encounter_id="1" encounter_type="2" patient_id="7" location_id="1901" form_id="1" encounter_datetime="2008-08-01 00:00:00.0" creator="1" date_created="2008-08-18 14:09:05.0" voided="false" uuid="7779d653-393b-4118-9c83-a3715b82d4ac" visit_id="1010"/>

	<obs obs_id="1" person_id="7" concept_id="159965" encounter_id="1" obs_datetime="2018-05-03 17:47:04.0" location_id="3" creator="1" date_created="2018-05-03 17:47:04.0" voided="false" uuid="fe6b0ab0-0764-439f-977c-e61451fbf9fa" status="FINAL"/>
	<obs obs_id="2" person_id="7" concept_id="159946" encounter_id="1" obs_datetime="2018-05-03 17:47:04.0" location_id="3" obs_group_id="1" value_coded="159943" creator="1" date_created="2018-05-03 17:47:04.0" voided="false" uuid="19198a86-1b06-43ed-899d-ada1817b28e2" status="FINAL"/>
	<obs obs_id="3" person_id="7" concept_id="159394" encounter_id="1" obs_datetime="2018-05-03 17:47:04.0" location_id="3" obs_group_id="1" value_coded="159393" creator="1" date_created="2018-05-03 17:47:04.0" voided="false" uuid="df4358f3-3070-47b9-bb5c-ff36ed112d51" status="FINAL"/>
	<obs obs_id="4" person_id="7" concept_id="1284" encounter_id="1" obs_datetime="2018-05-03 17:47:04.0" location_id="3" obs_group_id="1" value_coded="116128" value_coded_name_id="16603" creator="1" date_created="2018-05-03 17:47:04.0" voided="false" uuid="89f02814-2c50-48ae-bca4-4b4709d42486" status="FINAL"/>

</dataset>

You haven’t given any context about what you are doing (ticket number, … etc) so I’m just guessing.

But if you need encounter diagnoses as part of your test data set, why don’t you use this one: DiagnosisServiceImplTest-SetupDiagnosis.xml?

@darius pointed out something that is important when asking questions, @mozzy when seeking help please can you try to give more context and explain what you are trying to do. What you posted is a printed result of a failed test and doesn’t make any sense to your audience. I still don’t know to help you just from what you posted.

1 Like

thanks @wyclif. that was the error i was getting wen trying to run a test unit

And we’re saying posting an error like that is not useful, you need to give more context, otherwise my response would be, “the message means the unit test is failing, so fix it”