public static void StatWithoutNameAtStartThrows() { var publisher = new FakeStatsPublisher(); Assert.Throws <ArgumentNullException>(() => publisher.StartTimer(string.Empty)); publisher.CallCount.ShouldBe(0); publisher.BucketNames.ShouldBeEmpty(); }
public static async Task CanRecordTwoStatsAsync() { var publisher = new FakeStatsPublisher(); using (publisher.StartTimer("stat1")) { await DelayAsync(); } using (publisher.StartTimer("stat2")) { await DelayAsync(); } publisher.CallCount.ShouldBe(2); publisher.BucketNames.ShouldBe(new[] { "stat1", "stat2" }); PublisherAssertions.LastDurationIs(publisher, TimingConstants.DelayMilliseconds); }
public static void DefaultIsToKeepStatName() { var publisher = new FakeStatsPublisher(); using (var timer = publisher.StartTimer("initialStat")) { Delay(); } PublisherAssertions.SingleStatNameIs(publisher, "initialStat"); }
public static void ShouldNotDisposePublisherAfterStatSent() { var publisher = new FakeStatsPublisher(); using (publisher.StartTimer("stat")) { Delay(); } publisher.DisposeCount.ShouldBe(0); }
public static void StatNameCanBeAppended() { var publisher = new FakeStatsPublisher(); using (var timer = publisher.StartTimer("Some.")) { Delay(); timer.StatName += "More"; } PublisherAssertions.SingleStatNameIs(publisher, "Some.More"); }
public static void CanChangeStatNameDuringOperation() { var publisher = new FakeStatsPublisher(); using (var timer = publisher.StartTimer("initialStat")) { Delay(); timer.StatName = "changedValue"; } PublisherAssertions.SingleStatNameIs(publisher, "changedValue"); }
public static async Task CanRecordStatAsync() { var publisher = new FakeStatsPublisher(); using (publisher.StartTimer("statWithAsync")) { await DelayAsync(); } PublisherAssertions.SingleStatNameIs(publisher, "statWithAsync"); PublisherAssertions.LastDurationIs(publisher, TimingConstants.DelayMilliseconds); }
public static void CanRecordStat() { var publisher = new FakeStatsPublisher(); using (publisher.StartTimer("stat")) { Delay(); } PublisherAssertions.SingleStatNameIs(publisher, "stat"); PublisherAssertions.LastDurationIs(publisher, TimingConstants.DelayMilliseconds); }
public static void CanChangeStatName() { var publisher = new FakeStatsPublisher(); using (var timer = publisher.StartTimer("defaultName")) { Delay(); timer.StatName = "otherStat"; } PublisherAssertions.SingleStatNameIs(publisher, "otherStat"); PublisherAssertions.LastDurationIs(publisher, TimingConstants.DelayMilliseconds); }
public static void StatWithoutNameAtEndThrows() { var publisher = new FakeStatsPublisher(); Assert.Throws <InvalidOperationException>(() => { using (var timer = publisher.StartTimer("valid.Stat")) { Delay(); timer.StatName = null; } }); publisher.CallCount.ShouldBe(0); publisher.BucketNames.ShouldBeEmpty(); }
public static void StatNameIsInitialValueWhenExceptionIsThrown() { var publisher = new FakeStatsPublisher(); var failCount = 0; try { using (var timer = publisher.StartTimer("initialStat")) { Fail(); timer.StatName = "changedValue"; } } catch (Exception) { failCount++; } failCount.ShouldBe(1); PublisherAssertions.SingleStatNameIs(publisher, "initialStat"); }
public static void StatNameIsInitialValueWhenExceptionIsThrown() { var publisher = new FakeStatsPublisher(); var failCount = 0; try { using var timer = publisher.StartTimer("initialStat"); Fail(); timer.Bucket = "changedValue"; } #pragma warning disable CA1031 catch (InvalidOperationException) #pragma warning restore CA1031 { failCount++; } failCount.ShouldBe(1); PublisherAssertions.SingleStatNameIs(publisher, "initialStat"); }