Skip to content

Commit c17042c

Browse files
committed
SubjectCodes, Tax, TaxExemptionReasonCodes
1 parent e7ad0e2 commit c17042c

7 files changed

+951
-59
lines changed

Test/DUnitXZUGFeRDTest.dpr

+3-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ uses
6767
intf.ZUGFeRDInvoiceTypes.UnitTests,
6868
intf.ZUGFeRDMimeTypeMapper.UnitTests,
6969
intf.ZUGFeRDTaxRegistrationSchemeID.UnitTests,
70-
intf.ZUGFeRDTaxTypes.UnitTests
70+
intf.ZUGFeRDTaxTypes.UnitTests,
71+
intf.ZUGFeRDTaxExemptionReasonCodes.UnitTests,
72+
intf.ZUGFeRDSubjectCodes.UnitTests
7173
;
7274

7375
//Übersetze folgenden C#-Code nach Delphi. Wenn ein Klassenname übersetzt wird, setze ihm den Präfix TZUGFeRD vorran. Stelle alles als Codeblock dar.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
{* Licensed to the Apache Software Foundation (ASF) under one
2+
* or more contributor license agreements. See the NOTICE file
3+
* distributed with this work for additional information
4+
* regarding copyright ownership. The ASF licenses this file
5+
* to you under the Apache License, Version 2.0 (the
6+
* "License"); you may not use this file except in compliance
7+
* with the License. You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing,
12+
* software distributed under the License is distributed on an
13+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
* KIND, either express or implied. See the License for the
15+
* specific language governing permissions and limitations
16+
* under the License.}
17+
18+
unit intf.ZUGFeRDSubjectCodes.UnitTests;
19+
20+
interface
21+
22+
uses
23+
DUnitX.TestFramework, intf.ZUGFeRDSubjectCodes;
24+
25+
type
26+
[TestFixture]
27+
TZUGFeRDSubjectCodesTest = class
28+
public
29+
[Test]
30+
procedure TestFromString;
31+
[Test]
32+
procedure TestEnumToString;
33+
end;
34+
35+
implementation
36+
37+
procedure TZUGFeRDSubjectCodesTest.TestFromString;
38+
begin
39+
Assert.AreEqual(TZUGFeRDSubjectCodes.AAI, TZUGFeRDSubjectCodesExtensions.FromString('AAI'));
40+
Assert.AreEqual(TZUGFeRDSubjectCodes.AAJ, TZUGFeRDSubjectCodesExtensions.FromString('AAJ'));
41+
Assert.AreEqual(TZUGFeRDSubjectCodes.ABN, TZUGFeRDSubjectCodesExtensions.FromString('ABN'));
42+
Assert.AreEqual(TZUGFeRDSubjectCodes.AAK, TZUGFeRDSubjectCodesExtensions.FromString('AAK'));
43+
Assert.AreEqual(TZUGFeRDSubjectCodes.ACB, TZUGFeRDSubjectCodesExtensions.FromString('ACB'));
44+
Assert.AreEqual(TZUGFeRDSubjectCodes.PMT, TZUGFeRDSubjectCodesExtensions.FromString('PMT'));
45+
Assert.AreEqual(TZUGFeRDSubjectCodes.PRF, TZUGFeRDSubjectCodesExtensions.FromString('PRF'));
46+
Assert.AreEqual(TZUGFeRDSubjectCodes.REG, TZUGFeRDSubjectCodesExtensions.FromString('REG'));
47+
Assert.AreEqual(TZUGFeRDSubjectCodes.SUR, TZUGFeRDSubjectCodesExtensions.FromString('SUR'));
48+
Assert.AreEqual(TZUGFeRDSubjectCodes.Unknown, TZUGFeRDSubjectCodesExtensions.FromString('Unknown'));
49+
Assert.AreEqual(TZUGFeRDSubjectCodes.Unknown, TZUGFeRDSubjectCodesExtensions.FromString('Invalid'));
50+
end;
51+
52+
procedure TZUGFeRDSubjectCodesTest.TestEnumToString;
53+
begin
54+
Assert.AreEqual('AAI', TZUGFeRDSubjectCodesExtensions.EnumToString(TZUGFeRDSubjectCodes.AAI));
55+
Assert.AreEqual('AAJ', TZUGFeRDSubjectCodesExtensions.EnumToString(TZUGFeRDSubjectCodes.AAJ));
56+
Assert.AreEqual('ABN', TZUGFeRDSubjectCodesExtensions.EnumToString(TZUGFeRDSubjectCodes.ABN));
57+
Assert.AreEqual('AAK', TZUGFeRDSubjectCodesExtensions.EnumToString(TZUGFeRDSubjectCodes.AAK));
58+
Assert.AreEqual('ACB', TZUGFeRDSubjectCodesExtensions.EnumToString(TZUGFeRDSubjectCodes.ACB));
59+
Assert.AreEqual('PMT', TZUGFeRDSubjectCodesExtensions.EnumToString(TZUGFeRDSubjectCodes.PMT));
60+
Assert.AreEqual('PRF', TZUGFeRDSubjectCodesExtensions.EnumToString(TZUGFeRDSubjectCodes.PRF));
61+
Assert.AreEqual('REG', TZUGFeRDSubjectCodesExtensions.EnumToString(TZUGFeRDSubjectCodes.REG));
62+
Assert.AreEqual('SUR', TZUGFeRDSubjectCodesExtensions.EnumToString(TZUGFeRDSubjectCodes.SUR));
63+
Assert.AreEqual('Unknown', TZUGFeRDSubjectCodesExtensions.EnumToString(TZUGFeRDSubjectCodes.Unknown));
64+
end;
65+
66+
initialization
67+
68+
//I was hoping to use RTTI to discover the TestFixture classes, however unlike .NET
69+
//if we don't touch the class somehow then the linker will remove
70+
//the class from the resulting exe.
71+
//We could just do this:
72+
//TMyExampleTests.ClassName;
73+
//TExampleFixture2.ClassName;
74+
//which is enough to make the compiler link the classes into the exe, but that seems a
75+
//bit redundent so I guess we'll just use manual registration. If you use the
76+
//{$STRONGLINKTYPES ON} compiler directive then it will link the TestFixtures in and you
77+
//can use RTTI. The downside to that is the resulting exe will potentially much larger.
78+
//Not sure which version {$STRONGLINKTYPES ON} was introduced so we'll allow RTTI and
79+
//manual registration for now.
80+
81+
// TDUnitX.RegisterTestFixture(TZUGFeRDSubjectCodesTest);
82+
83+
end.

0 commit comments

Comments
 (0)