public void ResultOfMethodCallWithSameComplexTypeIsCached() { var testModule = new InlineModule(m => m.Bind <CacheMock>().ToSelf()); using (var kernel = new StandardKernel(new LinFuModule(), new CacheModule(), testModule)) { var obj = kernel.Get <CacheMock>(); CacheMock.ResetCounts(); string result; var simple1 = new SimpleObject(); var simple2 = new SimpleObject(); result = obj.Convert(simple1); Assert.That(result, Is.EqualTo(simple1.ToString())); Assert.That(CacheMock.ConvertCount, Is.EqualTo(1)); result = obj.Convert(simple1); Assert.That(result, Is.EqualTo(simple1.ToString())); Assert.That(CacheMock.ConvertCount, Is.EqualTo(1)); result = obj.Convert(simple2); Assert.That(result, Is.EqualTo(simple2.ToString())); Assert.That(CacheMock.ConvertCount, Is.EqualTo(2)); } }
public void ResultOfMethodCallWithSameArgumentsIsCached() { IModule testModule = new InlineModule(m => m.Bind <CacheMock>().ToSelf()); using (var kernel = new StandardKernel(new LinFuModule(), new CacheModule(), testModule)) { var obj = kernel.Get <CacheMock>(); CacheMock.ResetCounts(); int result; result = obj.Multiply(2, 3); Assert.That(result, Is.EqualTo(6)); Assert.That(CacheMock.MultiplyCount, Is.EqualTo(1)); result = obj.Multiply(2, 3); Assert.That(result, Is.EqualTo(6)); Assert.That(CacheMock.MultiplyCount, Is.EqualTo(1)); result = obj.Multiply(4, 4); Assert.That(result, Is.EqualTo(16)); Assert.That(CacheMock.MultiplyCount, Is.EqualTo(2)); } }
public void ResultOfMethodCallNotCachedForCallsToDifferentInstances() { var testModule = new InlineModule(m => m.Bind <CacheMock>().ToSelf()); using (var kernel = new StandardKernel(new LinFuModule(), new CacheModule(), testModule)) { var obj1 = kernel.Get <CacheMock>(); var obj2 = kernel.Get <CacheMock>(); CacheMock.ResetCounts(); int result; result = obj1.Multiply(2, 3); Assert.That(result, Is.EqualTo(6)); Assert.That(CacheMock.MultiplyCount, Is.EqualTo(1)); result = obj1.Multiply(2, 3); Assert.That(result, Is.EqualTo(6)); Assert.That(CacheMock.MultiplyCount, Is.EqualTo(1)); result = obj2.Multiply(2, 3); Assert.That(result, Is.EqualTo(6)); Assert.That(CacheMock.MultiplyCount, Is.EqualTo(2)); } }
public void ResultOfMethodCallWithNoArgumentsIsCached() { var testModule = new InlineModule(m => m.Bind <CacheMock>().ToSelf()); using (var kernel = new StandardKernel(new LinFuModule(), new CacheModule(), testModule)) { var obj = kernel.Get <CacheMock>(); CacheMock.ResetCounts(); int result; result = obj.GetValue(); Assert.That(result, Is.EqualTo(42)); Assert.That(CacheMock.GetValueCount, Is.EqualTo(1)); result = obj.GetValue(); Assert.That(result, Is.EqualTo(42)); Assert.That(CacheMock.GetValueCount, Is.EqualTo(1)); } }