Skip to content

Commit

Permalink
[#239] Fix updatePartij and create tests
Browse files Browse the repository at this point in the history
  • Loading branch information
danielmursa-dev committed Jan 24, 2025
1 parent 91edb96 commit 8d4b20f
Show file tree
Hide file tree
Showing 2 changed files with 168 additions and 60 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -751,9 +751,14 @@ def update(self, instance, validated_data):
data=partij_identificator
)
partij_identificator_serializer.is_valid(raise_exception=True)
partij_identificator_serializer.create(
partij_identificator_serializer.validated_data
)
if "uuid" in partij_identificator:
PartijIdentificator.objects.filter(
uuid=partij_identificator["uuid"]
).update(partij=partij)
else:
partij_identificator_serializer.create(
partij_identificator_serializer.validated_data
)

if partij_identificatie:
serializer_class = self.discriminator.mapping[
Expand Down
217 changes: 160 additions & 57 deletions src/openklant/components/klantinteracties/api/tests/test_partijen.py
Original file line number Diff line number Diff line change
Expand Up @@ -1048,38 +1048,166 @@ def test_update_partij(self):
},
)

def test_update_partij_partijidentificator_empty_list(self):
partij = PartijFactory.create(
nummer="1298329191",
interne_notitie="interneNotitie",
voorkeurs_digitaal_adres=None,
voorkeurs_rekeningnummer=None,
soort_partij="persoon",
indicatie_geheimhouding=True,
voorkeurstaal="ndl",
indicatie_actief=True,
bezoekadres_nummeraanduiding_id="095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
bezoekadres_adresregel1="adres1",
bezoekadres_adresregel2="adres2",
bezoekadres_adresregel3="adres3",
bezoekadres_land="6030",
correspondentieadres_nummeraanduiding_id="095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
correspondentieadres_adresregel1="adres1",
correspondentieadres_adresregel2="adres2",
correspondentieadres_adresregel3="adres3",
correspondentieadres_land="6030",
def test_update_partij_partijidentificator(self):
partij = PartijFactory.create()
digitaal_adres2 = DigitaalAdresFactory.create()
partij_identificator = PartijIdentificatorFactory.create(
partij_identificator_code_objecttype="natuurlijk_persoon",
partij_identificator_code_soort_object_id="bsn",
partij_identificator_object_id="296648875",
partij_identificator_code_register="brp",
)
PersoonFactory.create(
partij=partij,
contactnaam_voorletters="P",
contactnaam_voornaam="Phil",
contactnaam_voorvoegsel_achternaam="",
contactnaam_achternaam="Bozeman",
detail_url = reverse(
"klantinteracties:partij-detail", kwargs={"uuid": str(partij.uuid)}
)
response = self.client.get(detail_url)
data = response.json()
self.assertEqual(partij.partijidentificator_set.all().count(), 0)

data = {
"digitaleAdressen": [{"uuid": str(digitaal_adres2.uuid)}],
"voorkeursDigitaalAdres": {"uuid": str(digitaal_adres2.uuid)},
"rekeningnummers": [],
"voorkeursRekeningnummer": None,
"soortPartij": "persoon",
"indicatieActief": True,
"partijIdentificatoren": [
{
"uuid": str(partij_identificator.uuid),
},
],
}

response = self.client.put(detail_url, data)
self.assertEqual(response.status_code, status.HTTP_200_OK)

data = response.json()
self.assertEqual(len(data["partijIdentificatoren"]), 1)
self.assertEqual(partij.partijidentificator_set.all().count(), 1)

self.assertEqual(
data["partijIdentificatoren"][0]["partijIdentificator"],
{
"codeObjecttype": partij_identificator.partij_identificator_code_objecttype,
"codeSoortObjectId": partij_identificator.partij_identificator_code_soort_object_id,
"objectId": partij_identificator.partij_identificator_object_id,
"codeRegister": partij_identificator.partij_identificator_code_register,
},
)

def test_update_replace_partij_partijidentificator(self):
partij = PartijFactory.create()
digitaal_adres2 = DigitaalAdresFactory.create()
rekeningnummer2 = RekeningnummerFactory.create()
partij_identificator_1 = PartijIdentificatorFactory.create(
partij=partij,
partij_identificator_code_objecttype="natuurlijk_persoon",
partij_identificator_code_soort_object_id="bsn",
partij_identificator_object_id="296648875",
partij_identificator_code_register="brp",
)
partij_identificator_2 = PartijIdentificatorFactory.create(
partij_identificator_code_objecttype="niet_natuurlijk_persoon",
partij_identificator_code_soort_object_id="rsin",
partij_identificator_object_id="296648875",
partij_identificator_code_register="hr",
)
detail_url = reverse(
"klantinteracties:partij-detail", kwargs={"uuid": str(partij.uuid)}
)
response = self.client.get(detail_url)
data = response.json()
self.assertEqual(len(data["partijIdentificatoren"]), 1)
self.assertEqual(partij.partijidentificator_set.all().count(), 1)

# Check simple GET
self.assertEqual(
data["partijIdentificatoren"][0]["partijIdentificator"],
{
"codeObjecttype": partij_identificator_1.partij_identificator_code_objecttype,
"codeSoortObjectId": partij_identificator_1.partij_identificator_code_soort_object_id,
"objectId": partij_identificator_1.partij_identificator_object_id,
"codeRegister": partij_identificator_1.partij_identificator_code_register,
},
)
# Update with specific partij_identificator (UUID)
data = {
"digitaleAdressen": [{"uuid": str(digitaal_adres2.uuid)}],
"voorkeursDigitaalAdres": {"uuid": str(digitaal_adres2.uuid)},
"rekeningnummers": [],
"voorkeursRekeningnummer": None,
"soortPartij": "persoon",
"indicatieActief": True,
"partijIdentificatoren": [
{
"uuid": str(partij_identificator_2.uuid),
},
],
}

response = self.client.put(detail_url, data)
self.assertEqual(response.status_code, status.HTTP_200_OK)

data = response.json()
self.assertEqual(len(data["partijIdentificatoren"]), 1)
self.assertEqual(partij.partijidentificator_set.all().count(), 1)

# Check new values
self.assertEqual(
data["partijIdentificatoren"][0]["partijIdentificator"],
{
"codeObjecttype": partij_identificator_2.partij_identificator_code_objecttype,
"codeSoortObjectId": partij_identificator_2.partij_identificator_code_soort_object_id,
"objectId": partij_identificator_2.partij_identificator_object_id,
"codeRegister": partij_identificator_2.partij_identificator_code_register,
},
)
partij_identificator_3 = PartijIdentificatorFactory.create(
partij_identificator_code_objecttype="niet_natuurlijk_persoon",
partij_identificator_code_soort_object_id="rsin",
partij_identificator_object_id="296648875",
partij_identificator_code_register="hr",
)

# Update with new partij_identificator and specific partij_identificator (UUID)
data = {
"digitaleAdressen": [{"uuid": str(digitaal_adres2.uuid)}],
"voorkeursDigitaalAdres": {"uuid": str(digitaal_adres2.uuid)},
"rekeningnummers": [],
"voorkeursRekeningnummer": None,
"soortPartij": "persoon",
"indicatieActief": True,
"partijIdentificatoren": [
{
"anderePartijIdentificator": "string",
"partijIdentificator": {
"codeObjecttype": "natuurlijk_persoon",
"codeSoortObjectId": "bsn",
"objectId": "296648875",
"codeRegister": "brp",
},
},
{
"uuid": str(partij_identificator_3.uuid),
},
],
}

response = self.client.put(detail_url, data)
self.assertEqual(response.status_code, status.HTTP_200_OK)

data = response.json()
self.assertEqual(len(data["partijIdentificatoren"]), 2)
self.assertEqual(partij.partijidentificator_set.all().count(), 2)
self.assertTrue(
str(partij_identificator_3.uuid)
in [
identificator["uuid"] for identificator in data["partijIdentificatoren"]
]
)

def test_update_partij_partijidentificator_empty_list(self):
partij = PartijFactory.create()
digitaal_adres2 = DigitaalAdresFactory.create()
partij_identificator = PartijIdentificatorFactory.create(
partij=partij,
partij_identificator_code_objecttype="natuurlijk_persoon",
Expand All @@ -1091,6 +1219,7 @@ def test_update_partij_partijidentificator_empty_list(self):
detail_url = reverse(
"klantinteracties:partij-detail", kwargs={"uuid": str(partij.uuid)}
)

response = self.client.get(detail_url)
data = response.json()
self.assertEqual(partij.partijidentificator_set.all().count(), 1)
Expand All @@ -1105,45 +1234,19 @@ def test_update_partij_partijidentificator_empty_list(self):
)

data = {
"nummer": "6427834668",
"interneNotitie": "changed",
"digitaleAdressen": [{"uuid": str(digitaal_adres2.uuid)}],
"voorkeursDigitaalAdres": {"uuid": str(digitaal_adres2.uuid)},
"rekeningnummers": [{"uuid": str(rekeningnummer2.uuid)}],
"voorkeursRekeningnummer": {"uuid": str(rekeningnummer2.uuid)},
"rekeningnummers": [],
"voorkeursRekeningnummer": None,
"soortPartij": "persoon",
"indicatieGeheimhouding": None,
"voorkeurstaal": "ger",
"indicatieActief": False,
"bezoekadres": {
"nummeraanduidingId": "f78sd8f-uh45-34km-2o3n-aasdasdasc9g",
"adresregel1": "changed",
"adresregel2": "changed",
"adresregel3": "changed",
"land": "3060",
},
"correspondentieadres": {
"nummeraanduidingId": "sd76f7sd-j4nr-a9s8-83ec-sad89f79a7sd",
"adresregel1": "changed",
"adresregel2": "changed",
"adresregel3": "changed",
"land": "3060",
},
"partijIdentificatie": {
"contactnaam": {
"voorletters": "V",
"voornaam": "Vincent",
"voorvoegselAchternaam": "",
"achternaam": "Bennette",
}
},
"indicatieActief": True,
"partijIdentificatoren": [],
}

response = self.client.put(detail_url, data)
self.assertEqual(response.status_code, status.HTTP_200_OK)
data = response.json()

data = response.json()
self.assertEqual(len(data["partijIdentificatoren"]), 0)
self.assertEqual(partij.partijidentificator_set.all().count(), 0)

Expand Down

0 comments on commit 8d4b20f

Please sign in to comment.