public function testRenamesObject() { $sourceBucket = 'bucket'; $objectName = 'object.txt'; $newObjectName = 'new-name.txt'; $acl = 'private'; $key = base64_encode('abcd'); $hash = base64_encode('1234'); $this->connection->copyObject(['sourceBucket' => $sourceBucket, 'sourceObject' => $objectName, 'destinationBucket' => $sourceBucket, 'destinationObject' => $newObjectName, 'destinationPredefinedAcl' => $acl, 'httpOptions' => ['headers' => ['x-goog-encryption-algorithm' => 'AES256', 'x-goog-encryption-key' => $key, 'x-goog-encryption-key-sha256' => $hash]]])->willReturn(['bucket' => $sourceBucket, 'name' => $newObjectName, 'generation' => 1])->shouldBeCalledTimes(1); $this->connection->deleteObject(Argument::any())->willReturn([])->shouldBeCalledTimes(1); $object = new StorageObject($this->connection->reveal(), $objectName, $sourceBucket); $copiedObject = $object->rename($newObjectName, ['predefinedAcl' => $acl, 'encryptionKey' => $key, 'encryptionKeySHA256' => $hash]); $this->assertEquals($sourceBucket, $copiedObject->info()['bucket']); $this->assertEquals($newObjectName, $copiedObject->info()['name']); }