From 49c0936304511c32433ea4642be6d6e1e7446fff Mon Sep 17 00:00:00 2001 From: SteveU Date: Fri, 30 Aug 2024 10:29:27 +0200 Subject: [PATCH] concretize job status for Beamter and Bundeswehr --- src/Werte/Bedarf/Thema/Bedarfsthemen.php | 15 +++++- .../Status/BeamterAufWiderruf.php | 52 +++++++++++++++++++ .../Status/BeamterAufZeit.php | 52 +++++++++++++++++++ .../Status/BeamterAusschliesslichAufProbe.php | 52 +++++++++++++++++++ .../Taetigkeitsstatus/Status/Berufssoldat.php | 52 +++++++++++++++++++ .../Taetigkeitsstatus/Status/Zeitsoldat.php | 52 +++++++++++++++++++ .../Taetigkeitsstatus/Taetigkeitsstatus.php | 10 ++++ .../Werte/Bedarf/Thema/BedarfsthemenTest.php | 23 +++++++- .../Status/BeamterAufWiderrufTest.php | 39 ++++++++++++++ .../Status/BeamterAufZeitTest.php | 39 ++++++++++++++ .../BeamterAusschliesslichAufProbeTest.php | 39 ++++++++++++++ .../TaetigkeitsstatusTest.php | 12 ++++- 12 files changed, 433 insertions(+), 4 deletions(-) create mode 100644 src/Werte/Person/Taetigkeitsstatus/Status/BeamterAufWiderruf.php create mode 100644 src/Werte/Person/Taetigkeitsstatus/Status/BeamterAufZeit.php create mode 100644 src/Werte/Person/Taetigkeitsstatus/Status/BeamterAusschliesslichAufProbe.php create mode 100644 src/Werte/Person/Taetigkeitsstatus/Status/Berufssoldat.php create mode 100644 src/Werte/Person/Taetigkeitsstatus/Status/Zeitsoldat.php create mode 100644 tests/Werte/Person/Taetigkeitsstatus/Status/BeamterAufWiderrufTest.php create mode 100644 tests/Werte/Person/Taetigkeitsstatus/Status/BeamterAufZeitTest.php create mode 100644 tests/Werte/Person/Taetigkeitsstatus/Status/BeamterAusschliesslichAufProbeTest.php diff --git a/src/Werte/Bedarf/Thema/Bedarfsthemen.php b/src/Werte/Bedarf/Thema/Bedarfsthemen.php index 565e356..ac1e577 100644 --- a/src/Werte/Bedarf/Thema/Bedarfsthemen.php +++ b/src/Werte/Bedarf/Thema/Bedarfsthemen.php @@ -5,6 +5,9 @@ use Demv\Werte\AbstractProvider; use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufLebenszeit; use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufProbe; +use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufWiderruf; +use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufZeit; +use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAusschliesslichAufProbe; use Demv\Werte\Person\Taetigkeitsstatus\Status\Selbststaendiger; use Demv\Werte\Sparte\Sparten; use ReflectionClass; @@ -134,7 +137,17 @@ public function forTaetigkeit(?int $taetigkeitsId): array $spartenIds = $this->getSpartenIds($sparten); // remove Beamten Sparten, if not verbeamtet - if (!in_array($taetigkeitsId, [BeamterAufProbe::ID, BeamterAufLebenszeit::ID], true)) { + if (!in_array( + $taetigkeitsId, + [ + BeamterAufProbe::ID, + BeamterAufLebenszeit::ID, + BeamterAusschliesslichAufProbe::ID, + BeamterAufWiderruf::ID, + BeamterAufZeit::ID, + ], + true + )) { $spartenIds = array_filter($spartenIds, static function ($id) { return !in_array($id, [ Sparten\Privathaftpflicht::DIENSTHAFTPFLICHT, diff --git a/src/Werte/Person/Taetigkeitsstatus/Status/BeamterAufWiderruf.php b/src/Werte/Person/Taetigkeitsstatus/Status/BeamterAufWiderruf.php new file mode 100644 index 0000000..097f6ca --- /dev/null +++ b/src/Werte/Person/Taetigkeitsstatus/Status/BeamterAufWiderruf.php @@ -0,0 +1,52 @@ +appendMember(new Selbststaendiger()); $this->appendMember(new BeamterAufLebenszeit()); $this->appendMember(new BeamterAufProbe()); + $this->appendMember(new BeamterAufZeit()); + $this->appendMember(new BeamterAusschliesslichAufProbe()); + $this->appendMember(new BeamterAufWiderruf()); $this->appendMember(new AngestellterOeffentlDienst()); $this->appendMember(new Vorstand()); $this->appendMember(new Schulausbildung()); @@ -51,6 +59,8 @@ public function __construct() $this->appendMember(new GGFVersicherungsFrei()); $this->appendMember(new GGFVersicherungsPflichtig()); $this->appendMember(new Bundeswehr()); + $this->appendMember(new Berufssoldat()); + $this->appendMember(new Zeitsoldat()); } /** diff --git a/tests/Werte/Bedarf/Thema/BedarfsthemenTest.php b/tests/Werte/Bedarf/Thema/BedarfsthemenTest.php index f6dc247..87ca183 100644 --- a/tests/Werte/Bedarf/Thema/BedarfsthemenTest.php +++ b/tests/Werte/Bedarf/Thema/BedarfsthemenTest.php @@ -6,6 +6,9 @@ use Demv\Werte\Bedarf\Thema\Themen; use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufLebenszeit; use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufProbe; +use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufWiderruf; +use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAufZeit; +use Demv\Werte\Person\Taetigkeitsstatus\Status\BeamterAusschliesslichAufProbe; use Demv\Werte\Person\Taetigkeitsstatus\Status\Selbststaendiger; use Demv\Werte\Person\Taetigkeitsstatus\Taetigkeitsstatus; use Demv\Werte\Person\Taetigkeitsstatus\TaetigkeitsstatusInterface; @@ -285,7 +288,14 @@ public function testGetBedarfsthemenForVerbeamtet(): void new Themen\Diensthaftpflicht(), ]; - foreach ([BeamterAufLebenszeit::ID, BeamterAufProbe::ID] as $taetigkeit) { + foreach ( + [ + BeamterAufLebenszeit::ID, + BeamterAufProbe::ID, + BeamterAufWiderruf::ID, + BeamterAusschliesslichAufProbe::ID, + BeamterAufZeit::ID + ] as $taetigkeit) { $is = $this->getBedarfsthemen()->forTaetigkeit($taetigkeit); $this->assertCount(count($should), $is); foreach ($is as $thema) { @@ -330,7 +340,16 @@ public function testGetBedarfsthemenForPerson(): void ]; $taetigkeiten = array_filter((new Taetigkeitsstatus())->getAll(), static function ($taetigkeit) { - return !in_array($taetigkeit::ID, [BeamterAufLebenszeit::ID, BeamterAufProbe::ID, Selbststaendiger::ID], true); + return !in_array( + $taetigkeit::ID, + [ + BeamterAufLebenszeit::ID, + BeamterAufProbe::ID, + BeamterAufWiderruf::ID, + BeamterAusschliesslichAufProbe::ID, + BeamterAufZeit::ID, + Selbststaendiger::ID + ], true); }); foreach (array_merge([null], $taetigkeiten) as $taetigkeit) { diff --git a/tests/Werte/Person/Taetigkeitsstatus/Status/BeamterAufWiderrufTest.php b/tests/Werte/Person/Taetigkeitsstatus/Status/BeamterAufWiderrufTest.php new file mode 100644 index 0000000..df67cad --- /dev/null +++ b/tests/Werte/Person/Taetigkeitsstatus/Status/BeamterAufWiderrufTest.php @@ -0,0 +1,39 @@ +getTaetigkeitsstatus(); $this->specify('Alle Einträge wurden registriert', function () use ($provider): void { - $this->assertEquals(19, count($provider->getAll())); + $this->assertEquals(24, count($provider->getAll())); }); $this->specify('Alle Instanzen implementieren das gleiche Interface.', function () use ($provider): void { @@ -69,6 +74,9 @@ public function testEntries(): void $this->checkGetOne($provider, Arbeitssuchend::class, false, false); $this->checkGetOne($provider, BeamterAufLebenszeit::class, true, false); $this->checkGetOne($provider, BeamterAufProbe::class, true, false); + $this->checkGetOne($provider, BeamterAufZeit::class, true, false); + $this->checkGetOne($provider, BeamterAufWiderruf::class, true, false); + $this->checkGetOne($provider, BeamterAusschliesslichAufProbe::class, true, false); $this->checkGetOne($provider, Berufsausbildung::class, false, true); $this->checkGetOne($provider, Elternzeit::class, false, false); $this->checkGetOne($provider, Erwerbsunfaehig::class, false, false); @@ -83,6 +91,8 @@ public function testEntries(): void $this->checkGetOne($provider, GGFVersicherungsFrei::class, true, false); $this->checkGetOne($provider, GGFVersicherungsPflichtig::class, false, false); $this->checkGetOne($provider, Bundeswehr::class, true, true); + $this->checkGetOne($provider, Zeitsoldat::class, true, true); + $this->checkGetOne($provider, Berufssoldat::class, true, true); } /**