|
4 | 4 |
|
5 | 5 | namespace Keboola\NotificationClient\Tests\Requests\PostNotification; |
6 | 6 |
|
| 7 | +use Keboola\NotificationClient\Requests\PostNotification\FlowInfo; |
| 8 | +use Keboola\NotificationClient\Requests\PostNotification\JobInfo; |
7 | 9 | use Keboola\NotificationClient\Requests\PostNotification\ProjectWebhook; |
8 | 10 | use Keboola\NotificationClient\Requests\PostSubscription\WebhookRecipient; |
9 | 11 | use PHPUnit\Framework\TestCase; |
@@ -81,4 +83,60 @@ public function testJsonSerializeWithNullMessage(): void |
81 | 83 | $projectWebhook->jsonSerialize(), |
82 | 84 | ); |
83 | 85 | } |
| 86 | + |
| 87 | + public function testJsonSerializeWithFlowAndJob(): void |
| 88 | + { |
| 89 | + $recipient = new WebhookRecipient('https://example.com/webhook'); |
| 90 | + $projectId = '12345'; |
| 91 | + $projectName = 'Test Project'; |
| 92 | + $title = 'Test Notification'; |
| 93 | + $message = 'This is a test notification message'; |
| 94 | + $flow = new FlowInfo( |
| 95 | + 'flow-123', |
| 96 | + 'My Test Flow', |
| 97 | + 'https://connection.keboola.com/flows/123', |
| 98 | + ); |
| 99 | + $job = new JobInfo( |
| 100 | + 'job-123', |
| 101 | + 'https://connection.keboola.com/jobs/123', |
| 102 | + ); |
| 103 | + |
| 104 | + $projectWebhook = new ProjectWebhook( |
| 105 | + $recipient, |
| 106 | + $projectId, |
| 107 | + $projectName, |
| 108 | + $title, |
| 109 | + $message, |
| 110 | + $flow, |
| 111 | + $job, |
| 112 | + ); |
| 113 | + |
| 114 | + self::assertSame( |
| 115 | + [ |
| 116 | + 'type' => 'direct-project-webhook', |
| 117 | + 'recipient' => [ |
| 118 | + 'channel' => 'webhook', |
| 119 | + 'url' => 'https://example.com/webhook', |
| 120 | + ], |
| 121 | + 'data' => [ |
| 122 | + 'project' => [ |
| 123 | + 'id' => $projectId, |
| 124 | + 'name' => $projectName, |
| 125 | + ], |
| 126 | + 'title' => $title, |
| 127 | + 'message' => $message, |
| 128 | + 'flow' => [ |
| 129 | + 'id' => 'flow-123', |
| 130 | + 'name' => 'My Test Flow', |
| 131 | + 'url' => 'https://connection.keboola.com/flows/123', |
| 132 | + ], |
| 133 | + 'job' => [ |
| 134 | + 'id' => 'job-123', |
| 135 | + 'url' => 'https://connection.keboola.com/jobs/123', |
| 136 | + ], |
| 137 | + ], |
| 138 | + ], |
| 139 | + $projectWebhook->jsonSerialize(), |
| 140 | + ); |
| 141 | + } |
84 | 142 | } |
0 commit comments