%PDF- %PDF-
Direktori : /www/varak.net/dmarc.varak.net/tests/classes/ |
Current File : /www/varak.net/dmarc.varak.net/tests/classes/StatisticsTest.php |
<?php namespace Liuch\DmarcSrg; use Liuch\DmarcSrg\Domains\Domain; use Liuch\DmarcSrg\Database\DatabaseController; class StatisticsTest extends \PHPUnit\Framework\TestCase { private $db = null; private $domain = null; public function setUp(): void { $this->db = $this->createStub(DatabaseController::class); $this->domain = new Domain('example.org', $this->db); } public function testFromTo(): void { $range = Statistics::fromTo( $this->domain, new DateTime('2020-01-11'), new DateTime('2021-01-01'), $this->db )->range(); $this->assertSame('2020-01-11T00:00:00+00:00', $range[0]->format('c')); $this->assertSame('2020-12-31T23:59:59+00:00', $range[1]->format('c')); } public function testLastWeek(): void { $range = Statistics::lastWeek($this->domain, 0, $this->db)->range(); $date1 = new DateTime('midnight monday last week'); $date2 = (clone $date1)->add(new \DateInterval('P1W'))->sub(new \DateInterval('PT1S')); $this->assertSame($date1->format('c'), $range[0]->format('c')); $this->assertSame($date2->format('c'), $range[1]->format('c')); } public function testLastWeekOffset(): void { $range = Statistics::lastWeek($this->domain, 5, $this->db)->range(); $date1 = (new DateTime('midnight monday last week'))->sub(new \DateInterval('P5W')); $date2 = (clone $date1)->add(new \DateInterval('P1W'))->sub(new \DateInterval('PT1S')); $this->assertSame($date1->format('c'), $range[0]->format('c')); $this->assertSame($date2->format('c'), $range[1]->format('c')); } public function testLastMonth(): void { $range = Statistics::lastMonth($this->domain, 0, $this->db)->range(); $date1 = new DateTime('midnight first day of last month'); $date2 = (clone $date1)->add(new \DateInterval('P1M'))->sub(new \DateInterval('PT1S')); $this->assertSame($date1->format('c'), $range[0]->format('c')); $this->assertSame($date2->format('c'), $range[1]->format('c')); } public function testLastMonthOffset(): void { $range = Statistics::lastMonth($this->domain, 7, $this->db)->range(); $date1 = (new DateTime('midnight first day of last month'))->sub(new \DateInterval('P7M')); $date2 = (clone $date1)->add(new \DateInterval('P1M'))->sub(new \DateInterval('PT1S')); $this->assertSame($date1->format('c'), $range[0]->format('c')); $this->assertSame($date2->format('c'), $range[1]->format('c')); } public function testLastNDays(): void { $range = Statistics::lastNDays($this->domain, 10, 0, $this->db)->range(); $date2 = new DateTime('midnight'); $date1 = (clone $date2)->sub(new \DateInterval('P10D')); $date2->sub(new \DateInterval('PT1S')); $this->assertSame($date1->format('c'), $range[0]->format('c')); $this->assertSame($date2->format('c'), $range[1]->format('c')); } public function testLastNDaysOffset(): void { $range = Statistics::lastNDays($this->domain, 10, 9, $this->db)->range(); $date2 = (new DateTime('midnight'))->sub(new \DateInterval('P9D')); $date1 = (clone $date2)->sub(new \DateInterval('P10D')); $date2->sub(new \DateInterval('PT1S')); $this->assertSame($date1->format('c'), $range[0]->format('c')); $this->assertSame($date2->format('c'), $range[1]->format('c')); } }