/**
  * @param $result
  * @param UnitOfMeasurement $unitOfMeasurement
  * @return StorageCollection
  */
 private function parseResultIntoCollection($result, UnitOfMeasurement $unitOfMeasurement)
 {
     $storageCollection = new StorageCollection();
     while ($row = $result->fetch()) {
         $storageCollection->add($this->mapStorageUsageRowToStorage($row, $unitOfMeasurement->type()));
     }
     return $storageCollection;
 }
 /**
  * @param string $users
  * @param string $dateFrom
  * @param string $dateTo
  * @param string $unit
  * @return \JsonSerializable
  */
 public function getStorage($users, $dateFrom, $dateTo, $unit)
 {
     return $this->storageRepository->find($this->filterFactory->createFrom($users, $dateFrom, $dateTo), UnitOfMeasurement::fromString($unit));
 }
 /**
  * @test
  *
  * @dataProvider incorrectUnitsOfMeasurement
  *
  * @param $unitOfMeasurement
  */
 public function shouldNotAllowInvalidUnitsOfMeasurement($unitOfMeasurement)
 {
     $this->setExpectedException(InvalidArgumentException::class);
     UnitOfMeasurement::fromString($unitOfMeasurement);
 }