3 namespace Friendica\Test\src\Contact\Introduction\Factory;
5 use Friendica\Contact\Introduction\Factory\Introduction;
6 use PHPUnit\Framework\TestCase;
7 use Psr\Log\NullLogger;
9 class IntroductionTest extends TestCase
11 public function dataRow()
23 'datetime' => '1970-01-01 00:00:00',
35 'datetime' => new \DateTime('1970-01-01 00:00:00', new \DateTimeZone('UTC')),
57 public function assertIntro(\Friendica\Contact\Introduction\Entity\Introduction $intro, array $assertion)
59 self::assertEquals($intro->id, $assertion['id'] ?? null);
60 self::assertEquals($intro->uid, $assertion['uid'] ?? 0);
61 self::assertEquals($intro->sid, $assertion['suggest-cid'] ?? 0);
62 self::assertEquals($intro->cid, $assertion['contact-id'] ?? null);
63 self::assertEquals($intro->knowyou, $assertion['knowyou'] ?? false);
64 self::assertEquals($intro->duplex, $assertion['duplex'] ?? false);
65 self::assertEquals($intro->note, $assertion['note'] ?? '');
66 if (isset($assertion['hash'])) {
67 self::assertEquals($intro->hash, $assertion['hash']);
69 self::assertIsString($intro->hash);
71 if (isset($assertion['datetime'])) {
72 self::assertEquals($intro->datetime, $assertion['datetime']);
74 self::assertInstanceOf(\DateTime::class, $intro->datetime);
76 self::assertEquals($intro->ignore, $assertion['ignore'] ?? false);
80 * @dataProvider dataRow
82 public function testCreateFromTableRow(array $input, array $assertion)
84 $factory = new Introduction(new NullLogger());
86 $intro = $factory->createFromTableRow($input);
87 $this->assertIntro($intro, $assertion);
91 * @dataProvider dataRow
93 public function testCreateNew(array $input, array $assertion)
95 $factory = new Introduction(new NullLogger());
97 $intro = $factory->createNew($input['uid'] ?? 0, $input['sid'] ?? 0, $input['note'] ?? '');
99 $this->assertIntro($intro, [
100 'uid' => $input['uid'] ?? 0,
101 'sid' => $input['sid'] ?? 0,
102 'note' => $input['note'] ?? '',
107 * @dataProvider dataRow
109 public function testCreateDummy(array $input, array $assertion)
111 $factory = new Introduction(new NullLogger());
113 $intro = $factory->createDummy($input['id'] ?? null);
115 $this->assertIntro($intro, ['id' => $input['id'] ?? null]);