setId($id)->getId()); $user = new User(); self::assertSame($user, $userGroup->setUser($user)->getUser()); $group = new Group(); $date = new \DateTimeImmutable('now'); self::assertSame($group, $userGroup->setGroup($group)->getGroup()); self::assertSame(UserMembership::ADMIN, $userGroup->setMembership(UserMembership::ADMIN)->getMembership()); // todelete when payment tests are done $payedAt = new \DateTimeImmutable('now'); self::assertSame($payedAt, $userGroup->setPayedAt($payedAt)->getPayedAt()); } public function testSetMember(): void { $userGroup = new UserGroup(); self::assertSame(UserMembership::INVITATION, $userGroup->getMembership()); $userGroup->setMember(); self::assertSame(UserMembership::MEMBER, $userGroup->getMembership()); $userGroup->setMembership(UserMembership::ADMIN); $userGroup->setMember(); // must stay admin self::assertTrue($userGroup->getMembership()->isAdmin()); } }