/**
  * @test
  * @dataProvider items
  */
 public function loading_whole_fixtures_from_cached_copy()
 {
     $this->givenSqliteDatabaseWasConnected();
     $this->loadWholeFixturesFromCachedCopy();
     ApplyDiscountUseCase::create($this->getEntityManager())->apply(0.5);
     $this->assertEquals(50, $this->findItemByName('teapot_1')->price());
     $this->assertEquals(200, $this->findItemByName('phone_1')->price());
 }
 /**
  * @test
  * @dataProvider items
  */
 public function purge_database_with_cached_purge_query()
 {
     $this->executedCachedQueryToPurgeDatabase();
     $this->add(new Teapot('brand-new-teapot', 100.0));
     $this->add(new Phone('amazing-phone', 400.0));
     ApplyDiscountUseCase::create($this->getEntityManager())->apply(0.5);
     $this->assertEquals(50, $this->findItemByName('brand-new-teapot')->price());
     $this->assertEquals(200, $this->findItemByName('amazing-phone')->price());
 }
 /** @test */
 public function it_applies_discount_on_items()
 {
     $this->givenDatabaseIsClear();
     $this->add(new Teapot('new-teapot', 100));
     $this->add(new Beer('tasty-beer', 50));
     $this->add(new Juice('orange', 30));
     ApplyDiscountUseCase::create($this->getEntityManager())->apply(0.5);
     $this->assertEquals(50, $this->findItemByName('new-teapot')->price());
     $this->assertEquals(25, $this->findItemByName('tasty-beer')->price());
     $this->assertEquals(15, $this->findItemByName('orange')->price());
 }