]> wagnertech.de Git - mfinanz.git/blob - t/helper/qrbill_parser.t
date error in mapping
[mfinanz.git] / t / helper / qrbill_parser.t
1 use Test::More tests => 40;
2
3 use strict;
4
5 use lib 't';
6 use Support::TestSetup;
7
8 use_ok('SL::Helper::QrBillParser');
9
10 Support::TestSetup::login();
11
12 {
13   my $code = "SPC\n0200\n1\nCH5204835012345671000\nS\nSample Foundation\nPO Box\n\n3001\nBern\nCH\n\n\n\n\n\n\n\n\nCHF\n\n\n\n\n\n\n\nNON\n\n\nEPD\n";
14   my $obj = SL::Helper::QrBillParser->new($code);
15
16   is($obj->is_valid, 1, 'code1valid');
17   is($obj->{creditor_information}->{iban}, "CH5204835012345671000", 'code1iban');
18   is($obj->{creditor}->{name}, "Sample Foundation", 'code1name');
19   is($obj->{payment_amount_information}->{amount}, "", 'code1amount');
20 }
21
22 {
23   my $code = "SPC\r\n0200\r\n1\r\nCH4431999123000889012\r\nS\r\nMax Muster & Söhne\r\nMusterstrasse\r\n123\r\n8000\r\nSeldwyla\r\nCH\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n1949.75\r\nCHF\r\nS\r\nSimon Muster\r\nMusterstrasse\r\n1\r\n8000\r\nSeldwyla\r\nCH\r\nQRR\r\n210000000003139471430009017\r\nOrder from 15.10.2020\r\nEPD\r\n//S1/10/1234/11/201021/30/102673386/32/7.7/40/0:30\r\nName AV1: UV;UltraPay005;12345\r\nName AV2: XY;XYService;54321";
24   my $obj = SL::Helper::QrBillParser->new($code);
25
26   is($obj->is_valid, 1, 'code2valid');
27   is($obj->{creditor_information}->{iban}, "CH4431999123000889012", 'code2iban');
28   is($obj->{creditor}->{name}, "Max Muster & Söhne", 'code2name');
29   is($obj->{payment_amount_information}->{amount}, "1949.75", 'code2amount');
30   is($obj->{payment_reference}->{reference}, "210000000003139471430009017", 'code2reference');
31   is($obj->{additional_information}->{unstructured_message}, "Order from 15.10.2020", 'code2unstructured_message');
32
33   is($obj->get_creditor_street_name(), 'Musterstrasse', 'code2street_name');
34   is($obj->get_creditor_building_number(), '123', 'code2building_number');
35   is($obj->get_creditor_post_code(), '8000', 'code2post_code');
36   is($obj->get_creditor_town_name(), 'Seldwyla', 'code2town_name');
37 }
38
39 {
40   my $code = "SPC\n0200\n1\nCH5800791123000889012\nS\nMuster Krankenkasse\nMusterstrasse\n12\n8000\nSeldwyla\nCH\n\n\n\n\n\n\n\n211.00\nCHF\nS\nSarah Beispiel\nMusterstrasse\n1\n8000\nSeldwyla\nCH\nSCOR\nRF240191230100405JSH0438\n\nEPD\n";
41   my $obj = SL::Helper::QrBillParser->new($code);
42
43   is($obj->is_valid, 1, 'code3valid');
44   is($obj->{creditor_information}->{iban}, "CH5800791123000889012", 'code3iban');
45   is($obj->{creditor}->{name}, "Muster Krankenkasse", 'code3name');
46   is($obj->{payment_amount_information}->{amount}, "211.00", 'code3amount');
47   is($obj->{payment_reference}->{reference}, "RF240191230100405JSH0438", 'code3reference');
48 }
49
50 {
51   my $code = "SPC\n0200\n1\nCH5800791123000889012\nS\nMax Muster & Söhne\nMusterstrasse\n123\n8000\nSeldwyla\nCH\n\n\n\n\n\n\n\n199.95\nCHF\nS\nSarah Beispiel\nMusterstrasse\n1\n78462\nKonstanz\nDE\nSCOR\nRF18539007547034\n\nEPD\n";
52   my $obj = SL::Helper::QrBillParser->new($code);
53
54   is($obj->is_valid, 1, 'code4valid');
55   is($obj->{creditor_information}->{iban}, "CH5800791123000889012", 'code4iban');
56   is($obj->{creditor}->{name}, "Max Muster & Söhne", 'code4name');
57   is($obj->{payment_amount_information}->{amount}, "199.95", 'code4amount');
58   is($obj->{payment_reference}->{reference}, "RF18539007547034", 'code4reference');
59 }
60
61 {
62   my $code = "SP\n0200\n1\nCH5800791123000889012\nS\nMax Muster & Söhne\nMusterstrasse\n123\n8000\nSeldwyla\nCH\n\n\n\n\n\n199.95\nCHF\nS\nSarah Beispiel\nMusterstrasse\n1\n78462\nKonstanz\nDE\nSCOR\nRF18539007547034\n\nEPD\n";
63   my $obj = SL::Helper::QrBillParser->new($code);
64
65   is($obj->is_valid, 0, 'code5invalid');
66   is($obj->error, "Test failed: Section: 'header' Field: 'qrtype' Value: 'SP'", 'code5error');
67 }
68
69 {
70   my $code = "SPC\n0200\n1\nCH5800791123889012\nS\nMax Muster & Söhne\nMusterstrasse\n123\n8000\nSeldwyla\nCH\n\n\n\n\n\n\n\n199.95\nCHF\nS\nSarah Beispiel\nMusterstrasse\n1\n78462\nKonstanz\nDE\nSCOR\nRF18539007547034\n\nEPD\n";
71   my $obj = SL::Helper::QrBillParser->new($code);
72
73   is($obj->is_valid, 0, 'code6invalid');
74   is($obj->error, "Test failed: Section: 'creditor_information' Field: 'iban' Value: 'CH5800791123889012'", 'code6error');
75 }
76
77 {
78   my $code = "SPC\n0200\n1\nCH5204835012345671000\nK\nSample Foundation\nMusterstrasse 55\n3005 Bern\n\n\nCH\n\n\n\n\n\n\n\n\nCHF\n\n\n\n\n\n\n\nNON\n\n\nEPD\n";
79   my $obj = SL::Helper::QrBillParser->new($code);
80
81   is($obj->is_valid, 1, 'code7valid');
82   is($obj->get_creditor_street_name(), 'Musterstrasse', 'code7street_name');
83   is($obj->get_creditor_building_number(), '55', 'code7building_number');
84   is($obj->get_creditor_post_code(), '3005', 'code7post_code');
85   is($obj->get_creditor_town_name(), 'Bern', 'code7town_name');
86 }
87
88 {
89   my $code = "SPC\n0200\n1\nCH5204835012345671000\nK\nSample Foundation\nMusterstrasse 25b\n3005 Bern\n\n\nCH\n\n\n\n\n\n\n\n\nCHF\n\n\n\n\n\n\n\nNON\n\n\nEPD\n";
90   my $obj = SL::Helper::QrBillParser->new($code);
91
92   is($obj->is_valid, 1, 'code8valid');
93   is($obj->get_creditor_street_name(), 'Musterstrasse', 'code8street_name');
94   is($obj->get_creditor_building_number(), '25b', 'code8building_number');
95 }
96
97 {
98   my $code = "SPC\n0200\n1\nCH5204835012345671000\nK\nSample Foundation\nMusterstrasse 25 c\n3005 Bern\n\n\nCH\n\n\n\n\n\n\n\n\nCHF\n\n\n\n\n\n\n\nNON\n\n\nEPD\n";
99   my $obj = SL::Helper::QrBillParser->new($code);
100
101   is($obj->is_valid, 1, 'code9valid');
102   is($obj->get_creditor_street_name(), 'Musterstrasse', 'code9street_name');
103   is($obj->get_creditor_building_number(), '25 c', 'code9building_number');
104 }