/** Testet, ob ein Parameter korrekt als SyntaxWrt erkannt und formatiert wird. */ @Test public void testWrt() { HhdVersion version = null; Param p = null; String code = "HKAOM"; version = getHhdVersion(code, ChallengeInfo.VERSION_HHD_1_2); p = version.getParams().get(1); Assert.assertEquals(p.getPath(), "BTG.value"); Assert.assertEquals(p.getType(), "Wrt"); Assert.assertEquals(p.format("100"), "100,"); Assert.assertEquals(p.format("100.50"), "100,5"); Assert.assertEquals(p.format("100.99"), "100,99"); Assert.assertNull(p.format(null)); version = getHhdVersion(code, ChallengeInfo.VERSION_HHD_1_3); p = version.getParams().get(2); Assert.assertEquals(p.getPath(), "BTG.value"); Assert.assertEquals(p.getType(), "Wrt"); Assert.assertEquals(p.format("100"), "100,"); Assert.assertEquals(p.format("100.50"), "100,5"); Assert.assertEquals(p.format("100.99"), "100,99"); Assert.assertNull(p.format(null)); version = getHhdVersion(code, ChallengeInfo.VERSION_HHD_1_4); p = version.getParams().get(0); Assert.assertEquals(p.getPath(), "BTG.value"); Assert.assertEquals(p.getType(), "Wrt"); Assert.assertEquals(p.format("100"), "100,"); Assert.assertEquals(p.format("100.50"), "100,5"); Assert.assertEquals(p.format("100.99"), "100,99"); Assert.assertNull(p.format(null)); }
/** Testet Parameter mit Bedingung. */ @Test public void testCondition2() { HhdVersion version = null; String code = "HKCCS"; List<Param> params = null; Properties secmech = new Properties(); secmech.setProperty("needchallengevalue", "J"); // Jetzt muss er enthalten sein version = getHhdVersion(code, ChallengeInfo.VERSION_HHD_1_2); params = version.getParams(); for (Param p : params) { if (p.getPath().equals("sepa.btg.value")) Assert.assertTrue(p.isComplied(secmech)); } // Jetzt muss er enthalten sein version = getHhdVersion(code, ChallengeInfo.VERSION_HHD_1_3); params = version.getParams(); for (Param p : params) { if (p.getPath().equals("sepa.btg.value")) Assert.assertTrue(p.isComplied(secmech)); } // Und hier bleibt er weiterhin enthalten version = getHhdVersion(code, ChallengeInfo.VERSION_HHD_1_4); params = version.getParams(); for (Param p : params) { if (p.getPath().equals("sepa.btg.value")) Assert.assertTrue(p.isComplied(secmech)); } }
/** Testet Parameter mit Bedingung. */ @Test public void testCondition() { HhdVersion version = null; String code = "HKAOM"; List<Param> params = null; Properties secmech = new Properties(); secmech.setProperty("needchallengevalue", "N"); // Darf nicht enthalten sein version = getHhdVersion(code, ChallengeInfo.VERSION_HHD_1_2); params = version.getParams(); for (Param p : params) { if (p.getPath().equals("BTG.value")) Assert.assertFalse(p.isComplied(secmech)); } // Darf nicht enthalten sein version = getHhdVersion(code, ChallengeInfo.VERSION_HHD_1_3); params = version.getParams(); for (Param p : params) { if (p.getPath().equals("BTG.value")) Assert.assertFalse(p.isComplied(secmech)); } // Hier ist er enthalten - auch wenn in den BPD etwas anderes steht version = getHhdVersion(code, ChallengeInfo.VERSION_HHD_1_4); params = version.getParams(); for (Param p : params) { if (p.getPath().equals("BTG.value")) Assert.assertTrue(p.isComplied(secmech)); } }
/** Testet, ob ein Parameter korrekt als SyntaxAN erkannt und formatiert wird. */ @Test public void testAN() { HhdVersion version = null; Param p = null; String code = "HKAOM"; version = getHhdVersion(code, ChallengeInfo.VERSION_HHD_1_2); p = version.getParams().get(0); Assert.assertEquals(p.getPath(), "Other.number"); Assert.assertEquals(p.getType(), ""); Assert.assertEquals(p.format("AaBb"), "AaBb"); // Hier darf KEIN Escaping stattfinden. Das macht HBCI4Java dann spaeter // ohnehin beim Zusammenbauen des Segments, da ChallengeKlassParams#param[1-9] // ja in hbci-{version}.xml als Type="AN" deklariert sind. Assert.assertEquals(p.format("+:'@"), "+:'@"); Assert.assertNull(p.format(null)); version = getHhdVersion(code, ChallengeInfo.VERSION_HHD_1_3); p = version.getParams().get(1); Assert.assertEquals(p.getPath(), "Other.number"); Assert.assertEquals(p.getType(), ""); Assert.assertEquals(p.format("AaBb"), "AaBb"); Assert.assertEquals(p.format("+:'@"), "+:'@"); Assert.assertNull(p.format(null)); version = getHhdVersion(code, ChallengeInfo.VERSION_HHD_1_4); p = version.getParams().get(3); Assert.assertEquals(p.getPath(), "Other.number"); Assert.assertEquals(p.getType(), ""); Assert.assertEquals(p.format("AaBb"), "AaBb"); Assert.assertEquals(p.format("+:'@"), "+:'@"); Assert.assertNull(p.format(null)); }
/** * Testet, ob ein Parameter korrekt als SyntaxDate erkannt wird. * * @throws Exception */ @Test public void testDate() throws Exception { HhdVersion version = getHhdVersion("HKTUE", ChallengeInfo.VERSION_HHD_1_4); Param p = version.getParams().get(3); Assert.assertEquals(p.getPath(), "date"); Assert.assertEquals(p.getType(), "Date"); Assert.assertEquals(p.format("2011-05-20"), "20110520"); Assert.assertNull(p.format(null)); try { p.format("invalid-date"); throw new Exception("hier duerfen wir nicht ankommen"); } catch (InitializingException e) { Assert.assertEquals(InitializingException.class, e.getClass()); } }