package hbci4java.msg;
import java.util.Hashtable;
import org.junit.Assert;
import org.junit.Test;
import org.kapott.hbci.manager.HBCIKernelImpl;
import org.kapott.hbci.manager.MsgGen;
import org.kapott.hbci.protocol.MSG;
import org.kapott.hbci.protocol.MultipleSyntaxElements;
import org.kapott.hbci.protocol.factory.MSGFactory;
import hbci4java.AbstractTest;
/**
* Testet den Workaround zum Abkuerzen multipler optionaler DEGs.
* Siehe {@link MultipleSyntaxElements#initData}
*/
public class TestMultipleDEGs extends AbstractTest {
/**
* @throws Exception
*/
@Test
public void test() throws Exception {
String data = getFile("msg/TestMultipleDEGs-01.txt");
HBCIKernelImpl kernel = new HBCIKernelImpl(null, "300");
kernel.rawNewMsg("DialogInit");
long start = System.currentTimeMillis();
MsgGen gen = kernel.getMsgGen();
MSG msg = MSGFactory.getInstance().createMSG("DialogInitRes", data, data.length(), gen);
Hashtable<String, String> ht = new Hashtable<String, String>();
msg.extractValues(ht);
long end = System.currentTimeMillis();
// List<String> keys = new ArrayList<String>(ht.keySet());
// Collections.sort(keys);
// for (String key:keys)
// {
// System.out.println(key + ": " + ht.get(key));
// }
//
// Das sollte unter 1 Sekunde dauern
long used = end - start;
System.out.println("used time: " + used + " millis");
Assert.assertTrue("Sollte weniger als 1 Sekunde dauern",used < 1000);
}
}