/**
  * Retrieve bodies passed in as UploadPartContext objects and set the real hash, length, etc. values on the command
  *
  * @param Event $event Event emitted
  */
 public function onCommandBeforeSend(Event $event)
 {
     /** @var AbstractCommand $command */
     $command = $event['command'];
     $contentHash = $command->get('ContentSHA256');
     if ($contentHash === true) {
         /** @var EntityEnclosingRequest $request */
         $request = $command->getRequest();
         $upload = UploadPartGenerator::createSingleUploadPart($request->getBody());
         $request->addHeader('x-amz-content-sha256', $upload->getContentHash());
         if (!$command->get('checksum')) {
             $request->addHeader('x-amz-sha256-tree-hash', $upload->getChecksum());
         }
     } elseif (is_string($contentHash)) {
         $request = $command->getRequest();
         $request->addHeader('x-amz-content-sha256', $contentHash);
     }
 }
 public function testCanCreateSinglePart()
 {
     $part = UploadPartGenerator::createSingleUploadPart($this->bodyContent);
     $this->assertInstanceOf('Aws\\Glacier\\Model\\MultipartUpload\\UploadPart', $part);
     $this->assertEquals($this->bodySize, $part->getSize());
 }