From c93f37882d52e4f3d5b235956591b262171effb0 Mon Sep 17 00:00:00 2001 From: Steven Bal Date: Thu, 17 Oct 2024 17:04:19 +0200 Subject: [PATCH] :white_check_mark: [#246] Add tests for DigitaalAdres.is_standaard_adres --- .../api/tests/test_digitaal_adres.py | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/src/openklant/components/klantinteracties/api/tests/test_digitaal_adres.py b/src/openklant/components/klantinteracties/api/tests/test_digitaal_adres.py index d248faf7..81481514 100644 --- a/src/openklant/components/klantinteracties/api/tests/test_digitaal_adres.py +++ b/src/openklant/components/klantinteracties/api/tests/test_digitaal_adres.py @@ -2,6 +2,7 @@ from vng_api_common.tests import reverse from openklant.components.klantinteracties.constants import SoortDigitaalAdres +from openklant.components.klantinteracties.models import DigitaalAdres from openklant.components.klantinteracties.models.tests.factories.digitaal_adres import ( DigitaalAdresFactory, ) @@ -70,6 +71,7 @@ def test_create_digitaal_adres(self): self.assertEqual(data["verstrektDoorPartij"], None) self.assertEqual(data["adres"], "foobar@example.com") self.assertEqual(data["omschrijving"], "omschrijving") + self.assertEqual(data["isStandaardAdres"], False) with self.subTest("with_betrokkene_and_partij"): partij = PartijFactory.create() @@ -90,6 +92,38 @@ def test_create_digitaal_adres(self): self.assertEqual(data["adres"], "foobar@example.com") self.assertEqual(data["omschrijving"], "omschrijving") + def test_create_digitaal_adres_is_standaard_adres(self): + """ + Creating a DigitaalAdres with isStandaardAdres=True should make other existing + DigitaalAdressen no longer the default + """ + existing_adres = DigitaalAdresFactory.create( + is_standaard_adres=True, soort_digitaal_adres="email" + ) + + list_url = reverse("klantinteracties:digitaaladres-list") + data = { + "verstrektDoorBetrokkene": None, + "verstrektDoorPartij": None, + "soortDigitaalAdres": "email", + "adres": "adres", + "omschrijving": "omschrijving", + "isStandaardAdres": True, + } + + response = self.client.post(list_url, data) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + data = response.json() + + self.assertEqual(data["isStandaardAdres"], True) + + existing_adres.refresh_from_db() + new_adres = DigitaalAdres.objects.last() + + self.assertEqual(existing_adres.is_standaard_adres, False) + self.assertEqual(new_adres.is_standaard_adres, True) + def test_update_digitaal_adres(self): betrokkene, betrokkene2 = BetrokkeneFactory.create_batch(2) partij, partij2 = PartijFactory.create_batch(2) @@ -156,6 +190,49 @@ def test_update_digitaal_adres(self): self.assertEqual(data["adres"], "0721434543") self.assertEqual(data["omschrijving"], "changed") + def test_update_digitaal_adres_is_standaard_adres(self): + """ + Creating a DigitaalAdres with isStandaardAdres=True should make other existing + DigitaalAdressen no longer the default + """ + existing_adres = DigitaalAdresFactory.create( + is_standaard_adres=True, soort_digitaal_adres="email" + ) + betrokkene, betrokkene2 = BetrokkeneFactory.create_batch(2) + partij, partij2 = PartijFactory.create_batch(2) + digitaal_adres = DigitaalAdresFactory.create( + betrokkene=betrokkene, + partij=partij2, + soort_digitaal_adres="email", + adres="adres", + omschrijving="omschrijving", + ) + detail_url = reverse( + "klantinteracties:digitaaladres-detail", + kwargs={"uuid": str(digitaal_adres.uuid)}, + ) + + data = { + "verstrektDoorBetrokkene": {"uuid": str(betrokkene2.uuid)}, + "verstrektDoorPartij": {"uuid": str(partij.uuid)}, + "soortDigitaalAdres": "email", + "isStandaardAdres": True, + "adres": "changed", + "omschrijving": "changed", + } + + response = self.client.put(detail_url, data) + + data = response.json() + + self.assertEqual(data["isStandaardAdres"], True) + + existing_adres.refresh_from_db() + digitaal_adres.refresh_from_db() + + self.assertEqual(existing_adres.is_standaard_adres, False) + self.assertEqual(digitaal_adres.is_standaard_adres, True) + def test_partial_update_digitaal_adres(self): betrokkene = BetrokkeneFactory.create() partij = PartijFactory.create()