string $message,
?int $clearAt): DataResponse {
try {
- $status = $this->service->setCustomMessage($this->userId, $statusIcon, $message, $clearAt);
+ if ($message !== '') {
+ $status = $this->service->setCustomMessage($this->userId, $statusIcon, $message, $clearAt);
+ } else {
+ $this->service->clearMessage($this->userId);
+ $status = $this->service->findByUserId($this->userId);
+ }
return new DataResponse($this->formatStatus($status));
} catch (InvalidClearAtException $ex) {
$this->logger->debug('New user-status for "' . $this->userId . '" was rejected due to an invalid clearAt value "' . $clearAt . '"');
* @param Throwable|null $exception
* @param bool $expectLogger
* @param string|null $expectedLogMessage
+ * @param bool $expectSuccessAsReset
*
* @dataProvider setCustomMessageDataProvider
*/
bool $expectException,
?Throwable $exception,
bool $expectLogger,
- ?string $expectedLogMessage): void {
+ ?string $expectedLogMessage,
+ bool $expectSuccessAsReset = false): void {
$userStatus = $this->getUserStatus();
if ($expectException) {
->with('john.doe', $statusIcon, $message, $clearAt)
->willThrowException($exception);
} else {
- $this->service->expects($this->once())
- ->method('setCustomMessage')
- ->with('john.doe', $statusIcon, $message, $clearAt)
- ->willReturn($userStatus);
+ if ($expectSuccessAsReset) {
+ $this->service->expects($this->never())
+ ->method('setCustomMessage');
+ $this->service->expects($this->once())
+ ->method('clearMessage')
+ ->with('john.doe');
+ $this->service->expects($this->once())
+ ->method('findByUserId')
+ ->with('john.doe')
+ ->willReturn($userStatus);
+ } else {
+ $this->service->expects($this->once())
+ ->method('setCustomMessage')
+ ->with('john.doe', $statusIcon, $message, $clearAt)
+ ->willReturn($userStatus);
+
+ $this->service->expects($this->never())
+ ->method('clearMessage');
+ }
}
if ($expectLogger) {
public function setCustomMessageDataProvider(): array {
return [
['👨🏽💻', 'Busy developing the status feature', 500, true, false, null, false, null],
+ ['👨🏽💻', '', 500, true, false, null, false, null, true],
['👨🏽💻', 'Busy developing the status feature', 500, false, true, new InvalidClearAtException('Original exception message'), true,
'New user-status for "john.doe" was rejected due to an invalid clearAt value "500"'],
['👨🏽💻', 'Busy developing the status feature', 500, false, true, new InvalidStatusIconException('Original exception message'), true,