From bd4a6380e4e190ae532d795de83bc1c9fa48a5a3 Mon Sep 17 00:00:00 2001
From: Calum Mackervoy <c.mackervoy@gmail.com>
Date: Thu, 29 Jul 2021 19:14:37 +0200
Subject: [PATCH] syntax: added container subscription test

---
 djangoldp_notification/tests/runner.py        |  1 +
 .../tests/test_subscriptions.py               | 36 +++++++++++++++++++
 2 files changed, 37 insertions(+)
 create mode 100644 djangoldp_notification/tests/test_subscriptions.py

diff --git a/djangoldp_notification/tests/runner.py b/djangoldp_notification/tests/runner.py
index 29f3947..de3991c 100644
--- a/djangoldp_notification/tests/runner.py
+++ b/djangoldp_notification/tests/runner.py
@@ -43,6 +43,7 @@ test_runner = DiscoverRunner(verbosity=1)
 
 failures = test_runner.run_tests([
     'djangoldp_notification.tests.test_models',
+    'djangoldp_notification.tests.test_subscriptions',
     'djangoldp_notification.tests.test_cache',
 ])
 if failures:
diff --git a/djangoldp_notification/tests/test_subscriptions.py b/djangoldp_notification/tests/test_subscriptions.py
new file mode 100644
index 0000000..fb12200
--- /dev/null
+++ b/djangoldp_notification/tests/test_subscriptions.py
@@ -0,0 +1,36 @@
+import uuid
+import json
+
+from django.conf import settings
+from rest_framework.test import APITestCase, APIClient
+
+from djangoldp_account.models import LDPUser
+from djangoldp_notification.models import Notification, Subscription
+
+
+class SubscriptionTestCase(APITestCase):
+    def setUp(self):
+        self.client = APIClient()
+
+    def _get_random_user(self):
+        return LDPUser.objects.create(email='{}@test.co.uk'.format(str(uuid.uuid4())), first_name='Test',
+                                      last_name='Test', username=str(uuid.uuid4()))
+
+    def _auth_as_user(self, user):
+        self.client.force_authenticate(user=user)
+
+    def setUpLoggedInUser(self):
+        self.user = self._get_random_user()
+        self._auth_as_user(self.user)
+
+    def test_can_subscribe_to_container(self):
+        self.setUpLoggedInUser()
+
+        users_container = "{}/users/".format(settings.BASE_URL)
+        Subscription.objects.create(object=users_container, inbox=self.user.urlid + "inbox/")
+        self.assertEqual(self.user.inbox.count(), 0)
+
+        self._get_random_user()
+        self.assertEqual(self.user.inbox.count(), 2)
+        notification = self.user.inbox.all()[0]
+        self.assertTrue(notification.object, users_container)
-- 
GitLab