public void MultipleCachedInvocationsYieldsSingleActualInvocation() { var instance = new ForTestingPurposes(); var proxy = new PerInstanceAdapter <IForTestingPurposes>(For.Ever()) .Adapt(instance); proxy.MethodCall(0, "zero"); proxy.MethodCall(0, "zero"); proxy.MethodCall(0, "zero"); Assert.Equal <uint>(1, instance.MethodCallInvocationCount); }
public void SerializedResultMatchesInvokedMethodResult() { var eventCount = 0; object serializedResult = null; var proxy = new PerInstanceAdapter <IForTestingPurposes> ( Process.Lean(EventProcessor), CaptureOptions.SerializedResult ) .Adapt(new ForTestingPurposes()); var result = proxy.MethodCall(0, "zero"); Assert.Equal(1, eventCount); Assert.Equal(result, JsonConvert.DeserializeObject((string)serializedResult)); void EventProcessor(IDictionary <string, object> @event) { eventCount++; serializedResult = @event[nameof(CaptureOptions.SerializedResult)]; } }
public void DeclaringTypeMatchesInvokedMethod() { var eventCount = 0; object typeName = null; var proxy = new PerInstanceAdapter <IForTestingPurposes> ( Process.Lean(EventProcessor), CaptureOptions.DeclaringTypeName ) .Adapt(new ForTestingPurposes()); proxy.MethodCall(0, "zero"); Assert.Equal(1, eventCount); Assert.Equal(typeof(ForTestingPurposes).FullName, typeName); void EventProcessor(IDictionary <string, object> @event) { eventCount++; typeName = @event[nameof(CaptureOptions.DeclaringTypeName)]; } }