/** * @param AddStorage $addStorage */ public function add(AddStorage $addStorage) { Assertion::integer($addStorage->storage); Assertion::integer($addStorage->quota); $storage = Storage::withUserDateUsageQuota(User::named($addStorage->name), new \DateTime(), Bytes::allocateUnits((int) $addStorage->storage), Quota::fromBytes(Bytes::allocateUnits((int) $addStorage->quota))); $this->storageRepository->add($storage); }
/** * @test */ public function shouldReturnDateSeparatelyOnJsonSerialize() { $dateTime = new \DateTime("2015-12-31 23:50:01"); $storage = Storage::withUserDateUsageQuota(User::named('username'), $dateTime, Bytes::allocateUnits(0), Quota::fromBytes(Bytes::allocateUnits(1))); $serializedStorage = $storage->jsonSerialize(); $this->assertSame('2015', $serializedStorage['year']); $this->assertSame('12', $serializedStorage['month']); $this->assertSame('31', $serializedStorage['day']); $this->assertSame('23', $serializedStorage['hour']); $this->assertSame('50', $serializedStorage['minute']); }
/** * @test */ public function shouldIterate() { $collection = $this->createCollection([TeraBytes::allocateUnits(1), GigaBytes::allocateUnits(1), MegaBytes::allocateUnits(1), KiloBytes::allocateUnits(1), Bytes::allocateUnits(1)]); $i = 0; foreach ($collection as $key => $bytes) { $this->assertSame($i, $key); $this->assertInstanceOf(Bytes::class, $bytes); $i++; } $this->assertSame(5, $i); }
public function listOfAddingUnits() { return [[KiloBytes::allocateUnits(1), KiloBytes::allocateUnits(1), KiloBytes::allocateUnits(2)], [MegaBytes::allocateUnits(1), MegaBytes::allocateUnits(1), MegaBytes::allocateUnits(2)], [GigaBytes::allocateUnits(1), GigaBytes::allocateUnits(1), GigaBytes::allocateUnits(2)], [TeraBytes::allocateUnits(1), TeraBytes::allocateUnits(1), TeraBytes::allocateUnits(2)], [Bytes::allocateUnits(1), KiloBytes::allocateUnits(1), Bytes::allocateUnits(1025)], [KiloBytes::allocateUnits(1), MegaBytes::allocateUnits(1), KiloBytes::allocateUnits(1025)], [MegaBytes::allocateUnits(1), GigaBytes::allocateUnits(1), MegaBytes::allocateUnits(1025)], [GigaBytes::allocateUnits(1), TeraBytes::allocateUnits(1), GigaBytes::allocateUnits(1025)]]; }
/** * @test */ public function shouldConvertBytesToTeraBytes() { $bytes = Bytes::allocateUnits(1 * 1024 * 1024 * 1024 * 1024); $this->assertEquals($bytes->teraBytes()->units(), 1); }
/** * @param array $row * @param string $unitOfMeasurement * @return Storage */ private function mapStorageUsageRowToStorage($row, $unitOfMeasurement = 'b') { $bytes = Bytes::allocateUnits((int) $row['usage']); switch ($unitOfMeasurement) { case 'gb': $bytes = $bytes->gigaBytes(); break; case 'mb': $bytes = $bytes->megaBytes(); break; case 'kb': $bytes = $bytes->kiloBytes(); break; } return Storage::withUserDateUsageQuota(User::named($row['username']), \DateTime::createFromFormat("Y-m-d H:i:s", $row['created']), $bytes, Quota::fromBytes(Bytes::allocateUnits((int) $row['maximumusage']))); }
/** * @test */ public function shouldReturnNumberOfBytesWhenUnitIsCalledFromByteClass() { $bytes = Bytes::allocateUnits(1); $this->assertSame(1, $bytes->units()); }
/** * @param Bytes $bytes * @return Bytes */ private static function findLargestUnitOfMeasurementPossible(Bytes $bytes) { $tb = TeraBytes::allocateBytes($bytes); if (!$tb->hasZeroBytes()) { return $tb; } $gb = GigaBytes::allocateBytes($bytes); if (!$gb->hasZeroBytes()) { return $gb; } $mb = MegaBytes::allocateBytes($bytes); if (!$mb->hasZeroBytes()) { return $mb; } $kb = KiloBytes::allocateBytes($bytes); if (!$kb->hasZeroBytes()) { return $kb; } return Bytes::allocateBytes($bytes); }
/** * @param StorageCollection $collection * @param string $username */ private function addStorageToCollection(StorageCollection $collection, $username) { $collection->add(Storage::withUserDateUsageQuota(User::named($username), new \DateTime("2015-12-31 23:50:01"), Bytes::allocateUnits(0), Quota::fromBytes(Bytes::allocateUnits(1)))); }