/** * Test the capacity limit of the bucket * * @test */ public function testCapacity() { $rate = new Rate(1, Rate::SECOND); $tokenBucket = new TokenBucket(10, $rate, new SingleProcessStorage()); $tokenBucket->bootstrap(); sleep(11); $this->assertTrue($tokenBucket->consume(10)); $this->assertFalse($tokenBucket->consume(1)); }
/** * After consuming too many, getTokens() should return the same as before. * * @test */ public function getTokensShouldReturnSameAfterConsumingTooMany() { $rate = new Rate(1, Rate::SECOND); $bucket = new TokenBucket(10, $rate, new SingleProcessStorage()); $bucket->bootstrap(10); try { $bucket->consume(11); $this->fail("Expected an exception."); } catch (\LengthException $e) { // expected } $this->assertEquals(10, $bucket->getTokens()); }