/**
  * @param Activity $activity
  */
 public function add(Activity $activity)
 {
     $day = $activity->dateTime()->format('Y-m-d');
     if (empty($this->list[$day]) || !$this->list[$day] instanceof Activity) {
         $this->list[$day] = $activity;
         return;
     }
     $this->list[$day]->increaseActivity($activity->activity());
 }
 /**
  * @test
  */
 public function shouldIterateThroughStorages()
 {
     $this->activityCollection->add(Activity::withUserDateActivityCount(User::named('test'), new \DateTime("2015-12-30 23:50:01"), 1));
     $this->activityCollection->add(Activity::withUserDateActivityCount(User::named('test'), new \DateTime("2015-12-31 23:50:01"), 1));
     $this->activityCollection->add(Activity::withUserDateActivityCount(User::named('test'), new \DateTime("2015-12-31 23:50:01"), 1));
     $dates = ['2015-12-30', '2015-12-31'];
     $i = 0;
     foreach ($this->activityCollection as $day => $activity) {
         $this->assertSame($dates[$i], $day);
         $this->assertInstanceOf(Activity::class, $activity);
         $i++;
     }
     $this->assertSame(2, $i);
 }
 /**
  * @param array $row
  * @return Activity
  */
 private function mapActivityRowToActivity($row)
 {
     $dateTime = new \DateTime();
     return Activity::withUserDateActivityCount(User::named($row['user']), $dateTime->setTimestamp((int) $row['timestamp']), (int) $row['activities']);
 }
 /**
  * @test
  * @dataProvider getInvalidActivities
  * @param $activityCount
  */
 public function shouldNotAllowCreationWithoutValidActivityCount($activityCount)
 {
     $this->setExpectedException(InvalidArgumentException::class);
     Activity::withUserDateActivityCount(User::named('test'), new \DateTime("2015-12-31 23:50:01"), $activityCount);
 }