public function storageProvider() { $factory = $this->getFactory(); $size = 200; $mimeType = 'application/json'; list($data, $fileName) = $this->generateTestFile($size); $chunk1 = new Chunk(); $chunk1->setData(substr($data, 0, 100)); $chunk1->setHash($factory->createHash($chunk1->getData())); $chunk1->setLength(strlen($chunk1->getData())); $chunk2 = new Chunk(); $chunk2->setData(substr($data, 100, 100)); $chunk2->setHash($factory->createHash($chunk2->getData())); $chunk2->setLength(strlen($chunk2->getData())); $chunks = array($chunk1, $chunk2); $fileHash = $factory->createFileHash($fileName); return array(array($fileName, $data, $fileHash, $chunks, $mimeType, $size)); }
public function testUploadExists() { $data = 'This is my data'; $hash = $this->getFactory()->createHash($data); $chunk = new Chunk(); $chunk->setHash($hash); $chunk->setData($data); $factory = $this->prophesize(FactoryInterface::class); $factory->createHash($data)->willReturn($hash); $database = $this->prophesize(DatabaseInterface::class); $database->store(Argument::type(ChunkInterface::class))->should(new NoCallsPrediction()); $database->contains($hash, Chunk::class)->should(new CallPrediction())->willReturn(true); $database->fetch($hash, Chunk::class)->should(new NoCallsPrediction()); $manager = new ChunkManager($factory->reveal(), $database->reveal()); $result = $manager->upload($data); $this->assertEquals($chunk->getHash(), $result->getHash()); $this->assertEquals($chunk->getData(), $result->getData()); }