Updated the number of invocations to wait for; Added Assert for each of the processor invocations (#1641)

This commit is contained in:
Utkarsh Umesan Pillai 2020-12-02 11:34:42 -08:00 committed by GitHub
parent a01063cdbc
commit 1fb76952cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 2 deletions

View File

@ -248,10 +248,21 @@ namespace OpenTelemetry.Instrumentation.Grpc.Tests
var rs = client.SayHello(new HelloRequest());
}
WaitForProcessorInvocations(processor, 6);
WaitForProcessorInvocations(processor, 7);
}
Assert.Equal(9, processor.Invocations.Count); // SetParentProcessor/OnStart/OnEnd * 3 (parent + gRPC client and server) + OnShutdown/Dispose called.
Assert.Equal(9, processor.Invocations.Count); // SetParentProvider + (OnStart + OnEnd) * 3 (parent, gRPC client, and server) + Shutdown + Dispose called.
Assert.Contains(processor.Invocations, invo => invo.Method.Name == "SetParentProvider");
Assert.Contains(processor.Invocations, GeneratePredicateForMoqProcessorActivity(nameof(processor.Object.OnStart), "parent"));
Assert.Contains(processor.Invocations, GeneratePredicateForMoqProcessorActivity(nameof(processor.Object.OnStart), OperationNameGrpcOut));
Assert.Contains(processor.Invocations, GeneratePredicateForMoqProcessorActivity(nameof(processor.Object.OnStart), OperationNameHttpRequestIn));
Assert.Contains(processor.Invocations, GeneratePredicateForMoqProcessorActivity(nameof(processor.Object.OnEnd), OperationNameHttpRequestIn));
Assert.Contains(processor.Invocations, GeneratePredicateForMoqProcessorActivity(nameof(processor.Object.OnEnd), OperationNameGrpcOut));
Assert.Contains(processor.Invocations, GeneratePredicateForMoqProcessorActivity(nameof(processor.Object.OnEnd), "parent"));
Assert.Contains(processor.Invocations, invo => invo.Method.Name == "OnShutdown");
Assert.Contains(processor.Invocations, invo => invo.Method.Name == nameof(processor.Object.Dispose));
var serverActivity = GetActivityFromProcessorInvocation(processor, nameof(processor.Object.OnEnd), OperationNameHttpRequestIn);
var clientActivity = GetActivityFromProcessorInvocation(processor, nameof(processor.Object.OnEnd), OperationNameGrpcOut);
@ -290,5 +301,10 @@ namespace OpenTelemetry.Instrumentation.Grpc.Tests
break;
}
}
private static Predicate<IInvocation> GeneratePredicateForMoqProcessorActivity(string methodName, string activityOperationName)
{
return invo => invo.Method.Name == methodName && (invo.Arguments[0] as Activity)?.OperationName == activityOperationName;
}
}
}