@@ -11,20 +11,22 @@ namespace BorgMate.Tests;
1111
1212public class RepositoryEditorViewModelTests
1313{
14+ private static BorgServiceFactory CreateFactory ( )
15+ {
16+ var wsl = new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ;
17+ var sshAgent = new SshAgentHelper ( Substitute . For < ILogger < SshAgentHelper > > ( ) , null , wsl ) ;
18+ return new BorgServiceFactory ( Substitute . For < ILoggerFactory > ( ) , new AppSettings ( ) , sshAgent , wsl ) ;
19+ }
20+
1421 private static RepositoryEditorViewModel CreateVm ( ) =>
15- new ( new BorgServiceFactory ( Substitute . For < ILoggerFactory > ( ) , new AppSettings ( ) , new SshAgentHelper ( Substitute . For < ILogger < SshAgentHelper > > ( ) , null , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) ,
16- Substitute . For < IStatusService > ( ) ,
17- new FilePickerService ( ) ) ;
22+ new ( CreateFactory ( ) , new FilePickerService ( ) ) ;
1823
1924 // --- Factory methods ---
2025
2126 [ Fact ]
2227 public void ForNew_SetsDefaults ( )
2328 {
24- var vm = RepositoryEditorViewModel . ForNew (
25- new BorgServiceFactory ( Substitute . For < ILoggerFactory > ( ) , new AppSettings ( ) , new SshAgentHelper ( Substitute . For < ILogger < SshAgentHelper > > ( ) , null , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) ,
26- Substitute . For < IStatusService > ( ) ,
27- new FilePickerService ( ) ) ;
29+ var vm = RepositoryEditorViewModel . ForNew ( CreateFactory ( ) , new FilePickerService ( ) ) ;
2830
2931 Assert . True ( vm . IsNew ) ;
3032 Assert . False ( vm . IsOpen ) ;
@@ -35,10 +37,7 @@ public void ForNew_SetsDefaults()
3537 [ Fact ]
3638 public void ForOpen_SetsDefaults ( )
3739 {
38- var vm = RepositoryEditorViewModel . ForOpen (
39- new BorgServiceFactory ( Substitute . For < ILoggerFactory > ( ) , new AppSettings ( ) , new SshAgentHelper ( Substitute . For < ILogger < SshAgentHelper > > ( ) , null , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) ,
40- Substitute . For < IStatusService > ( ) ,
41- new FilePickerService ( ) ) ;
40+ var vm = RepositoryEditorViewModel . ForOpen ( CreateFactory ( ) , new FilePickerService ( ) ) ;
4241
4342 Assert . True ( vm . IsOpen ) ;
4443 Assert . False ( vm . IsNew ) ;
@@ -60,10 +59,7 @@ public void ForEdit_LoadsRepoFields()
6059 repo . Schedule . Hour = 3 ;
6160 repo . SourceDirectories . Add ( "/home/user/docs" ) ;
6261
63- var vm = RepositoryEditorViewModel . ForEdit (
64- new BorgServiceFactory ( Substitute . For < ILoggerFactory > ( ) , new AppSettings ( ) , new SshAgentHelper ( Substitute . For < ILogger < SshAgentHelper > > ( ) , null , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) ,
65- Substitute . For < IStatusService > ( ) ,
66- new FilePickerService ( ) , repo ) ;
62+ var vm = RepositoryEditorViewModel . ForEdit ( CreateFactory ( ) , new FilePickerService ( ) , repo ) ;
6763
6864 Assert . False ( vm . IsNew ) ;
6965 Assert . False ( vm . IsOpen ) ;
@@ -118,9 +114,7 @@ public void Save_SshWithoutKeyPath_SetsSshKeyError()
118114 [ Fact ]
119115 public void Save_ValidLocal_SetsSaved ( )
120116 {
121- var vm = RepositoryEditorViewModel . ForNew (
122- new BorgServiceFactory ( Substitute . For < ILoggerFactory > ( ) , new AppSettings ( ) , new SshAgentHelper ( Substitute . For < ILogger < SshAgentHelper > > ( ) , null , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) ,
123- Substitute . For < IStatusService > ( ) , new FilePickerService ( ) ) ;
117+ var vm = RepositoryEditorViewModel . ForNew ( CreateFactory ( ) , new FilePickerService ( ) ) ;
124118 vm . Repository . IsLocal = true ;
125119 vm . Repository . Name = "Test" ;
126120 vm . RepoPath = "/data/borg" ;
@@ -134,9 +128,7 @@ public void Save_ValidLocal_SetsSaved()
134128 [ Fact ]
135129 public void Save_AppliesSourceDirectories ( )
136130 {
137- var vm = RepositoryEditorViewModel . ForNew (
138- new BorgServiceFactory ( Substitute . For < ILoggerFactory > ( ) , new AppSettings ( ) , new SshAgentHelper ( Substitute . For < ILogger < SshAgentHelper > > ( ) , null , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) ,
139- Substitute . For < IStatusService > ( ) , new FilePickerService ( ) ) ;
131+ var vm = RepositoryEditorViewModel . ForNew ( CreateFactory ( ) , new FilePickerService ( ) ) ;
140132 vm . Repository . IsLocal = true ;
141133 vm . Repository . Name = "Test" ;
142134 vm . RepoPath = "/data/borg" ;
@@ -151,9 +143,7 @@ public void Save_AppliesSourceDirectories()
151143 [ Fact ]
152144 public void Save_AppliesSchedule ( )
153145 {
154- var vm = RepositoryEditorViewModel . ForNew (
155- new BorgServiceFactory ( Substitute . For < ILoggerFactory > ( ) , new AppSettings ( ) , new SshAgentHelper ( Substitute . For < ILogger < SshAgentHelper > > ( ) , null , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) ,
156- Substitute . For < IStatusService > ( ) , new FilePickerService ( ) ) ;
146+ var vm = RepositoryEditorViewModel . ForNew ( CreateFactory ( ) , new FilePickerService ( ) ) ;
157147 vm . Repository . IsLocal = true ;
158148 vm . Repository . Name = "Test" ;
159149 vm . RepoPath = "/data/borg" ;
@@ -172,10 +162,7 @@ public void Save_AppliesSchedule()
172162 [ Fact ]
173163 public void Save_WithNoName_SetsNameError ( )
174164 {
175- var vm = RepositoryEditorViewModel . ForNew (
176- new BorgServiceFactory ( Substitute . For < ILoggerFactory > ( ) , new AppSettings ( ) , new SshAgentHelper ( Substitute . For < ILogger < SshAgentHelper > > ( ) , null , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) , new WslHelper ( Substitute . For < ILogger < WslHelper > > ( ) ) ) ,
177- Substitute . For < IStatusService > ( ) ,
178- new FilePickerService ( ) ) ;
165+ var vm = RepositoryEditorViewModel . ForNew ( CreateFactory ( ) , new FilePickerService ( ) ) ;
179166 vm . Repository . IsLocal = true ;
180167 vm . RepoPath = "/data/my-backups" ;
181168
0 commit comments