public void Handle_with_ClusterRemovedServerEvent_should_trace_event()
        {
            const string traceSourceName = "HandleClusterRemovedServerEventShould_Log_To_File";
            const string logFileName     = traceSourceName + "-log";
            var          @event          = new ClusterRemovedServerEvent(
                new ServerId(new ClusterId(), new IPEndPoint(IPAddress.Parse("1.2.3.4"), 42)),
                "The cake is a lie.",
                new TimeSpan(42));
            var expectedLogMessage =
                $"{TraceSourceEventHelper.Label(@event.ServerId.ClusterId)}: removed server " +
                $"{TraceSourceEventHelper.Format(@event.ServerId)} in {@event.Duration.TotalMilliseconds}ms. " +
                $"Reason: {@event.Reason}";
            var traceSource = CreateTraceSource(logFileName, logFileName);
            var subject     = new TraceSourceSdamEventSubscriber(traceSource);

            subject.Handle(@event);
            var log = ReadLog(traceSource, logFileName);

            log.Should().Contain(expectedLogMessage);
        }
 public static void Handle(this TraceSourceSdamEventSubscriber subject, ClusterRemovedServerEvent @event)
 => Reflector.Invoke(subject, "Handle", @event);