Beispiel #1
0
    def test_create_objectcontactmoment(self, *mocks):
        contactmoment = ContactMomentFactory.create()
        contactmoment_url = reverse(contactmoment)
        list_url = reverse(ObjectContactMoment)
        data = {
            "contactmoment": contactmoment_url,
            "objectType": ObjectTypes.zaak,
            "object": ZAAK,
        }
        responses = {
            "http://example.com/api/v1/zaakcontactmomenten": [{
                "url":
                f"https://example.com/api/v1/zaakcontactmomenten/{uuid.uuid4()}",
                "contactmoment":
                f"http://testserver/api/v1/contactmomenten/{uuid.uuid4()}",
                "zaak": ZAAK,
            }]
        }
        with mock_client(responses):
            response = self.client.post(list_url, data)

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

        objectcontactmoment = ObjectContactMoment.objects.get()

        self.assertEqual(objectcontactmoment.contactmoment, contactmoment)
        self.assertEqual(objectcontactmoment.object_type, ObjectTypes.zaak)
        self.assertEqual(objectcontactmoment.object, ZAAK)
Beispiel #2
0
    def test_read_contactmoment(self):
        klant = KlantFactory.create()
        klant_url = reverse(klant)
        contactmoment = ContactMomentFactory.create(
            klant=klant,
            interactiedatum=make_aware(datetime(2019, 1, 1)),
            initiatiefnemer=InitiatiefNemer.gemeente,
        )
        detail_url = reverse(contactmoment)

        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": contactmoment.bronorganisatie,
                "klant": f"http://testserver{klant_url}",
                "interactiedatum": "2019-01-01T00:00:00Z",
                "kanaal": contactmoment.kanaal,
                "voorkeurskanaal": contactmoment.voorkeurskanaal,
                "tekst": contactmoment.tekst,
                "onderwerpLinks": [],
                "initiatiefnemer": InitiatiefNemer.gemeente,
                "medewerker": contactmoment.medewerker,
                "medewerkerIdentificatie": None,
            },
        )
Beispiel #3
0
    def test_update_contactmoment_with_medewerker(self):
        contactmoment = ContactMomentFactory.create()
        detail_url = reverse(contactmoment)
        data = {
            "medewerker": "",
            "medewerkerIdentificatie": {
                "identificatie": "12345",
                "achternaam": "Buurman",
                "voorletters": "B B",
            },
        }

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

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

        contactmoment.refresh_from_db()

        self.assertEqual(contactmoment.medewerker, "")

        medewerker = contactmoment.medewerker_identificatie

        self.assertEqual(medewerker.identificatie, "12345")
        self.assertEqual(medewerker.achternaam, "Buurman")
        self.assertEqual(medewerker.voorletters, "B B")
Beispiel #4
0
    def test_destroy_contactmoment(self):
        contactmoment = ContactMomentFactory.create()
        detail_url = reverse(contactmoment)

        response = self.client.delete(detail_url)

        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
        self.assertEqual(ContactMoment.objects.count(), 0)
Beispiel #5
0
    def test_update_contactmoment(self):
        klant = KlantFactory.create()
        klant_url = reverse(klant)
        contactmoment = ContactMomentFactory.create()
        detail_url = reverse(contactmoment)

        response = self.client.patch(detail_url, {"klant": klant_url})

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

        contactmoment.refresh_from_db()

        self.assertEqual(contactmoment.klant, klant)
    def test_cannot_read_without_correct_scope(self):
        klant = KlantFactory.create()
        contactmoment = ContactMomentFactory.create()
        urls = [
            reverse("klant-list"),
            reverse(klant),
            reverse("contactmoment-list"),
            reverse(contactmoment),
        ]

        for url in urls:
            with self.subTest(url=url):
                self.assertForbidden(url, method="get")
Beispiel #7
0
    def test_create_verzoekcontactmoment(self):
        verzoek = VerzoekFactory.create()
        verzoek_url = reverse(verzoek)
        contactmoment = ContactMomentFactory.create()
        contactmoment_url = reverse(contactmoment)

        list_url = reverse(VerzoekContactMoment)
        data = {"verzoek": verzoek_url, "contactmoment": contactmoment_url}

        response = self.client.post(list_url, data)

        self.assertEqual(response.status_code, status.HTTP_201_CREATED,
                         response.content)

        verzoekcontactmoment = VerzoekContactMoment.objects.get()

        self.assertEqual(verzoekcontactmoment.verzoek, verzoek)
        self.assertEqual(verzoekcontactmoment.contactmoment, contactmoment)
Beispiel #8
0
    def test_create_objectcontactmoment_fail_no_remote_relation(self, *mocks):
        contactmoment = ContactMomentFactory.create()
        contactmoment_url = reverse(contactmoment)
        list_url = reverse(ObjectContactMoment)
        data = {
            "contactmoment": contactmoment_url,
            "objectType": ObjectTypes.zaak,
            "object": ZAAK,
        }
        responses = {"http://example.com/api/v1/zaakcontactmomenten": []}
        with mock_client(responses):
            response = self.client.post(list_url, data)

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

        error = get_validation_errors(response, "nonFieldErrors")

        self.assertEqual(error["code"], "inconsistent-relation")
Beispiel #9
0
    def test_read_objectcontactmoment(self):
        contactmoment = ContactMomentFactory.create()
        contactmoment_url = reverse(contactmoment)
        objectcontactmoment = ObjectContactMomentFactory.create(
            contactmoment=contactmoment)
        detail_url = reverse(objectcontactmoment)

        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}",
                "contactmoment": f"http://testserver{contactmoment_url}",
                "objectType": objectcontactmoment.object_type,
                "object": objectcontactmoment.object,
            },
        )