package hbci4java.bpd; import hbci4java.AbstractTest; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.Hashtable; import java.util.Properties; import java.util.Set; import java.util.StringTokenizer; import junit.framework.Assert; import org.junit.Test; import org.kapott.hbci.manager.HBCIKernelImpl; import org.kapott.hbci.manager.HBCIUtils; import org.kapott.hbci.manager.MsgGen; import org.kapott.hbci.protocol.MSG; import org.kapott.hbci.protocol.factory.MSGFactory; import org.kapott.hbci.rewrite.Rewrite; public class AllowedGVTest extends AbstractTest { @Test public void test() throws Exception { String data = getFile("bpd/bpd-allowedgv.txt"); HBCIKernelImpl kernel = new HBCIKernelImpl(null,"plus"); Rewrite.setData("msgName","Synch"); // liste der rewriter erzeugen String rewriters_st=HBCIUtils.getParam("kernel.rewriter"); ArrayList<Rewrite> al=new ArrayList<Rewrite>(); StringTokenizer tok=new StringTokenizer(rewriters_st,","); while (tok.hasMoreTokens()) { String rewriterName=tok.nextToken().trim(); if (rewriterName.length()!=0) { Class cl=this.getClass().getClassLoader().loadClass("org.kapott.hbci.rewrite.R"+ rewriterName); Constructor con=cl.getConstructor((Class[])null); Rewrite rewriter=(Rewrite)(con.newInstance((Object[])null)); al.add(rewriter); } } Rewrite[] rewriters= al.toArray(new Rewrite[al.size()]); kernel.rawNewMsg("Synch"); MsgGen gen = kernel.getMsgGen(); // alle patches f�r die unverschl�sselte nachricht durchlaufen String newmsgstring = data; for (int i=0;i<rewriters.length;i++) { newmsgstring=rewriters[i].incomingClearText(newmsgstring,gen); } MSG msg = MSGFactory.getInstance().createMSG("SynchRes",newmsgstring,newmsgstring.length(),gen); Hashtable<String,String> ht = new Hashtable<String,String>(); msg.extractValues(ht); } @Test public void test2() throws Exception { String data = getFile("bpd/bpd-allowedgv2.txt"); HBCIKernelImpl kernel = new HBCIKernelImpl(null,"300"); Rewrite.setData("msgName","Synch"); // liste der rewriter erzeugen String rewriters_st=HBCIUtils.getParam("kernel.rewriter"); ArrayList<Rewrite> al=new ArrayList<Rewrite>(); StringTokenizer tok=new StringTokenizer(rewriters_st,","); while (tok.hasMoreTokens()) { String rewriterName=tok.nextToken().trim(); if (rewriterName.length()!=0) { Class cl=this.getClass().getClassLoader().loadClass("org.kapott.hbci.rewrite.R"+ rewriterName); Constructor con=cl.getConstructor((Class[])null); Rewrite rewriter=(Rewrite)(con.newInstance((Object[])null)); al.add(rewriter); } } Rewrite[] rewriters= al.toArray(new Rewrite[al.size()]); kernel.rawNewMsg("Synch"); MsgGen gen = kernel.getMsgGen(); // alle patches f�r die unverschl�sselte nachricht durchlaufen String newmsgstring = data; for (int i=0;i<rewriters.length;i++) { newmsgstring=rewriters[i].incomingClearText(newmsgstring,gen); } MSG msg = MSGFactory.getInstance().createMSG("SynchRes",newmsgstring,newmsgstring.length(),gen); Hashtable<String,String> ht = new Hashtable<String,String>(); msg.extractValues(ht); Properties upd = new Properties(); for(String key: ht.keySet()) { if(key.startsWith("SynchRes.UPD.") && key.contains(".code")) { String value = ht.get(key); key = key.replace("SynchRes.UPD.", ""); upd.put(key, value); } } Set keys = upd.keySet(); Assert.assertEquals(keys.contains("KInfo.AllowedGV_2.code"), true); } }