public DelegatingExecutionSummarySinkTests() { innerSink = Substitute.For <IMessageSinkWithTypes>(); innerSink.OnMessageWithTypes(null, null).ReturnsForAnyArgs(true); testMessage = Substitute.For <IMessageSinkMessage>(); }
public DelegatingExecutionSummarySinkTests() { innerSink = Substitute.For<IMessageSinkWithTypes>(); innerSink.OnMessageWithTypes(null, null).ReturnsForAnyArgs(true); testMessage = Substitute.For<IMessageSinkMessage>(); }
public bool OnMessage(IMessageSinkMessage?message) { if (message != null) { return(runnerSink.OnMessageWithTypes(message, GetMessageTypes(message))); } return(true); }
/// <inheritdoc/> public bool OnMessageWithTypes(IMessageSinkMessage message, HashSet <string> messageTypes) { var result = innerSink.OnMessageWithTypes(message, messageTypes); return(message.Dispatch <IErrorMessage>(messageTypes, args => Interlocked.Increment(ref errors)) && message.Dispatch <ITestAssemblyCleanupFailure>(messageTypes, args => Interlocked.Increment(ref errors)) && message.Dispatch <ITestAssemblyFinished>(messageTypes, HandleTestAssemblyFinished) && message.Dispatch <ITestCaseCleanupFailure>(messageTypes, args => Interlocked.Increment(ref errors)) && message.Dispatch <ITestClassCleanupFailure>(messageTypes, args => Interlocked.Increment(ref errors)) && message.Dispatch <ITestCleanupFailure>(messageTypes, args => Interlocked.Increment(ref errors)) && message.Dispatch <ITestCollectionCleanupFailure>(messageTypes, args => Interlocked.Increment(ref errors)) && message.Dispatch <ITestMethodCleanupFailure>(messageTypes, args => Interlocked.Increment(ref errors)) && result && !cancelThunk()); }
void SendLongRunningMessage() { var now = UtcNow; var longRunningTestCases = executingTestCases.Where(kvp => (now - kvp.Value) >= longRunningTime) .ToDictionary(k => k.Key, v => now - v.Value); if (longRunningTestCases.Count > 0) { // If they've subscribed for long running test messages, just give them one... if (LongRunningTestsEvent != null) { LongRunningTestsEvent.Invoke(new MessageHandlerArgs <ILongRunningTestsMessage>(new LongRunningTestsMessage(longRunningTime, longRunningTestCases))); } // ...otherwise, turn it into a diagnostic message, for older runners. else { var messages = longRunningTestCases.Select(pair => $"[Long Running Test] '{pair.Key.DisplayName}', Elapsed: {pair.Value:hh\\:mm\\:ss}"); var message = string.Join(Environment.NewLine, messages); diagnosticMessageSink?.OnMessageWithTypes(new DiagnosticMessage(message), DiagnosticMessageTypes); } } }
public override bool OnMessageWithTypes(IMessageSinkMessage message, HashSet <string> messageTypes) { var result = innerSink.OnMessageWithTypes(message, messageTypes); return(base.OnMessageWithTypes(message, messageTypes) && result); }
/// <inheritdoc/> public bool OnMessageWithTypes(IMessageSinkMessage message, HashSet <string> messageTypes) => inner.OnMessageWithTypes(message, messageTypes);
public bool OnMessage(IMessageSinkMessage message) => runnerSink.OnMessageWithTypes(message, GetMessageTypes(message));
/// <summary> /// Provides a simulation of <see cref="IMessageSink.OnMessage"/> for <see cref="IMessageSinkWithTypes"/>, /// to make it easier to directly dispatch messages from the runner. /// </summary> /// <param name="messageSink">The message sink</param> /// <param name="message">The message to be dispatched</param> /// <returns>The result of calling the message sink</returns> public static bool OnMessage(this IMessageSinkWithTypes messageSink, IMessageSinkMessage message) => messageSink.OnMessageWithTypes(message, MessageSinkAdapter.GetImplementedInterfaces(message));
public override bool OnMessageWithTypes(IMessageSinkMessage message, string[] messageTypes) { return(base.OnMessageWithTypes(message, messageTypes) && next.OnMessageWithTypes(message, messageTypes)); }
/// <inheritdoc/> public override bool OnMessageWithTypes(IMessageSinkMessage message, string[] messageTypes) { var result = base.OnMessageWithTypes(message, messageTypes); return(innerMessageSink.OnMessageWithTypes(message, messageTypes) || result); }