private static async Task GenericTestMethodAsync(MessageRecognizer testObject, Encoding testEncoding, string sendMessage, string expectedMessage) { // Prepare test var generatedMessage = ""; var fakedByteStreamHandler = A.Fake <IByteStreamHandler>(); A.CallTo(fakedByteStreamHandler) .WithReturnType <Task <bool> >() .Where(info => info.Method.Name == nameof(IByteStreamHandler.SendAsync)) .Invokes(args => { var bytesToSend = (ArraySegment <byte>)args.Arguments[0] !; if (bytesToSend.Array == null) { return; } generatedMessage = testEncoding.GetString( bytesToSend.Array, bytesToSend.Offset, bytesToSend.Count); }) .Returns(Task.FromResult(true)); testObject.ByteStreamHandler = fakedByteStreamHandler; // Call test method var sendResult = await SendInternalAsync(testObject, sendMessage); // Check results Assert.IsTrue(sendResult, "Send returned false"); Assert.IsTrue(generatedMessage == expectedMessage, "Wrong message formatting"); }
private static Task <bool> SendInternalAsync(MessageRecognizer testObject, string sendMessage) { return(testObject.SendAsync(sendMessage.AsSpan())); }