@@ -287,6 +287,28 @@ public void How_Autofac_Owned_works()
287
287
Assert . IsTrue ( dep . NestedDep . IsDisposed ) ;
288
288
}
289
289
290
+ [ Test ]
291
+ public void How_Autofac_handles_service_with_missing_dependency ( )
292
+ {
293
+ var builder = new ContainerBuilder ( ) ;
294
+ builder . RegisterType < NoDep > ( ) ;
295
+ var container = builder . Build ( ) ;
296
+
297
+ Assert . Throws < DependencyResolutionException > ( ( ) =>
298
+ container . Resolve < NoDep > ( ) ) ;
299
+ }
300
+
301
+ [ Test ]
302
+ public void How_Autofac_IEnumerable_handles_missing_service ( )
303
+ {
304
+ var builder = new ContainerBuilder ( ) ;
305
+ var container = builder . Build ( ) ;
306
+
307
+ var x = container . Resolve < IEnumerable < NoDep > > ( ) ;
308
+
309
+ Assert . IsEmpty ( x ) ;
310
+ }
311
+
290
312
[ Test ]
291
313
public void How_Autofac_IEnumerable_handles_service_with_missing_dependency ( )
292
314
{
@@ -320,6 +342,16 @@ public void How_DryIoc_handles_service_with_missing_dependency()
320
342
container . Resolve < NoDep > ( IfUnresolved . ReturnDefaultIfNotRegistered ) ) ;
321
343
}
322
344
345
+ [ Test ]
346
+ public void How_DryIoc_IEnumerable_handles_missing_service ( )
347
+ {
348
+ var container = new Container ( ) ;
349
+
350
+ var x = container . Resolve < IEnumerable < NoDep > > ( ) ;
351
+
352
+ Assert . IsEmpty ( x ) ;
353
+ }
354
+
323
355
[ Test ]
324
356
public void How_DryIoc_IEnumerable_handles_service_with_missing_dependency ( )
325
357
{
@@ -330,13 +362,19 @@ public void How_DryIoc_IEnumerable_handles_service_with_missing_dependency()
330
362
container . Resolve < IEnumerable < NoDep > > ( ) ) ;
331
363
}
332
364
365
+ [ Test ]
366
+ public void DryIoc_IEnumerable_may_exclude_service_with_missing_dependency ( )
367
+ {
368
+ var container = new Container ( ) ;
369
+ container . Register < NoDep > ( ) ;
370
+
371
+ container . Resolve < IEnumerable < NoDep > > ( IfUnresolved . ReturnDefault ) ;
372
+ }
373
+
333
374
public class NoDep
334
375
{
335
376
public ISomeDep Dep { get ; }
336
- public NoDep ( ISomeDep dep )
337
- {
338
- Dep = dep ;
339
- }
377
+ public NoDep ( ISomeDep dep ) => Dep = dep ;
340
378
}
341
379
342
380
public interface ISomeDep { }
0 commit comments