public static function assertEquals($expected, $actual, $message = '', $delta = 0, $maxDepth = 10) { if ($expected instanceof \CActiveRecord) { /** @var \CActiveRecord $expected */ self::assertNotNull($actual, 'Failed asserting that two ActiveRecords are equal. Second is null. ' . $message); self::assertTrue($expected->equals($actual), 'Failed asserting that two ActiveRecords are equal. ' . $message); } elseif ($actual instanceof \CActiveRecord) { /** @var \CActiveRecord $actual */ self::assertNotNull($expected, 'Failed asserting that two ActiveRecords are equal. First is null. ' . $message); self::assertTrue($actual->equals($expected), 'Failed asserting that two ActiveRecords are equal. ' . $message); } else { parent::assertEquals($expected, $actual, $message, $delta, $maxDepth); } }
/** * Uses imap to assert that an email with the specified subject is present in the specified * mailbox * @param CTestCase $owner * @param Credentials $credentials * @param string $subject unique email subject * @param int $tries number of imap request attempts */ public function assertEmailReceived($owner, Credentials $credentials, $subject, $tries = 1) { Yii::import('application.tests.components.EmailTestingUtil'); $emailTestUtil = new EmailTestingUtil(); $emailTestUtil->credentials = $credentials; $owner->assertTrue($emailTestUtil->open()); $stream = $emailTestUtil->getStream(); $searchString = 'SUBJECT "' . $subject . '"'; for ($i = 0; $i < $tries; $i++) { $uids = imap_search($stream, $searchString, SE_UID); if ($uids) { break; } sleep(3); } $owner->assertTrue(is_array($uids)); $owner->assertEquals(1, count($uids)); $emailTestUtil->close(); }