bandwidthThrottle\tokenBucket\BlockingConsumerTest::testConsecutiveConsume PHP Метод

testConsecutiveConsume() публичный Метод

Tests comsumption of cumulated tokens.
    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);
    }