forked from getsentry/sentry-symfony
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCronJobFactoryTest.php
58 lines (51 loc) · 1.8 KB
/
CronJobFactoryTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
declare(strict_types=1);
namespace Sentry\SentryBundle\Tests\Cron;
use PHPUnit\Framework\TestCase;
use Sentry\MonitorConfig;
use Sentry\MonitorSchedule;
use Sentry\MonitorScheduleUnit;
use Sentry\SentryBundle\Monitor\MonitorFactory;
use Sentry\SentryBundle\Monitor\MonitorInterface;
class CronJobFactoryTest extends TestCase
{
public function testCronJob(): void
{
// Setup test
$factory = new MonitorFactory('test', 'test-release');
$monitorConfig = new MonitorConfig(
MonitorSchedule::crontab('*/5 * * * *'),
5,
30,
'UTC'
);
$cronJob = $factory->getMonitor('test-cronjob', $monitorConfig);
$this->assertInstanceOf(MonitorInterface::class, $cronJob);
// Create a CheckIn
$checkIn = $cronJob->inProgress();
$this->assertEquals('test', $checkIn->getEnvironment());
$this->assertEquals('test-release', $checkIn->getRelease());
$this->assertEquals('test-cronjob', $checkIn->getMonitorSlug());
}
public function testInterval(): void
{
// Setup test
$factory = new MonitorFactory('test', 'test-release');
$monitorConfig = new MonitorConfig(
MonitorSchedule::interval(
30,
MonitorScheduleUnit::minute()
),
5,
30,
'UTC'
);
$interval = $factory->getMonitor('test-interval', $monitorConfig);
$this->assertInstanceOf(MonitorInterface::class, $interval);
// Create a CheckIn
$checkIn = $interval->inProgress();
$this->assertEquals('test', $checkIn->getEnvironment());
$this->assertEquals('test-release', $checkIn->getRelease());
$this->assertEquals('test-interval', $checkIn->getMonitorSlug());
}
}