11using Microsoft . VisualStudio . TestTools . UnitTesting ;
22using System . Globalization ;
3+ using System . IO ;
34using System . Linq ;
45
56namespace DSMRParser . Tests ;
@@ -11,27 +12,20 @@ public class TelegramTests
1112 public void ToString_Should_FormatCorrectly ( )
1213 {
1314 var parser = new DSMRTelegramParser ( ) ;
14- var target = parser . Parse (
15- """
16- /Test\V5-Telegram
17-
18- 1-3:0.2.8(50)
19- 1-0:99.97.0(3)(0-0:96.7.19)(000104180320W)(0000237126*s)(000101000001W)(2147583646*s)(200102010203W)(2317482647*s)
20- 1-0:32.7.0(1234.56*V)
21- 0-1:24.2.1(201211100907S)(6789.12*m3)
22- !FA4C
23-
24- """ ) ; //Note: The string is a verbatim string literal, so the newlines are preserved. We NEED the extra empty line for a newline
15+ var target = parser . Parse ( File . ReadAllText ( "testdata/formattest.txt" ) ) ;
2516
17+ // No specific culture is set, so the default culture is used.
2618 Assert . AreEqual ( "1234.56V" , target . VoltageL1 ! . ToString ( ) ) ;
2719 Assert . AreEqual ( "2020-12-11T10:09:07.0000000+01:00: 6789.12m³" , target . GasDelivered ! . ToString ( ) ) ;
2820 Assert . AreEqual ( "2000-01-04T18:03:20.0000000+01:00: 2.17:52:06" , target . ElectricityFailureLog . ToArray ( ) [ 0 ] . ToString ( ) ) ;
2921
22+ // Use Dutch culture
3023 var nl_culture = CultureInfo . GetCultureInfo ( 1043 ) ;
3124 Assert . AreEqual ( "1234,56V" , target . VoltageL1 ! . ToString ( nl_culture ) ) ;
3225 Assert . AreEqual ( "2020-12-11T10:09:07.0000000+01:00: 6789,12m³" , target . GasDelivered ! . ToString ( nl_culture ) ) ;
3326 Assert . AreEqual ( "11-12-20 10:09:07: 6789,12m³" , target . GasDelivered ! . ToString ( null , "dd-MM-yy HH:mm:ss" , nl_culture ) ) ;
3427
28+ // Use US culture
3529 var us_culture = CultureInfo . GetCultureInfo ( 1033 ) ;
3630 Assert . AreEqual ( "1234.56V" , target . VoltageL1 ! . ToString ( us_culture ) ) ;
3731 Assert . AreEqual ( "2020-12-11T10:09:07.0000000+01:00: 6789.12m³" , target . GasDelivered ! . ToString ( us_culture ) ) ;
0 commit comments