Attachments should be retrievable
This commit is contained in:
parent
3cec244e15
commit
c58867577f
@ -19,6 +19,10 @@ class AttachmentRetriever {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getAttachmentContentsForTicket($id, $heskSettings) {
|
function getAttachmentContentsForTicket($id, $heskSettings) {
|
||||||
|
$attachment = $this->attachmentGateway->getAttachmentById($id, $heskSettings);
|
||||||
|
$contents = base64_encode($this->fileReader->readFromFile(
|
||||||
|
$attachment->savedName, $heskSettings['attach_dir']));
|
||||||
|
|
||||||
|
return $contents;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -7,11 +7,10 @@ class FileReader {
|
|||||||
/**
|
/**
|
||||||
* @param $name string - The file name (including extension)
|
* @param $name string - The file name (including extension)
|
||||||
* @param $folder - The folder name (relative to the ROOT of the helpdesk)
|
* @param $folder - The folder name (relative to the ROOT of the helpdesk)
|
||||||
* @param $contents string - The contents of the file to write
|
* @returns string - The contents of the file to write
|
||||||
* @return int The file size, in bytes
|
|
||||||
* @throws \Exception When the file fails to save
|
* @throws \Exception When the file fails to save
|
||||||
*/
|
*/
|
||||||
function readFromFile($name, $folder, $contents) {
|
function readFromFile($name, $folder) {
|
||||||
// __DIR__ === '/{ROOT}/api/DataAccess/Files
|
// __DIR__ === '/{ROOT}/api/DataAccess/Files
|
||||||
$location = __DIR__ . "/../../../{$folder}/{$name}";
|
$location = __DIR__ . "/../../../{$folder}/{$name}";
|
||||||
$fileContents = file_get_contents($location);
|
$fileContents = file_get_contents($location);
|
||||||
|
@ -18,14 +18,34 @@ class AttachmentRetrieverTest extends TestCase {
|
|||||||
/* @var $attachmentRetriever AttachmentRetriever */
|
/* @var $attachmentRetriever AttachmentRetriever */
|
||||||
private $attachmentRetriever;
|
private $attachmentRetriever;
|
||||||
|
|
||||||
|
/* @var $heskSettings array */
|
||||||
|
private $heskSettings;
|
||||||
|
|
||||||
protected function setUp() {
|
protected function setUp() {
|
||||||
$this->attachmentGateway = $this->createMock(AttachmentGateway::class);
|
$this->attachmentGateway = $this->createMock(AttachmentGateway::class);
|
||||||
$this->fileReader = $this->createMock(FileReader::class);
|
$this->fileReader = $this->createMock(FileReader::class);
|
||||||
|
$this->heskSettings = array('attach_dir' => 'attachments');
|
||||||
|
|
||||||
$this->attachmentRetriever = new AttachmentRetriever($this->attachmentGateway, $this->fileReader);
|
$this->attachmentRetriever = new AttachmentRetriever($this->attachmentGateway, $this->fileReader);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItGetsTheAttachmentFromTheFilesystem() {
|
function testItGetsTheMetadataFromTheGateway() {
|
||||||
|
//-- Arrange
|
||||||
|
$attachmentMeta = new Attachment();
|
||||||
|
$attachmentMeta->savedName = '5';
|
||||||
|
$attachmentContents = 'string';
|
||||||
|
$expectedContents = base64_encode($attachmentContents);
|
||||||
|
$this->attachmentGateway->method('getAttachmentById')
|
||||||
|
->with(4, $this->heskSettings)
|
||||||
|
->willReturn($attachmentMeta);
|
||||||
|
$this->fileReader->method('readFromFile')
|
||||||
|
->with('5', $this->heskSettings['attach_dir'])
|
||||||
|
->willReturn($attachmentContents);
|
||||||
|
|
||||||
|
//-- Act
|
||||||
|
$actualContents = $this->attachmentRetriever->getAttachmentContentsForTicket(4, $this->heskSettings);
|
||||||
|
|
||||||
|
//-- Assert
|
||||||
|
self::assertThat($actualContents, self::equalTo($expectedContents));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user