Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
DummyWindow example
$limiter
->
consume
(
8
)
;
// consumer over the limit
$rateLimit
=
$limiter
->
consume
(
4
)
;
$start
=
microtime
(
true
)
;
$rateLimit
->
wait
(
)
; // wait 1 second
$this
->
assertEqualsWithDelta
(
$start
+ 1,
microtime
(
true
)
, 1
)
;
}
public
function
testWrongWindowFromCache
(
)
{
$this
->storage->
save
(
new
DummyWindow
(
)
)
;
$limiter
=
$this
->
createLimiter
(
)
;
$rateLimit
=
$limiter
->
consume
(
)
;
$this
->
assertTrue
(
$rateLimit
->
isAccepted
(
)
)
;
$this
->
assertEquals
(
9,
$rateLimit
->
getRemainingTokens
(
)
)
;
}
public
function
testBucketResilientToTimeShifting
(
)
{
$serverOneClock
=
microtime
(
true
)
- 1;
$serverTwoClock
=
microtime
(
true
)
+ 1;
$limiter
->
consume
(
8
)
;
// consumer over the limit
$rateLimit
=
$limiter
->
consume
(
4
)
;
$start
=
microtime
(
true
)
;
$rateLimit
->
wait
(
)
; // wait 1 minute
$this
->
assertEqualsWithDelta
(
$start
+ 60,
microtime
(
true
)
, 1
)
;
}
public
function
testWrongWindowFromCache
(
)
{
$this
->storage->
save
(
new
DummyWindow
(
)
)
;
$limiter
=
$this
->
createLimiter
(
)
;
$rateLimit
=
$limiter
->
consume
(
)
;
$this
->
assertTrue
(
$rateLimit
->
isAccepted
(
)
)
;
$this
->
assertEquals
(
9,
$rateLimit
->
getRemainingTokens
(
)
)
;
}
public
function
testWindowResilientToTimeShifting
(
)
{
$serverOneClock
=
microtime
(
true
)
- 1;
$serverTwoClock
=
microtime
(
true
)
+ 1;
$window
=
new
Window
(
'id', 300, 100,
$serverTwoClock
)
;