-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathTestExtensions_Should.cs
70 lines (57 loc) · 2.06 KB
/
TestExtensions_Should.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using System;
using Autofac;
using NSubstitute;
using Xunit;
namespace FluentAssertions.Autofac;
// ReSharper disable InconsistentNaming
public class TestExtensions_Should
{
[Fact]
public void Provide_builder()
{
var module = new SampleModule();
var builder = module.BuilderFor();
builder.Should().ShouldBeOfType<BuilderAssertions>();
builder.RegisterInstance(Substitute.For<IComparable>());
builder.RegisterInstance(Substitute.For<IConvertible>());
builder.RegisterInstance(Substitute.For<ICustomFormatter>());
var container = builder.Build();
container.Resolve<IDisposable>().Should().NotBeNull();
container.Resolve<IComparable>().Should().NotBeNull();
container.Resolve<IConvertible>().Should().NotBeNull();
container.Resolve<ICustomFormatter>().Should().NotBeNull();
}
[Fact]
public void Provide_generic_module_builder()
{
var builder = Module<SampleModule>.GetTestBuilder(b =>
{
// register module dependency substitutes here!
b.RegisterInstance(Substitute.For<IComparable>());
});
builder.Should().RegisterModule<SampleModule>();
var container = builder.Build();
container.Resolve<IDisposable>().Should().NotBeNull();
container.Resolve<IComparable>().Should().NotBeNull();
}
[Fact]
public void Provide_container()
{
var module = new SampleModule();
var container = module.Container(builder =>
{
builder.RegisterInstance(Substitute.For<IConvertible>());
builder.RegisterInstance(Substitute.For<ICustomFormatter>());
});
container.Resolve<IDisposable>().Should().NotBeNull();
container.Resolve<IConvertible>().Should().NotBeNull();
container.Resolve<ICustomFormatter>().Should().NotBeNull();
}
private class SampleModule : Module
{
protected override void Load(ContainerBuilder builder)
{
builder.RegisterInstance(Substitute.For<IDisposable>());
}
}
}