/** * @test */ public function ensureSendResponseHandlingForMessageResponse() { /** @var Payload $payload */ $payload = new Payload(['text' => 'test message', 'channel' => '#fntest']); /** @var RealTimeClient $client */ $client = $this->prophesize(RealTimeClient::class); /* @noinspection PhpParamsInspection */ $client->postMessage(Argument::any())->willReturn(true); $message = new Message(['icon_emoji' => 'foo']); $attachment = new Message\Attachment(['title' => 'Test']); $attachment->setTitle('Test'); $attachment->setTitleLink('http://www.google.de'); $attachment->setText('Test'); $attachment->setFallback('Test'); $attachment->setAuthorName('Test'); $attachment->setAuthorLink('http://www.google.de'); $attachment->setAuthorIcon('foo'); $attachment->setImageUrl('http://www.google.de'); $attachment->setThumbUrl('http://www.google.de'); $message->setText('Test'); $message->addAttachment($attachment); /** @var AbstractCommand $stub */ $stub = $this->getMockForAbstractClass(AbstractCommand::class, [$payload, $client->reveal()]); $stub->sendResponse($message); static::assertEquals('foo', $message->getIconEmoji()); $message->setIconEmoji('bar'); static::assertEquals('bar', $message->getIconEmoji()); $message->setAttachments([$attachment]); static::assertEquals([$attachment], $message->getAttachments()); }
/** * build a review message. * * @param \stdClass $item the review item * * @return Message */ protected function buildReviewMessage($item) { $created = substr($item->created, 0, 19); $branch = $item->branch; $text = ''; $message = new Message(); $attachment = new Message\Attachment(); switch ($GLOBALS['config']['projectPhase']) { case self::PROJECT_PHASE_STABILISATION: $attachment->setColor(Message\Attachment::COLOR_WARNING); $attachment->setPretext(':warning: *stabilisation phase*'); break; case self::PROJECT_PHASE_SOFT_FREEZE: $attachment->setColor(Message\Attachment::COLOR_DANGER); $attachment->setPretext(':no_entry: *soft merge freeze*'); break; case self::PROJECT_PHASE_CODE_FREEZE: $attachment->setColor(Message\Attachment::COLOR_DANGER); $attachment->setPretext(':no_entry: *merge freeze*'); break; case self::PROJECT_PHASE_FEATURE_FREEZE: $attachment->setColor(Message\Attachment::COLOR_DANGER); $attachment->setPretext(':no_entry: *FEATURE FREEZE*'); break; case self::PROJECT_PHASE_DEVELOPMENT: default: $attachment->setColor(Message\Attachment::COLOR_NOTICE); break; } $attachment->setTitle($item->subject); $attachment->setTitleLink('https://review.typo3.org/' . $item->_number); $text .= 'Branch: ' . $this->bold($branch) . ' | :calendar: ' . $this->bold($created) . ' | ID: ' . $this->bold($item->_number) . "\n"; $text .= '<https://review.typo3.org/' . $item->_number . '|:arrow_right: Goto Review>'; $attachment->setText($text); $attachment->setFallback($text); $message->setText(' '); $message->addAttachment($attachment); return $message; }