@@ -468,6 +468,29 @@ public void AnalyzeProjectBindings_MultipleConfigFiles_AnalyzesAll()
468468 Assert . AreEqual ( ControllerBindingStatus . AutoBind , binding2 . Status ) ;
469469 }
470470
471+ [ TestMethod ]
472+ public void AnalyzeProjectBindings_MultipleConfigFiles_WithSameController_AnalyzesAll ( )
473+ {
474+ // Arrange
475+ var project = new Project ( ) ;
476+ project . ConfigFiles . Add ( CreateConfigFileWithController ( "Board1/ SN-111" ) ) ;
477+ project . ConfigFiles . Add ( CreateConfigFileWithController ( "Board1/ SN-111" ) ) ;
478+
479+ SetupConnectedControllers ( new [ ]
480+ {
481+ ( "Board1" , "SN-111" ) ,
482+ ( "Board2" , "SN-333" )
483+ } ) ;
484+
485+ // Act
486+ var result = service . AnalyzeProjectBindings ( project ) ;
487+
488+ // Assert
489+ Assert . HasCount ( 1 , result ) ;
490+ var binding1 = result . Find ( b => b . OriginalController . Equals ( SerialNumber . CreateController ( "Board1/ SN-111" ) ) ) ;
491+ Assert . AreEqual ( ControllerBindingStatus . Match , binding1 . Status ) ;
492+ }
493+
471494 [ TestMethod ]
472495 public void PerformAutoBinding_MultipleConfigFiles_UpdatesAll ( )
473496 {
@@ -597,6 +620,48 @@ public void AnalyzeProjectBindings_MixedControllerTypes_AnalyzesAll()
597620
598621 #endregion
599622
623+ #region Test with multiple configFiles in project
624+ [ TestMethod ]
625+ public void AnalyzeProjectBindings_MultipleConfigFiles_SameController_AutoBind ( )
626+ {
627+ // Arrange
628+ var project = CreateProjectWithControllersAndMultipleConfigFiles ( new [ ]
629+ {
630+ "X1-Pro/ SN-1111111111"
631+ } ) ;
632+
633+ SetupConnectedController ( "X1-Pro" , "SN-9876543210" ) ;
634+
635+ // Act
636+ var result = service . AnalyzeProjectBindings ( project ) ;
637+
638+ // Assert
639+ Assert . HasCount ( 1 , result , "There should only be one controller binding" ) ;
640+ var binding1 = result . Find ( b => b . OriginalController . Equals ( SerialNumber . CreateController ( "X1-Pro/ SN-1111111111" ) ) ) ;
641+ Assert . AreEqual ( ControllerBindingStatus . AutoBind , binding1 . Status ) ;
642+ }
643+
644+ [ TestMethod ]
645+ public void AnalyzeProjectBindings_MultipleConfigFiles_SameController_Missing ( )
646+ {
647+ // Arrange
648+ var project = CreateProjectWithControllersAndMultipleConfigFiles ( new [ ]
649+ {
650+ "X1-Pro/ SN-1111111111"
651+ } ) ;
652+
653+ SetupConnectedController ( "Other Controller" , "JS-9876543210" ) ;
654+
655+ // Act
656+ var result = service . AnalyzeProjectBindings ( project ) ;
657+
658+ // Assert
659+ Assert . HasCount ( 1 , result , "There should only be one controller binding" ) ;
660+ var binding1 = result . Find ( b => b . OriginalController . Equals ( SerialNumber . CreateController ( "X1-Pro/ SN-1111111111" ) ) ) ;
661+ Assert . AreEqual ( ControllerBindingStatus . Missing , binding1 . Status ) ;
662+ }
663+ #endregion
664+
600665 #region Helper Methods
601666
602667 private Project CreateProjectWithController ( string moduleSerial )
@@ -613,6 +678,19 @@ private Project CreateProjectWithControllers(string[] moduleSerials)
613678 return project ;
614679 }
615680
681+ private Project CreateProjectWithControllersAndMultipleConfigFiles ( string [ ] moduleSerials )
682+ {
683+ var project = new Project ( ) ;
684+ var configFile = CreateConfigFileWithControllers ( moduleSerials ) ;
685+ project . ConfigFiles . Add ( configFile ) ;
686+
687+ configFile = CreateConfigFileWithControllers ( moduleSerials ) ;
688+ project . ConfigFiles . Add ( configFile ) ;
689+
690+ project . Sim = "msfs" ;
691+ return project ;
692+ }
693+
616694 private ConfigFile CreateConfigFileWithController ( string moduleSerial )
617695 {
618696 return CreateConfigFileWithControllers ( new [ ] { moduleSerial } ) ;
0 commit comments