Skip to content

Commit c22ab60

Browse files
committed
more Autofac faq tests for the missing service and dependecies
1 parent 84b9e3c commit c22ab60

File tree

1 file changed

+42
-4
lines changed

1 file changed

+42
-4
lines changed

test/DryIoc.IssuesTests/Issue123_TipsForMigrationFromAutofac.cs

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,28 @@ public void How_Autofac_Owned_works()
287287
Assert.IsTrue(dep.NestedDep.IsDisposed);
288288
}
289289

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+
290312
[Test]
291313
public void How_Autofac_IEnumerable_handles_service_with_missing_dependency()
292314
{
@@ -320,6 +342,16 @@ public void How_DryIoc_handles_service_with_missing_dependency()
320342
container.Resolve<NoDep>(IfUnresolved.ReturnDefaultIfNotRegistered));
321343
}
322344

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+
323355
[Test]
324356
public void How_DryIoc_IEnumerable_handles_service_with_missing_dependency()
325357
{
@@ -330,13 +362,19 @@ public void How_DryIoc_IEnumerable_handles_service_with_missing_dependency()
330362
container.Resolve<IEnumerable<NoDep>>());
331363
}
332364

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+
333374
public class NoDep
334375
{
335376
public ISomeDep Dep { get; }
336-
public NoDep(ISomeDep dep)
337-
{
338-
Dep = dep;
339-
}
377+
public NoDep(ISomeDep dep) => Dep = dep;
340378
}
341379

342380
public interface ISomeDep { }

0 commit comments

Comments
 (0)