public function testAdd()
 {
     $customer = $this->prophesize(Customer::class);
     $this->storage->add($customer)->willReturn(123)->shouldBeCalled();
     $this->idSetter->setIdProperty($customer, 'id', 123)->shouldBeCalled();
     $this->object->add($customer->reveal());
 }
 public function testFindAllByCustomer()
 {
     $customer = $this->prophesize(Customer::class);
     $customer->getId()->willReturn(1234);
     $events = [$this->prophesize(CustomerEvent::class)->reveal()];
     $this->storage->findAllBy(['type' => OrderEvent::TYPE, 'customerId' => 1234], null, null)->willReturn($events);
     self::assertSame($events, $this->object->findAllByCustomer($customer->reveal()));
 }
 /**
  * @dataProvider findAllByCustomerProvider
  */
 public function testFindAllByCustomer($criteria, $customerId, $isAnonymousCustomer)
 {
     $result = [$this->createEventProphet()->reveal(), $this->createEventProphet()->reveal()];
     $this->storage->findAllBy($criteria, null, null)->willReturn($result);
     $customer = $this->prophesize(Customer::class);
     $customer->getId()->willReturn($customerId);
     $customer->isAnonymous()->willReturn($isAnonymousCustomer);
     self::assertSame($result, $this->object->findAllByCustomer($customer->reveal()));
 }
 /**
  * @dataProvider findAllWithReferrerProvider
  */
 public function testFindAllWithReferrer($customerIdField, $customerId, $isAnonymous)
 {
     $customer = $this->prophesize(Customer::class);
     $customer->getId()->willReturn($customerId);
     $customer->isAnonymous()->willReturn($isAnonymous);
     $events = [$this->prophesize(CustomerEvent::class)->reveal()];
     $this->storage->findAllBy(['type' => PageviewEvent::TYPE, 'data' => new ArrayValuesContains([PageviewEvent::REFERRER_FIELD => new NotEmpty()]), $customerIdField => $customerId])->willReturn($events);
     self::assertSame($events, $this->object->findAllWithReferrer($customer->reveal()));
 }