/**
  * Apply config filters
  *
  * @param RequestCollection $passwordResetRequestEventCollection
  * @param int $securityEventType
  * @param string $accountReference
  * @param int $longIp
  * @return RequestCollection
  */
 protected function applyFiltersByConfig(RequestCollection $passwordResetRequestEventCollection, $securityEventType, $accountReference, $longIp)
 {
     $limitMethod = $this->securityConfig->getLimitPasswordResetRequestsMethod($this->getScopeByEventType($securityEventType));
     switch ($limitMethod) {
         case ResetMethod::OPTION_BY_EMAIL:
             $passwordResetRequestEventCollection->filterByAccountReference($accountReference);
             break;
         case ResetMethod::OPTION_BY_IP:
             $passwordResetRequestEventCollection->filterByIp($longIp);
             break;
         case ResetMethod::OPTION_BY_IP_AND_EMAIL:
             $passwordResetRequestEventCollection->filterByIpOrAccountReference($longIp, $accountReference);
             break;
     }
     return $passwordResetRequestEventCollection;
 }
 /**
  * @return void
  */
 public function testFilterByAccountReference()
 {
     $reference = '12345';
     $this->collectionMock->expects($this->once())->method('addFieldToFilter')->with('account_reference', $reference)->willReturnSelf();
     $this->assertEquals($this->collectionMock, $this->collectionMock->filterByAccountReference($reference));
 }
 /**
  * filterByAccountReference() test
  *
  * @magentoDataFixture Magento/Security/_files/password_reset_request_events.php
  */
 public function testFilterByAccountReference()
 {
     $this->collectionModel->filterByAccountReference('*****@*****.**')->load();
     $this->assertEquals(1, $this->collectionModel->getSize());
 }