]> git.mxchange.org Git - friendica.git/commitdiff
Fixings & add tests
authorPhilipp <admin@philipp.info>
Tue, 19 Oct 2021 20:03:24 +0000 (22:03 +0200)
committerPhilipp <admin@philipp.info>
Thu, 21 Oct 2021 19:56:46 +0000 (21:56 +0200)
src/Contact/Introduction/Depository/Introduction.php
src/Contact/Introduction/Entity/Introduction.php
src/Contact/Introduction/Factory/Introduction.php
tests/src/Contact/Introduction/Factory/IntroductionTest.php [new file with mode: 0644]

index 3a4498cf3a7e04ac623d6cf4842075e79a6bc56b..249252d44a8f095d3efe57e8c110889cb55da2bc 100644 (file)
@@ -68,7 +68,6 @@ class Introduction extends BaseDepository
        {
                return [
                        'uid'         => $introduction->uid,
-                       'fid'         => $introduction->fid,
                        'contact-id'  => $introduction->cid,
                        'suggest-cid' => $introduction->sid,
                        'knowyou'     => $introduction->knowyou ? 1 : 0,
index 119fd1e06c670355ae11b0457742e6cd70636e43..7485f8181bc84c15be3aec0b4f53339accae27d9 100644 (file)
@@ -26,7 +26,6 @@ use Friendica\BaseEntity;
 /**
  * @property-read int $uid
  * @property-read int $sid
- * @property-read int|null $fid
  * @property-read int|null $cid
  * @property-read bool $knowyou
  * @property-read bool $duplex
@@ -43,8 +42,6 @@ class Introduction extends BaseEntity
        /** @var int */
        protected $sid;
        /** @var int|null */
-       protected $fid;
-       /** @var int|null */
        protected $cid;
        /** @var bool */
        protected $knowyou;
@@ -64,7 +61,6 @@ class Introduction extends BaseEntity
        /**
         * @param int       $uid
         * @param int       $sid
-        * @param int|null  $fid
         * @param int|null  $cid
         * @param bool      $knowyou
         * @param bool      $duplex
@@ -74,18 +70,18 @@ class Introduction extends BaseEntity
         * @param bool      $ignore
         * @param int|null  $id
         */
-       public function __construct(int $uid, int $sid, ?int $fid, ?int $cid, bool $knowyou, bool $duplex, string $note, string $hash, \DateTime $datetime, bool $ignore, ?int $id)
+       public function __construct(int $uid, int $sid, ?int $cid, bool $knowyou, bool $duplex, string $note, string $hash, \DateTime $datetime, bool $ignore, ?int $id)
        {
-               $this->uid     = $uid;
-               $this->sid     = $sid;
-               $this->fid     = $fid;
-               $this->cid     = $cid;
-               $this->knowyou = $knowyou;
-               $this->duplex  = $duplex;
-               $this->note    = $note;
-               $this->hash    = $hash;
-               $this->ignore  = $ignore;
-               $this->id      = $id;
+               $this->uid      = $uid;
+               $this->sid      = $sid;
+               $this->cid      = $cid;
+               $this->knowyou  = $knowyou;
+               $this->duplex   = $duplex;
+               $this->note     = $note;
+               $this->hash     = $hash;
+               $this->datetime = $datetime;
+               $this->ignore   = $ignore;
+               $this->id       = $id;
        }
 
        /**
index 35275de7f16cb1651a943b64a4d078ab2a34eb5e..8aa5b7591a0e549550dced25316e1d20683cad64 100644 (file)
@@ -37,7 +37,6 @@ class Introduction extends BaseFactory implements ICanCreateFromTableRow
                return new Entity\Introduction(
                        $row['uid'] ?? 0,
                        $row['suggest-cid'] ?? 0,
-                       $row['fid'] ?? null,
                        $row['contact-id'] ?? null,
                        !empty($row['knowyou']),
                        !empty($row['duplex']),
@@ -51,18 +50,16 @@ class Introduction extends BaseFactory implements ICanCreateFromTableRow
 
        public function createNew(
                int $uid,
-               int $cid,
+               int $sid,
                string $note,
-               int $fid = null,
-               int $sid = null,
+               int $cid = null,
                bool $knowyou = false,
                bool $duplex = false
        ): Entity\Introduction {
                return $this->createFromTableRow([
                        'uid'         => $uid,
-                       'fid'         => $fid,
-                       'contact-id'  => $cid,
                        'suggest-cid' => $sid,
+                       'contact-id'  => $cid,
                        'knowyou'     => $knowyou,
                        'duplex'      => $duplex,
                        'note'        => $note,
@@ -72,7 +69,7 @@ class Introduction extends BaseFactory implements ICanCreateFromTableRow
                ]);
        }
 
-       public function createDummy(int $id): Entity\Introduction
+       public function createDummy(?int $id): Entity\Introduction
        {
                return $this->createFromTableRow(['id' => $id]);
        }
diff --git a/tests/src/Contact/Introduction/Factory/IntroductionTest.php b/tests/src/Contact/Introduction/Factory/IntroductionTest.php
new file mode 100644 (file)
index 0000000..9f45c54
--- /dev/null
@@ -0,0 +1,117 @@
+<?php
+
+namespace Friendica\Test\src\Contact\Introduction\Factory;
+
+use Friendica\Contact\Introduction\Factory\Introduction;
+use PHPUnit\Framework\TestCase;
+use Psr\Log\NullLogger;
+
+class IntroductionTest extends TestCase
+{
+       public function dataRow()
+       {
+               return [
+                       'default' => [
+                               'input' => [
+                                       'uid'         => 42,
+                                       'suggest-cid' => 13,
+                                       'contact-id'  => 24,
+                                       'knowyou'     => 1,
+                                       'duplex'      => 1,
+                                       'note'        => 'a note',
+                                       'hash'        => '12345',
+                                       'datetime'    => '1970-01-01 00:00:00',
+                                       'ignore'      => 0,
+                                       'id'          => 56,
+                               ],
+                               'assertion' => [
+                                       'uid'         => 42,
+                                       'suggest-cid' => 13,
+                                       'contact-id'  => 24,
+                                       'knowyou'     => true,
+                                       'duplex'      => true,
+                                       'note'        => 'a note',
+                                       'hash'        => '12345',
+                                       'datetime'    => new \DateTime('1970-01-01 00:00:00', new \DateTimeZone('UTC')),
+                                       'ignore'      => false,
+                                       'id'          => 56,
+                               ]
+                       ],
+                       'empty' => [
+                               'input' => [
+                               ],
+                               'assertion' => [
+                                       'uid'         => 0,
+                                       'suggest-cid' => 0,
+                                       'contact-id'  => null,
+                                       'knowyou'     => false,
+                                       'duplex'      => false,
+                                       'note'        => '',
+                                       'ignore'      => false,
+                                       'id'          => null,
+                               ]
+                       ],
+               ];
+       }
+
+       public function assertIntro(\Friendica\Contact\Introduction\Entity\Introduction $intro, array $assertion)
+       {
+               self::assertEquals($intro->id, $assertion['id'] ?? null);
+               self::assertEquals($intro->uid, $assertion['uid'] ?? 0);
+               self::assertEquals($intro->sid, $assertion['suggest-cid'] ?? 0);
+               self::assertEquals($intro->cid, $assertion['contact-id'] ?? null);
+               self::assertEquals($intro->knowyou, $assertion['knowyou'] ?? false);
+               self::assertEquals($intro->duplex, $assertion['duplex'] ?? false);
+               self::assertEquals($intro->note, $assertion['note'] ?? '');
+               if (isset($assertion['hash'])) {
+                       self::assertEquals($intro->hash, $assertion['hash']);
+               } else {
+                       self::assertIsString($intro->hash);
+               }
+               if (isset($assertion['datetime'])) {
+                       self::assertEquals($intro->datetime, $assertion['datetime']);
+               } else {
+                       self::assertInstanceOf(\DateTime::class, $intro->datetime);
+               }
+               self::assertEquals($intro->ignore, $assertion['ignore'] ?? false);
+       }
+
+       /**
+        * @dataProvider dataRow
+        */
+       public function testCreateFromTableRow(array $input, array $assertion)
+       {
+               $factory = new Introduction(new NullLogger());
+
+               $intro = $factory->createFromTableRow($input);
+               $this->assertIntro($intro, $assertion);
+       }
+
+       /**
+        * @dataProvider dataRow
+        */
+       public function testCreateNew(array $input, array $assertion)
+       {
+               $factory = new Introduction(new NullLogger());
+
+               $intro = $factory->createNew($input['uid'] ?? 0, $input['sid'] ?? 0, $input['note'] ?? '');
+
+               $this->assertIntro($intro, [
+                       'uid'  => $input['uid'] ?? 0,
+                       'sid'  => $input['sid'] ?? 0,
+                       'note' => $input['note'] ?? '',
+               ]);
+       }
+
+       /**
+        * @dataProvider dataRow
+        */
+       public function testCreateDummy(array $input, array $assertion)
+       {
+               $factory = new Introduction(new NullLogger());
+
+               $intro = $factory->createDummy($input['id'] ?? null);
+
+               $this->assertIntro($intro, ['id' => $input['id'] ?? null]);
+       }
+}