public void PutTwoItems_DifferentInstanceGroupConsumer_ReturnsTwo()
        {
            // Arrange
            var now = DateTime.Now;

            this.dateTimeProviderMock
            .SetupGet(x => x.Now)
            .Returns(now);

            var metric1 = new ConsumerTelemetryMetric
            {
                InstanceName = Guid.NewGuid().ToString(),
                GroupId      = Guid.NewGuid().ToString(),
                ConsumerName = Guid.NewGuid().ToString(),
                SentAt       = now,
            };

            var metric2 = new ConsumerTelemetryMetric
            {
                InstanceName = Guid.NewGuid().ToString(),
                GroupId      = Guid.NewGuid().ToString(),
                ConsumerName = Guid.NewGuid().ToString(),
                SentAt       = now,
            };

            // Act
            this.target.Put(metric1);
            this.target.Put(metric2);

            // Assert
            this.target.Get().Should().HaveCount(2);
        }
        public void PutTwoItems_ExpiryOne_ReturnsOne()
        {
            // Arrange
            var now = new DateTime(2000, 01, 01);

            this.dateTimeProviderMock
            .SetupGet(x => x.Now)
            .Returns(now);

            var metric1 = new ConsumerTelemetryMetric
            {
                InstanceName = Guid.NewGuid().ToString(),
                GroupId      = Guid.NewGuid().ToString(),
                ConsumerName = Guid.NewGuid().ToString(),
                SentAt       = now,
            };

            this.target.Put(metric1);

            var metric2 = new ConsumerTelemetryMetric
            {
                InstanceName = Guid.NewGuid().ToString(),
                GroupId      = Guid.NewGuid().ToString(),
                ConsumerName = Guid.NewGuid().ToString(),
                SentAt       = now.AddSeconds(5),
            };

            this.dateTimeProviderMock
            .SetupGet(x => x.Now)
            .Returns(now.AddSeconds(2));

            // Act
            this.target.Put(metric2);

            // Assert
            this.target.Get().Should().HaveCount(1);
            this.target.Get().First().Should().Be(metric2);
        }