package ch.elexis.connect.reflotron.v2test;
import static org.junit.Assert.assertEquals;
import org.junit.BeforeClass;
import org.junit.Test;
import ch.elexis.connect.reflotron.packages.PackageException;
import ch.elexis.connect.reflotron.packages.Probe;
public class ReflotronProbeTest {
public static String p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11;
private static String SEPARATOR = ";";
private static int NAME = 0;
private static int SHORT = 1;
private static int VALUE = 2;
private static int UNIT = 3;
@BeforeClass
public static void setUpBeforeClass() throws Exception{
p1 = "GGT < 2.80 U/l 25°C";
p2 = "CHOL >600 mg/dl";
p3 = "CHOL 240 mg/dl";
p4 = "K 105.00 mmol/l";
p5 = "GGT <5.00 U/l 37øC ";
p6 = "CHOL<15.26mmol/l 20°C";
p7 = "I'll fail";
p8 = "CREA 88.3 umol/l";
p9 = "GOT 25.3 U/l 37øC ";
p10 = "GPT 17.9 U/l 37øC ";
p11 = "GLU 9.28 mmol/l ";
}
@Test
public void testWrite() throws PackageException{
// Patient pat = new Patient("reflotest", "reflotest", "", "");
String[] dummyArray =
{
"", "15.12.14 C1 08:57:57", "0,m", "GGT <5.00 U/l 37øC",
"ElexisReflotronUnitTestRunning"
};
Probe probe = new Probe(dummyArray);
probe.setResult(p1);
String[] fields = probe.write(null).split(SEPARATOR);
assertEquals("GGT", fields[NAME]);
assertEquals("GGT", fields[SHORT]);
assertEquals("<2.80", fields[VALUE]);
assertEquals("U/l", fields[UNIT]);
probe.setResult(p2);
fields = probe.write(null).split(SEPARATOR);
assertEquals("Cholesterol", fields[NAME]);
assertEquals("CHOL", fields[SHORT]);
assertEquals(">600", fields[VALUE]);
assertEquals("mg/dl", fields[UNIT]);
probe.setResult(p3);
fields = probe.write(null).split(SEPARATOR);
assertEquals("Cholesterol", fields[NAME]);
assertEquals("CHOL", fields[SHORT]);
assertEquals("240", fields[VALUE]);
assertEquals("mg/dl", fields[UNIT]);
probe.setResult(p4);
fields = probe.write(null).split(SEPARATOR);
assertEquals("Kalium", fields[NAME]);
assertEquals("K", fields[SHORT]);
assertEquals("105.00", fields[VALUE]);
assertEquals("mmol/l", fields[UNIT]);
probe.setResult(p5);
fields = probe.write(null).split(SEPARATOR);
assertEquals("GGT", fields[NAME]);
assertEquals("GGT", fields[SHORT]);
assertEquals("<5.00", fields[VALUE]);
assertEquals("U/l", fields[UNIT]);
probe.setResult(p6);
fields = probe.write(null).split(SEPARATOR);
assertEquals("Cholesterol", fields[NAME]);
assertEquals("CHOL", fields[SHORT]);
assertEquals("<15.26", fields[VALUE]);
assertEquals("mmol/l", fields[UNIT]);
probe.setResult(p7);
try {
probe.write(null).split(SEPARATOR);
} catch (PackageException e) {
assertEquals("Resultat der Probe zu klein!", e.getMessage());
}
probe.setResult(p8);
fields = probe.write(null).split(SEPARATOR);
assertEquals("Creatinin", fields[NAME]);
assertEquals("CREA", fields[SHORT]);
assertEquals("88.3", fields[VALUE]);
assertEquals("umol/l", fields[UNIT]);
probe.setResult(p9);
fields = probe.write(null).split(SEPARATOR);
assertEquals("GOT", fields[NAME]);
assertEquals("GOT", fields[SHORT]);
assertEquals("25.3", fields[VALUE]);
assertEquals("U/l", fields[UNIT]);
probe.setResult(p10);
fields = probe.write(null).split(SEPARATOR);
assertEquals("GPT", fields[NAME]);
assertEquals("GPT", fields[SHORT]);
assertEquals("17.9", fields[VALUE]);
assertEquals("U/l", fields[UNIT]);
probe.setResult(p11);
fields = probe.write(null).split(SEPARATOR);
assertEquals("Glukose", fields[NAME]);
assertEquals("GLU", fields[SHORT]);
assertEquals("9.28", fields[VALUE]);
assertEquals("mmol/l", fields[UNIT]);
}
}