public void SendMessageStats_publishes_message_with_statsd_event_category()
        {
            Given_the_tab_with_mock_statsdpipe();
            And_message_with("MethodOneName", 5);

            StatsTab.SendMessageStats(MockMessage.Object, MockTabSetupContext.Object);

            MockMessageBroker.Verify(broker => broker.Publish
                                         (It.Is <StatsdNetMessage>(msg => msg.EventCategory != null && msg.EventCategory.Name.Equals("StatsdNet"))));
        }
        public void SendMessageStats_publishes_message_with_offset_of_stats_timing()
        {
            Given_the_tab_with_mock_statsdpipe();
            And_message_with("MethodOneName", 5);

            StatsTab.SendMessageStats(MockMessage.Object, MockTabSetupContext.Object);

            MockMessageBroker.Verify(broker => broker.Publish
                                         (It.Is <StatsdNetMessage>(msg => msg.Offset == TimeSpan.FromSeconds(8))));
        }
        public void SendMessageStats_publishes_message_with_duration_of_stats_timing()
        {
            Given_the_tab_with_mock_statsdpipe();
            And_message_with("MethodOneName", 5);

            StatsTab.SendMessageStats(MockMessage.Object, MockTabSetupContext.Object);

            MockMessageBroker.Verify(broker => broker.Publish
                                         (It.Is <StatsdNetMessage>(msg => msg.EventName.Equals("GlimpseStatsdNetTiming: MethodOneName") && msg.Duration.TotalMilliseconds > 0)));
        }
        public void SendMessageStats_ignores_stats_timing_messages()
        {
            Given_the_tab_with_mock_statsdpipe();
            var message = new StatsdNetMessage();

            StatsTab.SendMessageStats(message, MockTabSetupContext.Object);

            MockStatsdPipe.Verify(pipe => pipe.Timing(It.IsAny <string>(), It.IsAny <long>(), 1), Times.Never());
            MockTabSetupContext.Verify(ctx => ctx.GetTabStore(), Times.Never());
            MockMessageBroker.Verify(broker => broker.Publish(It.IsAny <StatsdNetMessage>()), Times.Never);
        }