Skip to content

Commit b7ec3fa

Browse files
committed
Show Funq's default behavior with tests
1 parent ad9f2b9 commit b7ec3fa

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed

tests/ServiceStack.ServiceHost.Tests/ServiceCreationTests.cs

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,5 +94,44 @@ public void Service_is_not_singleton(IRestClient client)
9494
Assert.That(response.RequestCount, Is.EqualTo(1));
9595
}
9696
}
97-
}
97+
98+
public class Foo
99+
{
100+
public static int GlobalId = 0;
101+
public int Id { get; set; }
102+
103+
public Foo()
104+
{
105+
this.Id = GlobalId++;
106+
}
107+
}
108+
109+
[Test]
110+
public void Funq_is_singleton_by_Default()
111+
{
112+
var container = new Container();
113+
container.Register(c => new Foo());
114+
115+
var foo = container.Resolve<Foo>();
116+
Assert.That(foo.Id, Is.EqualTo(0));
117+
foo = container.Resolve<Foo>();
118+
Assert.That(foo.Id, Is.EqualTo(0));
119+
foo = container.Resolve<Foo>();
120+
Assert.That(foo.Id, Is.EqualTo(0));
121+
}
122+
123+
[Test]
124+
public void Funq_does_transient_scope()
125+
{
126+
var container = new Container();
127+
container.Register(c => new Foo()).ReusedWithin(ReuseScope.None);
128+
129+
var foo = container.Resolve<Foo>();
130+
Assert.That(foo.Id, Is.EqualTo(0));
131+
foo = container.Resolve<Foo>();
132+
Assert.That(foo.Id, Is.EqualTo(1));
133+
foo = container.Resolve<Foo>();
134+
Assert.That(foo.Id, Is.EqualTo(2));
135+
}
136+
}
98137
}

0 commit comments

Comments
 (0)