/**
  * @dataProvider dataValue
  * @param string $ref
  * @param array $expectedValue
  */
 public function testAnalyticsProviderValues($ref, array $expectedValue)
 {
     $doctrineHelper = $this->getContainer()->get('oro_entity.doctrine_helper');
     $customer = $this->getReference($ref);
     $className = 'OroCRM\\Bundle\\MagentoBundle\\Entity\\Customer';
     $recencyProvider = new CustomerRecencyProvider($doctrineHelper, $className);
     $frequencyProvider = new CustomerFrequencyProvider($doctrineHelper, $className);
     $monetaryProvider = new CustomerMonetaryProvider($doctrineHelper, $className);
     $this->assertEquals($expectedValue['recency'], $recencyProvider->getValue($customer));
     $this->assertEquals($expectedValue['frequency'], $frequencyProvider->getValue($customer));
     $this->assertEquals($expectedValue['monetary'], $monetaryProvider->getValue($customer));
 }
 /**
  * @dataProvider dataValue
  * @param string $dataChannelRef
  * @param array $expectedValue
  */
 public function testAnalyticsProviderValues($dataChannelRef, array $expectedValue)
 {
     $doctrineHelper = $this->getContainer()->get('oro_entity.doctrine_helper');
     /** @var Channel $dataChannel */
     $dataChannel = $this->getReference($dataChannelRef);
     $className = 'OroCRM\\Bundle\\MagentoBundle\\Entity\\Customer';
     $recencyProvider = new CustomerRecencyProvider($doctrineHelper, $className);
     $frequencyProvider = new CustomerFrequencyProvider($doctrineHelper, $className);
     $monetaryProvider = new CustomerMonetaryProvider($doctrineHelper, $className);
     $recencyData = $recencyProvider->getValues($dataChannel);
     $this->assertCount(1, $recencyData);
     $frequencyData = $frequencyProvider->getValues($dataChannel);
     $this->assertCount(1, $frequencyData);
     $monetaryData = $monetaryProvider->getValues($dataChannel);
     $this->assertCount(1, $monetaryData);
     foreach ($expectedValue as $customerReference => $data) {
         /** @var Customer $customer */
         $customer = $this->getReference($customerReference);
         $this->assertEquals($data['recency'], $recencyData[$customer->getId()]);
         $this->assertEquals($data['frequency'], $frequencyData[$customer->getId()]);
         $this->assertEquals($data['monetary'], $monetaryData[$customer->getId()]);
     }
 }