public void MarkCommandFailure_BeforeFirstSnapshot_GetsIncludedInSnapshot()
        {
            var metrics = new StandardCommandMetrics(
                GroupKey.Named("Test"),
                new TransientConfigurableValue<long>(30000),
                new TransientConfigurableValue<long>(1000),
                new IgnoringStats());
            metrics.MarkCommandFailure();

            var snapshot = metrics.GetSnapshot();
            Assert.Equal(1, snapshot.Total);
            Assert.Equal(100, snapshot.ErrorPercentage);
        }
        private MetricsSnapshot SnapshotFor(int success, int failure)
        {
            var metrics = new StandardCommandMetrics(
                GroupKey.Named("Test"),
                new TransientConfigurableValue<long>(10000),
                new TransientConfigurableValue<long>(0),
                new IgnoringStats()); // Don't cache snapshots.
            for (var i = 0; i < success; i++)
            {
                metrics.MarkCommandSuccess();
            }

            for (var i = 0; i < failure; i++)
            {
                metrics.MarkCommandFailure();
            }
            return metrics.GetSnapshot();
        }