sAddAttachmentName = ''; $this->sRemoveAttachmentName = ''; $_REQUEST['transaction_id'] = 'test_transaction'; $_REQUEST['attachment_plugin'] = 'in_form'; $oDocument = new \ormDocument('Test', 'text/plain', 'test.txt'); $this->EventService_RegisterListener(EVENT_ADD_ATTACHMENT_TO_OBJECT, [$this, 'OnAddAttachment']); $this->EventService_RegisterListener(EVENT_REMOVE_ATTACHMENT_FROM_OBJECT, [$this, 'OnRemoveAttachment']); $oAttachment = MetaModel::NewObject('Attachment', [ 'item_class' => 'UserRequest', 'temp_id' => 'test_transaction', 'contents' => $oDocument, ]); $oAttachment->DBInsert(); $oTicket = $this->CreateTicket(1); $_REQUEST['removed_attachments'] = [$oAttachment->GetKey()]; $this->InvokeNonPublicStaticMethod(\AttachmentPlugIn::class, 'UpdateAttachments', [$oTicket]); $this->assertEquals('test.txt', $this->sAddAttachmentName); $this->assertEquals('test.txt', $this->sRemoveAttachmentName); } public function OnAddAttachment(EventData $oData) { $this->debug('OnAddAttachment'); $this->assertEquals('UserRequest', get_class($oData->Get('object'))); $oAttachment = $oData->Get('attachment'); /** @var \ormDocument $oDocument */ $oDocument = $oAttachment->Get('contents'); $this->sAddAttachmentName = $oDocument->GetFileName(); } public function OnRemoveAttachment(EventData $oData) { $this->debug('OnRemoveAttachment'); $this->assertEquals('UserRequest', get_class($oData->Get('object'))); $oAttachment = $oData->Get('attachment'); /** @var \ormDocument $oDocument */ $oDocument = $oAttachment->Get('contents'); $this->sRemoveAttachmentName = $oDocument->GetFileName(); } }