diff --git a/Makefile b/Makefile index 3eaa919a1..5212e7d90 100644 --- a/Makefile +++ b/Makefile @@ -63,6 +63,7 @@ migration-down: replenish migration-list seed: replenish @docker compose exec -T web ./web application:fixtures:load + @docker compose exec web ./web report:generate:full exec: docker compose exec -it web $(cmd) diff --git a/module/Application/src/Command/LoadFixturesCommand.php b/module/Application/src/Command/LoadFixturesCommand.php index 71e3ce512..8fb5858c6 100644 --- a/module/Application/src/Command/LoadFixturesCommand.php +++ b/module/Application/src/Command/LoadFixturesCommand.php @@ -21,7 +21,7 @@ class LoadFixturesCommand extends Command { private const array DATABASE_FIXTURES = [ - // './module/Database/test/Seeder', + './module/Database/test/Seeder', './module/User/test/Seeder', ]; @@ -72,7 +72,8 @@ protected function execute( $reportConnection->executeStatement('SET session_replication_role = \'replica\''); $reportExecutor->execute($reportLoader->getFixtures()); $reportConnection->executeStatement('SET session_replication_role = \'origin\''); - } catch (Throwable) { + } catch (Throwable $e) { + $output->writeln('' . $e->getMessage() . ''); } $output->writeln('Loaded fixtures!'); diff --git a/module/Database/test/Seeder/MeetingFixture.php b/module/Database/test/Seeder/MeetingFixture.php new file mode 100644 index 000000000..351fd5d4f --- /dev/null +++ b/module/Database/test/Seeder/MeetingFixture.php @@ -0,0 +1,29 @@ +setDate(new DateTime('2000-01-01')); + $meeting->setNumber(1); + $meeting->setType(MeetingTypes::BV); + + $manager->persist($meeting); + $this->addReference(self::REF_MEETING_BV1, $meeting); + + $manager->flush(); + } +} diff --git a/module/Database/test/Seeder/MemberFixture.php b/module/Database/test/Seeder/MemberFixture.php new file mode 100644 index 000000000..30c468d6c --- /dev/null +++ b/module/Database/test/Seeder/MemberFixture.php @@ -0,0 +1,117 @@ +setDate((int) $expiryDate->format('Y') + 1, 7, 1); + + /** Prospective member */ + $pros = new ProspectiveMember(); + $pros->setInitials('T.A.'); + $pros->setFirstName('Tara'); + $pros->setMiddleName(''); + $pros->setLastName('Testdata'); + $pros->setTueUsername('20190001'); + $pros->setBirth(new DateTime('2001-01-01')); + $pros->setEmail('tara@gewisdb.local'); + $pros->setPaid(15); + $pros->setChangedOn(new DateTime()); + $prosAddress = new Address(); + $prosAddress->setStreet('Teststraat'); + $prosAddress->setNumber('123'); + $prosAddress->setPostalCode('5600 AA'); + $prosAddress->setCity('Eindhoven'); + $prosAddress->setPhone('1'); + $prosAddress->setCountry(PostalRegions::Netherlands); + $pros->setAddress($prosAddress); + $pros->setStudy('Other'); + + $manager->persist($pros); + $this->addReference(self::REF_MEMBER_PROSPECTIVE, $pros); + + $checkoutSession = new CheckoutSession(); + $checkoutSession->setCheckoutId('123'); + $checkoutSession->setProspectiveMember($pros); + $checkoutSession->setCreated(new DateTime()); + $checkoutSession->setExpiration(new DateTime()); + $checkoutSession->setState(CheckoutSessionStates::Paid); + $manager->persist($checkoutSession); + + /** Student */ + $student = new Member(); + $student->setInitials('T.'); + $student->setFirstName('Timon'); + $student->setMiddleName('de'); + $student->setLastName('Teststudent'); + $student->setEmail('timon@gewisdb.local'); + $student->setBirth(new DateTime('2000-01-01')); + $student->setGeneration(2018); + $student->setType(MembershipTypes::Ordinary); + $student->setExpiration($expiryDate); + $student->setChangedOn(new DateTime()); + $student->setTueUsername('20180001'); + $student->setIsStudying(true); + + $manager->persist($student); + $this->addReference(self::REF_MEMBER_STUDENT, $student); + + /** External */ + $external = new Member(); + $external->setInitials('J.'); + $external->setFirstName('Joe'); + $external->setMiddleName(''); + $external->setLastName('Bloggs'); + $external->setEmail('joe@gewisdb.local'); + $external->setBirth(new DateTime('1999-01-01')); + $external->setGeneration(2017); + $external->setType(MembershipTypes::External); + $external->setExpiration($expiryDate); + $external->setChangedOn(new DateTime()); + $external->setIsStudying(false); + + $manager->persist($external); + $this->addReference(self::REF_MEMBER_EXTERNAL, $external); + + /** Graduate */ + $graduate = new Member(); + $graduate->setInitials('J.H.'); + $graduate->setFirstName('Jack'); + $graduate->setMiddleName('van'); + $graduate->setLastName('Lint'); + $graduate->setEmail('vanlint@gewisdb.local'); + $graduate->setBirth(new DateTime('1932-09-01')); + $graduate->setGeneration(1989); + $graduate->setType(MembershipTypes::Graduate); + $graduate->setExpiration($expiryDate); + $graduate->setMembershipEndsOn(new DateTime()); + $graduate->setChangedOn(new DateTime('1990-07-01')); + $graduate->setIsStudying(false); + + $manager->persist($graduate); + $this->addReference(self::REF_MEMBER_GRADUATE, $graduate); + + $manager->flush(); + } +} diff --git a/module/User/test/Seeder/UserFixture.php b/module/User/test/Seeder/UserFixture.php index 33ba5db54..7a2a7ae0d 100644 --- a/module/User/test/Seeder/UserFixture.php +++ b/module/User/test/Seeder/UserFixture.php @@ -10,6 +10,8 @@ class UserFixture extends AbstractFixture { + public const REF_ADMIN_USER = 'admin-user'; + public function load(ObjectManager $manager): void { $user = new User(); @@ -17,7 +19,7 @@ public function load(ObjectManager $manager): void $user->setPassword('$2y$13$smUYvCkgowlfHOFrogwcPONGDFmcylKHmTOZQAks9cDvs15tPxR2a'); // == gewisdbgewis $manager->persist($user); - $this->addReference('user-admin', $user); + $this->addReference(self::REF_ADMIN_USER, $user); $manager->flush(); }