@@ -28,10 +28,10 @@ func TestNewManagerAdapter(t *testing.T) {
2828func TestManagerAdapter_Starting (t * testing.T ) {
2929 t .Run ("empty registry initializes manager" , func (t * testing.T ) {
3030 reg := & mockBackgroundServiceRegistry {services : []registry.BackgroundService {}}
31- adapter := NewManagerAdapter (reg )
32- adapter . dependencyMap = map [ string ][] string {
33- BackgroundServices : {},
34- }
31+ adapter := NewManagerAdapter (reg ). WithDependencies ( map [ string ][] string {
32+ BackgroundServices : { Core },
33+ Core : {},
34+ })
3535
3636 ctx , cancel := context .WithTimeout (context .Background (), testTimeout )
3737 defer cancel ()
@@ -55,10 +55,10 @@ func TestManagerAdapter_Starting(t *testing.T) {
5555 reg := & mockBackgroundServiceRegistry {
5656 services : []registry.BackgroundService {enabledSvc , disabledSvc , namedSvc },
5757 }
58- adapter := NewManagerAdapter (reg )
59- adapter . dependencyMap = map [ string ][] string {
60- BackgroundServices : {},
61- }
58+ adapter := NewManagerAdapter (reg ). WithDependencies ( map [ string ][] string {
59+ BackgroundServices : { Core },
60+ Core : {},
61+ })
6262
6363 ctx , cancel := context .WithTimeout (context .Background (), testTimeout )
6464 defer cancel ()
@@ -110,8 +110,11 @@ func TestManagerAdapter_Starting(t *testing.T) {
110110
111111 // Pre-populate the dependency map with the service using the actual service name that will be used
112112 serviceName := "*adapter.mockNamedService"
113- adapter .dependencyMap [serviceName ] = []string {"custom-dependency" }
114- initialBgDeps := append ([]string {}, adapter .dependencyMap [BackgroundServices ]... )
113+ adapter .WithDependencies (map [string ][]string {
114+ serviceName : {BackgroundServices },
115+ Core : {},
116+ BackgroundServices : {Core },
117+ })
115118
116119 ctx , cancel := context .WithTimeout (context .Background (), testTimeout )
117120 defer cancel ()
@@ -121,18 +124,20 @@ func TestManagerAdapter_Starting(t *testing.T) {
121124 require .NotNil (t , adapter .manager )
122125
123126 // Verify the existing dependency was not overwritten
124- require .Equal (t , []string {"custom-dependency" }, adapter .dependencyMap [serviceName ])
127+ require .Equal (t , []string {BackgroundServices }, adapter .dependencyMap [serviceName ])
125128
126129 // Verify BackgroundServices dependencies were not modified (should not contain the service twice)
127130 finalBgDeps := adapter .dependencyMap [BackgroundServices ]
128- require .Equal (t , initialBgDeps , finalBgDeps )
131+ require .Equal (t , [] string { Core } , finalBgDeps )
129132 })
130133
131134 t .Run ("service without NamedService interface gets wrapped" , func (t * testing.T ) {
132- // Create a service that doesn't implement NamedService
133135 plainSvc := & mockService {}
134136 reg := & mockBackgroundServiceRegistry {services : []registry.BackgroundService {plainSvc }}
135- adapter := NewManagerAdapter (reg )
137+ adapter := NewManagerAdapter (reg ).WithDependencies (map [string ][]string {
138+ BackgroundServices : {Core },
139+ Core : {},
140+ })
136141
137142 ctx , cancel := context .WithTimeout (context .Background (), testTimeout )
138143 defer cancel ()
@@ -151,11 +156,13 @@ func TestManagerAdapter_Starting(t *testing.T) {
151156 })
152157
153158 t .Run ("service without CanBeDisabled interface is always enabled" , func (t * testing.T ) {
154- // Create a service that doesn't implement CanBeDisabled
155159 simpleSvc := & simpleBackgroundService {}
156160
157161 reg := & mockBackgroundServiceRegistry {services : []registry.BackgroundService {simpleSvc }}
158- adapter := NewManagerAdapter (reg )
162+ adapter := NewManagerAdapter (reg ).WithDependencies (map [string ][]string {
163+ BackgroundServices : {Core },
164+ Core : {},
165+ })
159166
160167 ctx , cancel := context .WithTimeout (context .Background (), testTimeout )
161168 defer cancel ()
@@ -168,36 +175,18 @@ func TestManagerAdapter_Starting(t *testing.T) {
168175 expectedServiceName := reflect .TypeOf (simpleSvc ).String ()
169176 require .Contains (t , adapter .dependencyMap , expectedServiceName )
170177 })
171-
172- t .Run ("real manager integration test" , func (t * testing.T ) {
173- testSvc := & mockService {}
174- reg := & mockBackgroundServiceRegistry {services : []registry.BackgroundService {testSvc }}
175- adapter := NewManagerAdapter (reg )
176-
177- ctx , cancel := context .WithTimeout (context .Background (), testTimeout )
178- defer cancel ()
179-
180- // Use the real manager - this tests actual integration
181- err := adapter .starting (ctx )
182- require .NoError (t , err )
183- require .NotNil (t , adapter .manager )
184-
185- // Verify the service was registered in dependency map
186- expectedServiceName := reflect .TypeOf (testSvc ).String ()
187- require .Contains (t , adapter .dependencyMap , expectedServiceName )
188- })
189178}
190179
191180func TestManagerAdapter_Running (t * testing.T ) {
192- t .Run ("runs with real manager" , func (t * testing.T ) {
181+ t .Run ("runs with manager" , func (t * testing.T ) {
193182 mock := & mockNamedService {name : "mock" }
194183 reg := & mockBackgroundServiceRegistry {services : []registry.BackgroundService {
195184 mock ,
196185 }}
197- adapter := NewManagerAdapter (reg )
198- adapter . dependencyMap = map [ string ][] string {
199- BackgroundServices : {},
200- }
186+ adapter := NewManagerAdapter (reg ). WithDependencies ( map [ string ][] string {
187+ BackgroundServices : { Core },
188+ Core : {},
189+ })
201190
202191 ctx , cancel := context .WithTimeout (context .Background (), testTimeout )
203192 defer cancel ()
@@ -208,25 +197,6 @@ func TestManagerAdapter_Running(t *testing.T) {
208197 err = adapter .AwaitRunning (ctx )
209198 require .NoError (t , err )
210199 })
211-
212- t .Run ("running delegates to manager" , func (t * testing.T ) {
213- reg := & mockBackgroundServiceRegistry {services : []registry.BackgroundService {}}
214- adapter := NewManagerAdapter (reg )
215-
216- ctx , cancel := context .WithTimeout (context .Background (), testTimeout )
217- defer cancel ()
218-
219- // Initialize with real manager
220- err := adapter .starting (ctx )
221- require .NoError (t , err )
222-
223- // Test running method directly - this will likely fail due to missing production modules
224- // but it covers the running method code path
225- err = adapter .running (ctx )
226- if err != nil {
227- require .Contains (t , err .Error (), "no such module" )
228- }
229- })
230200}
231201
232202func TestManagerAdapter_Stopping (t * testing.T ) {
@@ -262,7 +232,6 @@ func TestManagerAdapter_Stopping(t *testing.T) {
262232 ctx , cancel := context .WithTimeout (context .Background (), testTimeout )
263233 defer cancel ()
264234
265- // Initialize the manager first - need to go through starting to initialize manager
266235 err := adapter .starting (ctx )
267236 require .NoError (t , err )
268237 require .NotNil (t , adapter .manager )
0 commit comments