public function testConsecutiveConsume()
{
$rate = new Rate(1, Rate::SECOND);
$bucket = new TokenBucket(10, $rate, new SingleProcessStorage());
$consumer = new BlockingConsumer($bucket);
$bucket->bootstrap(10);
$time = microtime(true);
$consumer->consume(1);
$consumer->consume(2);
$consumer->consume(3);
$consumer->consume(4);
$this->assertEquals(microtime(true) - $time, 0);
$consumer->consume(1);
$this->assertEquals(microtime(true) - $time, 1);
sleep(3);
$time = microtime(true);
$consumer->consume(4);
$this->assertEquals(microtime(true) - $time, 1);
}