@@ -2035,5 +2035,111 @@ public void ShouldLoadCiiWithoutQdtNamespace()
2035
2035
Assert . AreEqual ( desc . TradeLineItems . Count , 2 ) ;
2036
2036
Assert . AreEqual ( desc . LineTotalAmount , 314.86m ) ;
2037
2037
} // !ShouldLoadCIIWithoutQdtNamespace()
2038
- }
2038
+
2039
+
2040
+ [ TestMethod ]
2041
+ public void TestDesignatedProductClassificationWithFullClassification ( )
2042
+ {
2043
+ InvoiceDescriptor desc = this . InvoiceProvider . CreateInvoice ( ) ;
2044
+ desc . TradeLineItems . First ( ) . AddDesignatedProductClassification (
2045
+ "Test Value" ,
2046
+ DesignatedProductClassificationClassCodes . HS ,
2047
+ "List ID Value" ,
2048
+ "List Version ID Value" ) ;
2049
+
2050
+ MemoryStream ms = new MemoryStream ( ) ;
2051
+
2052
+ desc . Save ( ms , ZUGFeRDVersion . Version22 , Profile . XRechnung ) ;
2053
+
2054
+ // string comparison
2055
+ ms . Seek ( 0 , SeekOrigin . Begin ) ;
2056
+ StreamReader reader = new StreamReader ( ms ) ;
2057
+ string content = reader . ReadToEnd ( ) ;
2058
+ Assert . IsTrue ( content . Contains ( "<ram:DesignatedProductClassification>" ) ) ;
2059
+ Assert . IsTrue ( content . Contains ( "<ram:ClassCode listID=\" List ID Value\" listVersionID=\" List Version ID Value\" >HS</ram:ClassCode>" ) ) ;
2060
+ Assert . IsTrue ( content . Contains ( "<ram:ClassName>Test Value</ram:ClassName>" ) ) ;
2061
+
2062
+ // structure comparison
2063
+ ms . Seek ( 0 , SeekOrigin . Begin ) ;
2064
+ File . WriteAllBytes ( "e:\\ output.xml" , ms . ToArray ( ) ) ;
2065
+
2066
+ ms . Seek ( 0 , SeekOrigin . Begin ) ;
2067
+ InvoiceDescriptor loadedInvoice = InvoiceDescriptor . Load ( ms ) ;
2068
+
2069
+ Assert . AreEqual ( DesignatedProductClassificationClassCodes . HS , desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ClassCode ) ;
2070
+ Assert . AreEqual ( "Test Value" , desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ClassName ) ;
2071
+ Assert . AreEqual ( "List ID Value" , desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ListID ) ;
2072
+ Assert . AreEqual ( "List Version ID Value" , desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ListVersionID ) ;
2073
+ } // !TestDesignatedProductClassificationWithFullClassification()
2074
+
2075
+
2076
+ [ TestMethod ]
2077
+ public void TestDesignatedProductClassificationWithEmptyVersionId ( )
2078
+ {
2079
+ // test with empty version id value
2080
+ InvoiceDescriptor desc = this . InvoiceProvider . CreateInvoice ( ) ;
2081
+ desc . TradeLineItems . First ( ) . AddDesignatedProductClassification (
2082
+ "Test Value" ,
2083
+ DesignatedProductClassificationClassCodes . HS ,
2084
+ "List ID Value"
2085
+ ) ;
2086
+
2087
+ MemoryStream ms = new MemoryStream ( ) ;
2088
+
2089
+ desc . Save ( ms , ZUGFeRDVersion . Version22 , Profile . XRechnung ) ;
2090
+
2091
+ ms . Seek ( 0 , SeekOrigin . Begin ) ;
2092
+ InvoiceDescriptor loadedInvoice = InvoiceDescriptor . Load ( ms ) ;
2093
+
2094
+ Assert . AreEqual ( DesignatedProductClassificationClassCodes . HS , desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ClassCode ) ;
2095
+ Assert . AreEqual ( "Test Value" , desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ClassName ) ;
2096
+ Assert . AreEqual ( "List ID Value" , desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ListID ) ;
2097
+ Assert . IsNull ( desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ListVersionID ) ;
2098
+ } // !TestDesignatedProductClassificationWithEmptyVersionId()
2099
+
2100
+
2101
+
2102
+ [ TestMethod ]
2103
+ public void TestDesignatedProductClassificationWithEmptyListIdAndVersionId ( )
2104
+ {
2105
+ // test with empty version id value
2106
+ InvoiceDescriptor desc = this . InvoiceProvider . CreateInvoice ( ) ;
2107
+ desc . TradeLineItems . First ( ) . AddDesignatedProductClassification (
2108
+ "Test Value" ,
2109
+ DesignatedProductClassificationClassCodes . HS ) ;
2110
+
2111
+ MemoryStream ms = new MemoryStream ( ) ;
2112
+
2113
+ desc . Save ( ms , ZUGFeRDVersion . Version22 , Profile . XRechnung ) ;
2114
+
2115
+ ms . Seek ( 0 , SeekOrigin . Begin ) ;
2116
+ InvoiceDescriptor loadedInvoice = InvoiceDescriptor . Load ( ms ) ;
2117
+
2118
+ Assert . AreEqual ( DesignatedProductClassificationClassCodes . HS , desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ClassCode ) ;
2119
+ Assert . AreEqual ( "Test Value" , desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ClassName ) ;
2120
+ Assert . IsNull ( desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ListID ) ;
2121
+ Assert . IsNull ( desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ListVersionID ) ;
2122
+ } // !TestDesignatedProductClassificationWithEmptyListIdAndVersionId()
2123
+
2124
+
2125
+ [ TestMethod ]
2126
+ public void TestDesignatedProductClassificationWithoutClassCode ( )
2127
+ {
2128
+ // test with empty version id value
2129
+ InvoiceDescriptor desc = this . InvoiceProvider . CreateInvoice ( ) ;
2130
+ desc . TradeLineItems . First ( ) . AddDesignatedProductClassification ( "Test Value" ) ;
2131
+
2132
+ MemoryStream ms = new MemoryStream ( ) ;
2133
+
2134
+ desc . Save ( ms , ZUGFeRDVersion . Version22 , Profile . XRechnung ) ;
2135
+
2136
+ ms . Seek ( 0 , SeekOrigin . Begin ) ;
2137
+ InvoiceDescriptor loadedInvoice = InvoiceDescriptor . Load ( ms ) ;
2138
+
2139
+ Assert . AreEqual ( default ( DesignatedProductClassificationClassCodes ) , desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ClassCode ) ;
2140
+ Assert . AreEqual ( "Test Value" , desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ClassName ) ;
2141
+ Assert . IsNull ( desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ListID ) ;
2142
+ Assert . IsNull ( desc . TradeLineItems . First ( ) . GetDesignatedProductClassifications ( ) . First ( ) . ListVersionID ) ;
2143
+ } // !TestDesignatedProductClassificationWithoutClassCode()
2144
+ }
2039
2145
}
0 commit comments