Exemplo n.º 1
0
    def test_filter_telefoonnummer(self):
        KlantFactory.create(telefoonnummer="123")
        KlantFactory.create(telefoonnummer="321")
        url = reverse(Klant)

        response = self.client.get(url, {"telefoonnummer": "321"})

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        response_data = response.json()
        self.assertEqual(response_data["count"], 1)

        result = response_data["results"][0]
        self.assertEqual(result["telefoonnummer"], "321")
Exemplo n.º 2
0
    def test_filter_bedrijfsnaam(self):
        KlantFactory.create(bedrijfsnaam="123")
        KlantFactory.create(bedrijfsnaam="321")
        url = reverse(Klant)

        response = self.client.get(url, {"bedrijfsnaam": "321"})

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        response_data = response.json()
        self.assertEqual(response_data["count"], 1)

        result = response_data["results"][0]
        self.assertEqual(result["bedrijfsnaam"], "321")
Exemplo n.º 3
0
    def test_filter_bronorganisatie(self):
        KlantFactory.create(bronorganisatie="000000000")
        KlantFactory.create(bronorganisatie="123456782")
        url = reverse(Klant)

        response = self.client.get(url, {"bronorganisatie": "000000000"})

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        response_data = response.json()
        self.assertEqual(response_data["count"], 1)

        result = response_data["results"][0]
        self.assertEqual(result["bronorganisatie"], "000000000")
Exemplo n.º 4
0
    def test_filter_subject(self):
        KlantFactory.create(subject="https://example.com/1")
        KlantFactory.create(subject="https://example.com/2")

        url = reverse(Klant)

        response = self.client.get(url, {"subject": "https://example.com/2"})

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        response_data = response.json()
        self.assertEqual(response_data["count"], 1)

        result = response_data["results"][0]
        self.assertEqual(result["subject"], "https://example.com/2")
Exemplo n.º 5
0
    def test_filter_subject_type(self):
        KlantFactory.create(subject_type=KlantType.natuurlijk_persoon)
        KlantFactory.create(subject_type=KlantType.niet_natuurlijk_persoon)

        url = reverse(Klant)

        response = self.client.get(
            url, {"subject_type": KlantType.niet_natuurlijk_persoon})

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        response_data = response.json()
        self.assertEqual(response_data["count"], 1)

        result = response_data["results"][0]
        self.assertEqual(result["subjectType"],
                         KlantType.niet_natuurlijk_persoon)
Exemplo n.º 6
0
    def test_update_klant_nietnaturlijkpersoon(self):
        klant = KlantFactory.create(
            subject_type=KlantType.niet_natuurlijk_persoon, subject=SUBJECT)
        nietnatuurlijkpersoon = NietNatuurlijkPersoonFactory.create(
            klant=klant)
        buitenland = SubVerblijfBuitenlandFactory.create(
            nietnatuurlijkpersoon=nietnatuurlijkpersoon)
        detail_url = reverse(klant)
        data = self.client.get(detail_url).json()
        del data["url"]
        data.update({
            "voornaam": "New name",
            "subject": "",
            "subjectIdentificatie": {
                "statutaireNaam": "New name2",
                "subVerblijfBuitenland": {
                    "lndLandcode": "XXXX",
                    "lndLandnaam": "New land",
                },
            },
        })

        response = self.client.put(detail_url, data)

        self.assertEqual(response.status_code, status.HTTP_200_OK)

        klant.refresh_from_db()
        self.assertEqual(klant.voornaam, "New name")
        self.assertEqual(klant.subject, "")

        nietnatuurlijkpersoon.refresh_from_db()
        self.assertEqual(nietnatuurlijkpersoon.statutaire_naam, "New name2")

        buitenland.refresh_from_db()
        self.assertEqual(buitenland.lnd_landnaam, "New land")
Exemplo n.º 7
0
    def test_send_notif_delete_klant(self, mock_client):
        """
        Check if notifications will be send when Klant is deleted
        """
        client = mock_client.return_value
        klant = KlantFactory.create(subject_type=KlantType.natuurlijk_persoon)
        klant_url = get_operation_url("klant_delete", uuid=klant.uuid)

        response = self.client.delete(klant_url)

        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT,
                         response.data)

        client.create.assert_called_once_with(
            "notificaties",
            {
                "kanaal": "klanten",
                "hoofdObject": f"http://testserver{klant_url}",
                "resource": "klant",
                "resourceUrl": f"http://testserver{klant_url}",
                "actie": "destroy",
                "aanmaakdatum": "2018-09-07T00:00:00Z",
                "kenmerken": {
                    "subjectType": KlantType.natuurlijk_persoon
                },
            },
        )
Exemplo n.º 8
0
    def test_destroy_klant(self):
        klant = KlantFactory.create()
        detail_url = reverse(klant)

        response = self.client.delete(detail_url)

        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
        self.assertEqual(Klant.objects.count(), 0)
Exemplo n.º 9
0
    def test_cannot_read_without_correct_scope(self):
        klant = KlantFactory.create()
        urls = [
            reverse("klant-list"),
            reverse(klant),
        ]

        for url in urls:
            with self.subTest(url=url):
                self.assertForbidden(url, method="get")
Exemplo n.º 10
0
    def test_partial_update_klant_url(self):
        klant = KlantFactory.create(subject=SUBJECT, voornaam="old name")
        detail_url = reverse(klant)

        response = self.client.patch(detail_url, {"voornaam": "new name"})

        self.assertEqual(response.status_code, status.HTTP_200_OK)

        klant.refresh_from_db()

        self.assertEqual(klant.voornaam, "new name")
Exemplo n.º 11
0
    def test_partial_update_klant_subject_type_fail(self):
        klant = KlantFactory.create(subject=SUBJECT,
                                    subject_type=KlantType.natuurlijk_persoon)
        detail_url = reverse(klant)

        response = self.client.patch(detail_url,
                                     {"subjectType": KlantType.vestiging})

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)

        validation_error = get_validation_errors(response, "subjectType")
        self.assertEqual(validation_error["code"], "wijzigen-niet-toegelaten")
Exemplo n.º 12
0
    def test_partial_update_klant_subject_url_invalid(self):
        klant = KlantFactory.create(subject=SUBJECT, voornaam="old name")
        detail_url = reverse(klant)

        with requests_mock.Mocker() as m:
            m.get("https://example.com/404", status_code=404)
            response = self.client.patch(
                detail_url, {"subject": "https://example.com/404"})

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)

        error = get_validation_errors(response, "subject")
        self.assertEqual(error["code"], "bad-url")
Exemplo n.º 13
0
    def test_update_klant_url(self):
        klant = KlantFactory.create(subject=SUBJECT, voornaam="old name")
        detail_url = reverse(klant)
        data = self.client.get(detail_url).json()
        del data["url"]
        del data["subjectIdentificatie"]
        data["voornaam"] = "new name"

        response = self.client.put(detail_url, data)

        self.assertEqual(response.status_code, status.HTTP_200_OK)

        klant.refresh_from_db()

        self.assertEqual(klant.voornaam, "new name")
Exemplo n.º 14
0
    def test_update_klant_subject_url_invalid(self):
        klant = KlantFactory.create(subject=SUBJECT, voornaam="old name")
        detail_url = reverse(klant)
        data = self.client.get(detail_url).json()
        del data["url"]
        del data["subjectIdentificatie"]
        data["subject"] = "https://example.com/404"

        with requests_mock.Mocker() as m:
            m.get("https://example.com/404", status_code=404)
            response = self.client.put(detail_url, data)

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)

        error = get_validation_errors(response, "subject")
        self.assertEqual(error["code"], "bad-url")
Exemplo n.º 15
0
    def test_update_klant_vestiging(self):
        klant = KlantFactory.create(subject_type=KlantType.vestiging)
        detail_url = reverse(klant)
        data = self.client.get(detail_url).json()
        del data["url"]
        data.update({
            "subject": "",
            "subjectIdentificatie": {
                "vestigingsNummer": "123",
                "handelsnaam": ["WB"],
                "verblijfsadres": {
                    "aoaIdentificatie": "1234",
                    "wplWoonplaatsNaam": "East Meaganchester",
                    "gorOpenbareRuimteNaam": "New Amsterdam",
                    "aoaHuisnummer": 21,
                },
                "subVerblijfBuitenland": {
                    "lndLandcode": "ABCD",
                    "lndLandnaam": "Hollywood",
                },
            },
        })

        response = self.client.put(detail_url, data)

        self.assertEqual(response.status_code, status.HTTP_200_OK)

        klant.refresh_from_db()

        self.assertEqual(klant.subject, "")

        vestiging = klant.vestiging

        self.assertEqual(vestiging.vestigings_nummer, "123")
        self.assertEqual(vestiging.handelsnaam, ["WB"])

        adres = vestiging.verblijfsadres

        self.assertEqual(adres.aoa_identificatie, "1234")
        self.assertEqual(adres.woonplaats_naam, "East Meaganchester")
        self.assertEqual(adres.gor_openbare_ruimte_naam, "New Amsterdam")
        self.assertEqual(adres.huisnummer, 21)

        buitenland = vestiging.sub_verblijf_buitenland

        self.assertEqual(buitenland.lnd_landcode, "ABCD")
        self.assertEqual(buitenland.lnd_landnaam, "Hollywood")
Exemplo n.º 16
0
    def test_update_klant_naturlijkpersoon(self):
        klant = KlantFactory.create(subject_type=KlantType.natuurlijk_persoon,
                                    subject=SUBJECT)
        natuurlijkpersoon = NatuurlijkPersoonFactory.create(klant=klant)
        adres = VerblijfsAdresFactory.create(
            natuurlijkpersoon=natuurlijkpersoon)
        buitenland = SubVerblijfBuitenlandFactory.create(
            natuurlijkpersoon=natuurlijkpersoon)
        detail_url = reverse(klant)
        data = self.client.get(detail_url).json()
        del data["url"]
        data.update({
            "voornaam": "New name",
            "subject": "",
            "subjectIdentificatie": {
                "geslachtsnaam": "New name2",
                "verblijfsadres": {
                    "aoaIdentificatie": "1234",
                    "wplWoonplaatsNaam": "New place",
                    "gorOpenbareRuimteNaam": "New place2",
                    "aoaHuisnummer": 1,
                },
                "subVerblijfBuitenland": {
                    "lndLandcode": "XXXX",
                    "lndLandnaam": "New land",
                },
            },
        })

        response = self.client.put(detail_url, data)

        self.assertEqual(response.status_code, status.HTTP_200_OK)

        klant.refresh_from_db()
        self.assertEqual(klant.voornaam, "New name")
        self.assertEqual(klant.subject, "")

        natuurlijkpersoon.refresh_from_db()
        self.assertEqual(natuurlijkpersoon.geslachtsnaam, "New name2")

        adres.refresh_from_db()
        self.assertEqual(adres.woonplaats_naam, "New place")

        buitenland.refresh_from_db()
        self.assertEqual(buitenland.lnd_landnaam, "New land")
Exemplo n.º 17
0
    def test_read_klant_url(self):
        klant = KlantFactory.create(subject=SUBJECT,
                                    subject_type=KlantType.natuurlijk_persoon)
        KlantAdresFactory.create(klant=klant)
        detail_url = reverse(klant)

        response = self.client.get(detail_url)

        self.assertEqual(response.status_code, status.HTTP_200_OK)

        data = response.json()

        self.assertEqual(
            data,
            {
                "url": f"http://testserver{detail_url}",
                "bronorganisatie": klant.bronorganisatie,
                "klantnummer": klant.klantnummer,
                "bedrijfsnaam": klant.bedrijfsnaam,
                "functie": klant.functie,
                "websiteUrl": klant.website_url,
                "voornaam": klant.voornaam,
                "voorvoegselAchternaam": klant.voorvoegsel_achternaam,
                "achternaam": klant.achternaam,
                "telefoonnummer": klant.telefoonnummer,
                "emailadres": klant.emailadres,
                "adres": {
                    "straatnaam": klant.adres.straatnaam,
                    "huisnummer": klant.adres.huisnummer,
                    "huisletter": klant.adres.huisletter,
                    "huisnummertoevoeging": klant.adres.huisnummertoevoeging,
                    "postcode": klant.adres.postcode,
                    "woonplaatsnaam": klant.adres.woonplaats_naam,
                    "landcode": klant.adres.landcode,
                },
                "subject": SUBJECT,
                "subjectType": KlantType.natuurlijk_persoon,
                "subjectIdentificatie": None,
            },
        )
Exemplo n.º 18
0
    def test_read_klant_natuurlijkpersoon(self):
        klant = KlantFactory.create(subject=SUBJECT,
                                    subject_type=KlantType.natuurlijk_persoon)
        KlantAdresFactory.create(klant=klant)
        natuurlijkpersoon = NatuurlijkPersoonFactory.create(klant=klant)
        adres = VerblijfsAdresFactory.create(
            natuurlijkpersoon=natuurlijkpersoon)
        buitenland = SubVerblijfBuitenlandFactory.create(
            natuurlijkpersoon=natuurlijkpersoon)
        detail_url = reverse(klant)

        response = self.client.get(detail_url)

        self.assertEqual(response.status_code, status.HTTP_200_OK)

        data = response.json()

        self.assertEqual(
            data,
            {
                "url": f"http://testserver{detail_url}",
                "bronorganisatie": klant.bronorganisatie,
                "klantnummer": klant.klantnummer,
                "bedrijfsnaam": klant.bedrijfsnaam,
                "functie": klant.functie,
                "websiteUrl": klant.website_url,
                "voornaam": klant.voornaam,
                "voorvoegselAchternaam": klant.voorvoegsel_achternaam,
                "achternaam": klant.achternaam,
                "telefoonnummer": klant.telefoonnummer,
                "emailadres": klant.emailadres,
                "adres": {
                    "straatnaam": klant.adres.straatnaam,
                    "huisnummer": klant.adres.huisnummer,
                    "huisletter": klant.adres.huisletter,
                    "huisnummertoevoeging": klant.adres.huisnummertoevoeging,
                    "postcode": klant.adres.postcode,
                    "woonplaatsnaam": klant.adres.woonplaats_naam,
                    "landcode": klant.adres.landcode,
                },
                "subject": SUBJECT,
                "subjectType": KlantType.natuurlijk_persoon,
                "subjectIdentificatie": {
                    "inpBsn": natuurlijkpersoon.inp_bsn,
                    "anpIdentificatie": natuurlijkpersoon.anp_identificatie,
                    "inpANummer": natuurlijkpersoon.inp_a_nummer,
                    "geslachtsnaam": natuurlijkpersoon.geslachtsnaam,
                    "voorvoegselGeslachtsnaam":
                    natuurlijkpersoon.voorvoegsel_geslachtsnaam,
                    "voorletters": natuurlijkpersoon.voorletters,
                    "voornamen": natuurlijkpersoon.voornamen,
                    "geslachtsaanduiding":
                    natuurlijkpersoon.geslachtsaanduiding,
                    "geboortedatum": natuurlijkpersoon.geboortedatum,
                    "verblijfsadres": {
                        "aoaIdentificatie": adres.aoa_identificatie,
                        "wplWoonplaatsNaam": adres.woonplaats_naam,
                        "gorOpenbareRuimteNaam":
                        adres.gor_openbare_ruimte_naam,
                        "aoaPostcode": adres.postcode,
                        "aoaHuisnummer": adres.huisnummer,
                        "aoaHuisletter": adres.huisletter,
                        "aoaHuisnummertoevoeging": adres.huisnummertoevoeging,
                        "inpLocatiebeschrijving":
                        adres.inp_locatiebeschrijving,
                    },
                    "subVerblijfBuitenland": {
                        "lndLandcode": buitenland.lnd_landcode,
                        "lndLandnaam": buitenland.lnd_landnaam,
                        "subAdresBuitenland1":
                        buitenland.sub_adres_buitenland_1,
                        "subAdresBuitenland2":
                        buitenland.sub_adres_buitenland_2,
                        "subAdresBuitenland3":
                        buitenland.sub_adres_buitenland_3,
                    },
                },
            },
        )
Exemplo n.º 19
0
    def test_read_klant_nietnatuurlijkpersoon(self):
        klant = KlantFactory.create(
            subject=SUBJECT, subject_type=KlantType.niet_natuurlijk_persoon)
        KlantAdresFactory.create(klant=klant)
        nietnatuurlijkpersoon = NietNatuurlijkPersoonFactory.create(
            klant=klant)
        buitenland = SubVerblijfBuitenlandFactory.create(
            nietnatuurlijkpersoon=nietnatuurlijkpersoon)
        detail_url = reverse(klant)

        response = self.client.get(detail_url)

        self.assertEqual(response.status_code, status.HTTP_200_OK)

        data = response.json()

        self.assertEqual(
            data,
            {
                "url": f"http://testserver{detail_url}",
                "bronorganisatie": klant.bronorganisatie,
                "klantnummer": klant.klantnummer,
                "bedrijfsnaam": klant.bedrijfsnaam,
                "functie": klant.functie,
                "websiteUrl": klant.website_url,
                "voornaam": klant.voornaam,
                "voorvoegselAchternaam": klant.voorvoegsel_achternaam,
                "achternaam": klant.achternaam,
                "telefoonnummer": klant.telefoonnummer,
                "emailadres": klant.emailadres,
                "adres": {
                    "straatnaam": klant.adres.straatnaam,
                    "huisnummer": klant.adres.huisnummer,
                    "huisletter": klant.adres.huisletter,
                    "huisnummertoevoeging": klant.adres.huisnummertoevoeging,
                    "postcode": klant.adres.postcode,
                    "woonplaatsnaam": klant.adres.woonplaats_naam,
                    "landcode": klant.adres.landcode,
                },
                "subject": SUBJECT,
                "subjectType": KlantType.niet_natuurlijk_persoon,
                "subjectIdentificatie": {
                    "innNnpId": nietnatuurlijkpersoon.inn_nnp_id,
                    "annIdentificatie":
                    nietnatuurlijkpersoon.ann_identificatie,
                    "statutaireNaam": nietnatuurlijkpersoon.statutaire_naam,
                    "innRechtsvorm": nietnatuurlijkpersoon.inn_rechtsvorm,
                    "bezoekadres": nietnatuurlijkpersoon.bezoekadres,
                    "subVerblijfBuitenland": {
                        "lndLandcode": buitenland.lnd_landcode,
                        "lndLandnaam": buitenland.lnd_landnaam,
                        "subAdresBuitenland1":
                        buitenland.sub_adres_buitenland_1,
                        "subAdresBuitenland2":
                        buitenland.sub_adres_buitenland_2,
                        "subAdresBuitenland3":
                        buitenland.sub_adres_buitenland_3,
                    },
                },
            },
        )