@@ -15,22 +15,22 @@ namespace CIM.Mapper.Tests.TinyNetwork.NetSam1_3
1515 public class MapNetSamDataTests
1616 {
1717 [ Fact ]
18- public async Task MapTinyNetworkToCim100 ( )
18+ public async Task TinyNetworkToCim100_NoErrorsExpected ( )
1919 {
2020 string rootFolder = @"../../../TinyNetwork/NetSam1_3" ;
21-
2221 var mapperConfigFile = $ "{ rootFolder } /mapper_config.xml";
22+ var inputCimFile = "tiny_network_netsam_1_3_no_errors.xml" ;
2323
2424 if ( File . Exists ( mapperConfigFile ) )
2525 {
26-
2726 Log . Logger = new LoggerConfiguration ( ) . WriteTo . Debug ( ) . CreateLogger ( ) ;
2827 Serilog . Debugging . SelfLog . Enable ( msg => Debug . WriteLine ( msg ) ) ;
2928
3029 Logger . WriteToConsole = false ;
31-
3230 var config = new TransformationConfig ( ) . LoadFromFile ( mapperConfigFile ) ;
3331
32+ config . DataReaders . First ( ) . ConfigParameters . First ( ) . Value = rootFolder + "/data/" + inputCimFile ;
33+
3434 var transformer = config . InitializeDataTransformer ( "test" ) ;
3535
3636 transformer . TransferData ( ) ;
@@ -83,6 +83,60 @@ public async Task MapTinyNetworkToCim100()
8383 }
8484 }
8585
86+ [ Fact ]
87+ public async Task TinyNetworkToCim100_MissingBayError ( )
88+ {
89+ string rootFolder = @"../../../TinyNetwork/NetSam1_3" ;
90+ var mapperConfigFile = $ "{ rootFolder } /mapper_config.xml";
91+ var inputCimFile = "tiny_network_netsam_1_3_missing_bay_error.xml" ;
92+
93+ if ( File . Exists ( mapperConfigFile ) )
94+ {
95+ Log . Logger = new LoggerConfiguration ( ) . WriteTo . Debug ( ) . CreateLogger ( ) ;
96+ Serilog . Debugging . SelfLog . Enable ( msg => Debug . WriteLine ( msg ) ) ;
97+
98+ Logger . WriteToConsole = false ;
99+ var config = new TransformationConfig ( ) . LoadFromFile ( mapperConfigFile ) ;
100+
101+ config . DataReaders . First ( ) . ConfigParameters . First ( ) . Value = rootFolder + "/data/" + inputCimFile ;
102+
103+ var transformer = config . InitializeDataTransformer ( "test" ) ;
104+
105+ transformer . TransferData ( ) ;
106+
107+ CIMGraphWriter writer = transformer . GetFirstDataWriter ( ) as CIMGraphWriter ;
108+ CIMGraph graph = writer . GetCIMGraph ( ) ;
109+
110+ string mapperOutputFileName = $ "{ rootFolder } /data/mapper_ouput.jsonl";
111+
112+ // Serialize to CIM 100 (jsonl file)
113+ var serializer = config . InitializeSerializer ( "CIM100" ) as IDAXSerializeable ;
114+
115+ var stopWatch = Stopwatch . StartNew ( ) ;
116+
117+ var result = ( ( CIM100Serializer ) serializer ) . GetIdentifiedObjects ( CIMMetaDataManager . Repository , graph . CIMObjects , true , true , true ) . ToList ( ) ;
118+
119+ using ( var destination = File . Open ( mapperOutputFileName , FileMode . Create ) )
120+ {
121+ using ( var source = new CsonSerializer ( ) . SerializeObjects ( result ) )
122+ {
123+ source . CopyTo ( destination ) ;
124+ }
125+ }
126+
127+ // Run validator
128+ string validatorOutputFileName = $ "{ rootFolder } /data/validator_ouput.jsonl";
129+
130+ await Validator . CLI . Program . Main ( new string [ ] { $ "--input-file={ mapperOutputFileName } ", $ "--output-file={ validatorOutputFileName } " } ) ;
131+
132+ // This is a hack for now, I'll handle it better in the future where it does not do a contains.
133+ var validatorLines = File . ReadAllLines ( validatorOutputFileName ) . Where ( x => x . Contains ( "\" Severity\" :\" Error\" " ) ) . ToList ( ) ;
134+
135+ // The input file should have no errors
136+ Assert . True ( validatorLines . Count == 2 , "Expected no validation errors, but apparently the validator disagree" ) ;
137+ }
138+ }
139+
86140 [ Fact ]
87141 public async Task MapNetSamToCim100 ( )
88142 {
0 commit comments