public void GetSemaphoreForGroup_GetsANullSemaphoreWhenGroupingToNull()
        {
            var groupThrottler = new GroupThrottler<FakeEndpoint>(e => null, 1);

            var endpoint = new FakeEndpoint();

            var semaphore = groupThrottler.GetSemaphoreForGroup(endpoint);

            semaphore.ShouldBeNull();
        }
        public void GetSemaphoreForGroup_GetsSameSemaphoreForSameGrouping()
        {
            var groupThrottler = new GroupThrottler<FakeEndpoint>(e => e.Host, 1);

            var endpoint1 = new FakeEndpoint { Host = "1" };
            var endpoint2 = new FakeEndpoint { Host = "1" };

            var semaphore1 = groupThrottler.GetSemaphoreForGroup(endpoint1);
            var semaphore2 = groupThrottler.GetSemaphoreForGroup(endpoint2);

            semaphore1.ShouldBe(semaphore2);
        }