public function testUserDelayWithArrayThresholds2() { $throttle = m::mock('Cartalyst\\Sentinel\\Throttling\\IlluminateThrottleRepository[createModel]'); $throttle->setUserInterval(10); $throttle->setUserThresholds([5 => 3, 10 => 10]); $throttle->shouldReceive('createModel')->andReturn($model = m::mock('Cartalyst\\Sentinel\\Throttling\\EloquentThrottle[newQuery]')); $model->shouldReceive('newQuery')->andReturn($query = m::mock('Illuminate\\Database\\Eloquent\\Builder')); $query->shouldReceive('where')->with('type', 'user')->andReturn($query); $query->shouldReceive('where')->with('user_id', 1)->andReturn($query); $query->shouldReceive('where')->with('created_at', '>', m::on(function ($interval) { $this->assertEquals(time() - 10, $interval->getTimestamp(), '', 3); return true; }))->andReturn($query); $query->shouldReceive('get')->andReturn($models = m::mock('Illuminate\\Database\\Eloquent\\Collection')); $models->shouldReceive('count')->andReturn(11); $models->shouldReceive('last')->andReturn($last = new EloquentThrottle()); $last->getConnection()->getQueryGrammar()->shouldReceive('getDateFormat')->andReturn('Y-m-d H:i:s'); $last->created_at = Carbon::createFromTimestamp(time()); $user = m::mock('Cartalyst\\Sentinel\\Users\\UserInterface'); $user->shouldReceive('getUserId')->andReturn(1); $this->assertEquals(10, $throttle->userDelay($user), '', 3); }