package ch.elexis.data;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import ch.elexis.core.constants.Preferences;
import ch.elexis.core.data.activator.CoreHub;
import ch.elexis.core.data.events.ElexisEvent;
import ch.elexis.core.data.events.ElexisEventDispatcher;
import ch.rgw.tools.JdbcLink;
public class Test_Konsultation extends AbstractPersistentObjectTest {
public Test_Konsultation(JdbcLink link){
super(link);
}
private static Patient pat;
private static Fall fall;
private static Konsultation kons;
@Before
public void before(){
User user = User.load(testUserName);
// set user and Mandant in system
ElexisEventDispatcher.getInstance()
.fire(new ElexisEvent(user, User.class, ElexisEvent.EVENT_SELECTED));
Mandant m = new Mandant("Mandant", "Erwin", "26.07.1979", "m");
CoreHub.setMandant(m);
pat = new Patient("Name", "Vorname", "26.8.2011", "m");
fall = new Fall(pat.getId(), "Bezeichnung", "Grund", "KVG");
kons = new Konsultation(fall);
FreeTextDiagnose.checkInitTable();
}
@After
public void after(){
kons.delete();
fall.delete();
pat.delete();
}
@Test
public void testConsultationCreation(){
// #5612 test default diagnosis
FreeTextDiagnose ftd = new FreeTextDiagnose("TextDefault", true);
CoreHub.userCfg.set(Preferences.USR_DEFDIAGNOSE, ftd.storeToString());
Konsultation kons = new Konsultation(fall);
assertEquals(1, kons.getDiagnosen().size());
assertEquals(ftd.getId(), kons.getDiagnosen().get(0).getId());
CoreHub.userCfg.set(Preferences.USR_DEFDIAGNOSE, "");
}
@Test
public void testDiagnosisCreation(){
long currentTimeMillis = System.currentTimeMillis();
FreeTextDiagnose ftd = new FreeTextDiagnose("Text", true);
kons.addDiagnose(ftd);
kons.addDiagnose(ftd);
assertEquals(1, kons.getDiagnosen().size());
String count = ftd.getDBConnection()
.queryString("SELECT COUNT(*) FROM DIAGNOSEN WHERE KLASSE="
+ JdbcLink.wrap(ftd.getClass().getName()) + " AND DG_CODE="
+ JdbcLink.wrap(ftd.getCode()));
assertEquals(Integer.toString(1), count);
String lastUpdateSet = ftd.getDBConnection()
.queryString("SELECT LASTUPDATE FROM DIAGNOSEN WHERE KLASSE="
+ JdbcLink.wrap(ftd.getClass().getName()) + " AND DG_CODE="
+ JdbcLink.wrap(ftd.getCode()));
assertTrue(currentTimeMillis < Long.valueOf(lastUpdateSet));
kons.removeDiagnose(ftd);
assertEquals(0, kons.getDiagnosen().size());
}
}