Retrieving future faked instances
You can retrieve references of future faked objects
When to Use
When need a reference to a specific future fake.
Syntax
C# var handle = Isolate.Fake.AllInstances<type>(); // create instances of type var instance = Isolate.Verify.GetInstancesOf(handle)[indexOfInstance];
VB
dim handle = Isolate.Fake.AllInstances(Of <type>)()
' create instances of type
dim instance = Isolate.Verify.GetInstancesOf(handle)(indexOfInstance)
Samples
The following sample shows how to assert the state of the second instance created.
C# [TestMethod, Isolated] public void Fake_MultipleFutureInstances_CheckSecondInstanceId() { var handle = Isolate.Fake.AllInstances<UniqRefId>(Members.CallOriginal, ConstructorWillBe.Called); UniqRefId.Create2Instances(); var instance2 = Isolate.Verify.GetInstancesOf(handle)[1]; Assert.AreEqual(2, instance2.id); } //Under Test public class UniqRefId { public static int Counter = 0; public int id; public UniqRefId() { id = ++Counter; } public static void Create2Instances(); { new UniqRefId(); new UniqRefId(); } }
VB
<TestMethod, Isolated>
Public Sub Fake_MultipleFutureInstances_CheckSecondInstanceId()
Dim handle = Isolate.Fake.AllInstances(Of UniqRefId)(Members.CallOriginal, ConstructorWillBe.Called)
UniqRefId.Create2Instances()
Dim instance2 = Isolate.Verify.GetInstancesOf(handle)(1)
Assert.AreEqual(2, instance2.id)
End Sub
'Under Test
Public Class UniqRefId
Public Shared Counter As Integer = 0
Public id As Integer
Public Sub New()
id = System.Threading.Interlocked.Increment(Counter)
End Sub
Public Shared Sub Create2Instances()
Dim one = New UniqRefId()
Dim two = New UniqRefId()
End Sub
End Class