/******************************************************************************* * Copyright (c) 2010, Elexis und Niklaus Giger <niklaus.giger@member.fsf.org * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * N. Giger - initial implementation * * This is a generic test for importing HL7-files. * For each laboratory you should create a corresponding folder under rsc * and add (at least one) hl7 file(s). * * The testHL7files will try to parse all hl7 files, but will not check the imported LabResult. * This should be enough in most cases. * * However it might be a good idea to add a procedure (e.g. testAnalyticaHL7) * if you have unusual requirements or stumbled over a bug in elexis HL7 parser. * * Side-effects: Removes all patients & LabResults before & after running each test! * *******************************************************************************/ package ch.medshare.elexis_directories; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import junit.framework.Assert; import org.apache.commons.io.FileUtils; import org.junit.Test; import ch.elexis.core.data.util.PlatformHelper; import ch.medshare.elexis.directories.DirectoriesContentParser; import ch.medshare.elexis.directories.KontaktEntry; public class TestElexisDirectories { private List<KontaktEntry> compare_file_to_kontacts(File file, List<KontaktEntry> expectedKontakte) throws IOException{ String content = FileUtils.readFileToString(file); DirectoriesContentParser parser = new DirectoriesContentParser(content); List<KontaktEntry> kontakte = parser.extractKontakte(); if (expectedKontakte != null) { for (int j = 0; j < expectedKontakte.size(); j++) { KontaktEntry soll = expectedKontakte.get(j); KontaktEntry ist = kontakte.get(j); // we must compare the different fields Assert.assertEquals(soll.getName(), ist.getName()); Assert.assertEquals(soll.getVorname(), ist.getVorname()); Assert.assertEquals(soll.getZusatz(), ist.getZusatz()); Assert.assertEquals(soll.getEmail(), ist.getEmail()); Assert.assertEquals(soll.getAdresse(), ist.getAdresse()); Assert.assertEquals(soll.getFax(), ist.getFax()); Assert.assertEquals(soll.getOrt(), ist.getOrt()); Assert.assertEquals(soll.getPlz(), ist.getPlz()); Assert.assertEquals(soll.getTelefon(), ist.getTelefon()); } } return kontakte; } private File get_ressource_path(){ return new File(PlatformHelper.getBasePath("ch.medshare.elexis_directories.test"), "rsc"); } @Test public void test_atupri_bern() throws IOException{ File base = get_ressource_path(); Assert.assertTrue(base.exists()); File to_test = new File(base, "atupri_bern.html"); Assert.assertTrue(to_test.exists()); KontaktEntry atupri = new KontaktEntry("Krankenkasse Direktion", "Atupri", "Krankenkasse, Versicherung", "Zieglerstrasse 29", "3007", "Bern", "031 555 09 11", "", "", true); List<KontaktEntry> expectedKontakte = new ArrayList<KontaktEntry>(); expectedKontakte.add(atupri); compare_file_to_kontacts(to_test, expectedKontakte); } @Test public void test_hamacher_bern() throws IOException{ File base = get_ressource_path(); Assert.assertTrue(base.exists()); File to_test = new File(base, "hamacher_bern.html"); Assert.assertTrue(to_test.exists()); KontaktEntry juerg = new KontaktEntry("Jürg", "Hamacher", "Ärzte, Innere Medizin, Lungenkrankheiten (Pneumologie)", "Bremgartenstrasse 119", "3012", "Bern", "031 300 35 00", "", "", true); List<KontaktEntry> expectedKontakte = new ArrayList<KontaktEntry>(); KontaktEntry ellen = new KontaktEntry("Ellen", "Hamacher", "", "Kutscherweg 20", "3047", "Bremgarten b. Bern", "031 301 74 74", "", "", true); expectedKontakte.add(juerg); expectedKontakte.add(ellen); compare_file_to_kontacts(to_test, expectedKontakte); } @Test public void test_meier_bern() throws IOException{ File base = get_ressource_path(); Assert.assertTrue(base.exists()); File to_test = new File(base, "meier_bern.html"); Assert.assertTrue(to_test.exists()); compare_file_to_kontacts(to_test, null); } @Test public void test_anne_muller_bern() throws IOException{ File base = get_ressource_path(); Assert.assertTrue(base.exists()); File to_test = new File(base, "anne_müller_bern.html"); Assert.assertTrue(to_test.exists()); compare_file_to_kontacts(to_test, null); } }