/**********************************************************************
*
* Copyright (c) by Olaf Willuhn
* All rights reserved
*
**********************************************************************/
package hbci4java.swift;
import org.junit.Assert;
import org.junit.Test;
import org.kapott.hbci.swift.Swift;
/**
* Testet das Parsen von kaputten MT940-Strings, die etwa so aussehen:
*
* Test 1: Korrekter Aufbau
*
* Test 2: CRLF-
* :60M:C140106EUR1,00
* -:61:1401060106CR1,00N062NONREF
*
* Das "-" am Beginn der zweiten Zeile ist falsch. Einige Banken
* senden sowas aber. Irgendwie muessen wir das tolerieren.
*
* Test 3: CRLF-CRLF (Bank: Kreissparkasse Grafschaft Bentheim zu Nordhorn)
* :60M:C140106EUR1,00
* -
* :61:1401060106CR1,00N062NONREF
*
* Das "-" in der zweiten Zeile ist ebenfalls falsch
*
*/
public class TestBrokenMT940
{
/**
* Korrekter Aufbau.
* @throws Exception
*/
@Test
public void test001() throws Exception
{
String st = "\r\n:60M:C140106EUR1,00\r\n:61:1401060106CR5,00N062NONREF";
String value = Swift.getTagValue(st,"60M",0);
Assert.assertEquals("C140106EUR1,00",value);
}
/**
* Ungueltiger Aufbau.
* Muss aber trotzdem korrekt geparst werden.
* @throws Exception
*/
@Test
public void test002() throws Exception
{
String st = "\r\n:60M:C140106EUR1,00\r\n-:61:1401060106CR5,00N062NONREF";
String value = Swift.getTagValue(st,"60M",0);
Assert.assertEquals("C140106EUR1,00",value);
}
/**
* Ungueltiger Aufbau.
* Muss aber trotzdem korrekt geparst werden.
* @throws Exception
*/
@Test
public void test003() throws Exception
{
String st = "\r\n:60M:C140106EUR1,00\r\n-\r\n:61:1401060106CR5,00N062NONREF";
String value = Swift.getTagValue(st,"60M",0);
Assert.assertEquals("C140106EUR1,00",value);
}
/**
* Fehlendes "-" auf der letzten Zeile.
* Muss aber trotzdem korrekt geparst werden.
* @throws Exception
*/
@Test
public void test004() throws Exception
{
String st = "\r\n:62F:C150626EUR91,32\r\n";
String value = Swift.getTagValue(st,"62F",0);
Assert.assertEquals("C150626EUR91,32",value);
}
/**
* Noch ein Zeilenumbruch nach der letzten Zeile.
* @throws Exception
*/
@Test
public void test005() throws Exception
{
String st = "\r\n:62F:C150626EUR91,32\r\n-\r\n";
String value = Swift.getTagValue(st,"62F",0);
Assert.assertEquals("C150626EUR91,32",value);
}
/**
* Kein "-", dafuer aber zwei Leerzeilen am Ende.
* @throws Exception
*/
@Test
public void test006() throws Exception
{
String st = "\r\n:62F:C150626EUR91,32\r\n\r\n";
String value = Swift.getTagValue(st,"62F",0);
Assert.assertEquals("C150626EUR91,32",value);
}
/**
* Linux-Zeilenumbruch am Ende.
* @throws Exception
*/
@Test
public void test007() throws Exception
{
String st = "\r\n:62F:C150626EUR91,32\n";
String value = Swift.getTagValue(st,"62F",0);
Assert.assertEquals("C150626EUR91,32",value);
}
}