From ec2b52464fa69b162e91faa88faf11ce65a04d0c Mon Sep 17 00:00:00 2001
From: Van Hecke Adiel <adiel.van-hecke@student-cs.fr>
Date: Thu, 21 Nov 2024 15:44:48 +0100
Subject: [PATCH] testBorrowing

---
 Borrowing/tests.py | 55 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)

diff --git a/Borrowing/tests.py b/Borrowing/tests.py
index 7ce503c..44874ea 100644
--- a/Borrowing/tests.py
+++ b/Borrowing/tests.py
@@ -1,3 +1,56 @@
 from django.test import TestCase
+from django.urls import reverse
+from django.contrib.auth.models import User
+from object.models import Object, ObjectCategory
+from Communities.models import Community, CommunityMembership
+from .models import BorrowRequest
 
-# Create your tests here.
+class BorrowingViewTests(TestCase):
+    def setUp(self):
+        # Créer un utilisateur et le connecter
+        self.user = User.objects.create_user(username="testuser", password="password123")
+        self.client.login(username="testuser", password="password123")
+        
+        # Créer une catégorie d'objet
+        self.category = ObjectCategory.objects.create(name="Electronics")
+        
+        # Créer des objets pour les tests
+        self.lender = User.objects.create_user(username="lender", password="password123")
+        self.community = Community.objects.create(name="Community1", postal_code=12345, administrator=self.lender)
+        
+        CommunityMembership.objects.create(user=self.user, community=self.community, role='member')
+        CommunityMembership.objects.create(user=self.lender, community=self.community, role='admin')
+        
+        self.object1 = Object.objects.create(
+            description="Laptop",
+            objectCategory=self.category,
+            id_lender=self.lender
+        )
+        self.object2 = Object.objects.create(
+            description="Tablet",
+            objectCategory=self.category,
+            id_lender=self.lender
+        )
+
+    def test_borrowing_page_loads(self):
+        """Test que la page borrowing charge correctement."""
+        response = self.client.get(reverse("borrow"))
+        self.assertEqual(response.status_code, 200)
+        self.assertTemplateUsed(response, "Borrowing/borrowing.html")
+        self.assertIn("objects", response.context)
+
+    def test_borrow_request_creation(self):
+        """Test que l'utilisateur peut faire une demande de prêt."""
+        response = self.client.post(reverse("borrow"), {
+            "item": self.object1.id
+        })
+        self.assertEqual(response.status_code, 200)
+        self.assertTrue(BorrowRequest.objects.filter(id_object=self.object1, id_borrower=self.user).exists())
+
+    def test_filtered_objects(self):
+        """Test que les objets déjà demandés ne sont pas affichés."""
+        BorrowRequest.objects.create(id_object=self.object1, id_borrower=self.user, is_finished=False)
+        response = self.client.get(reverse("borrow"))
+        filtered_objects = response.context["filtered_objects"]
+        self.assertNotIn(self.object1, filtered_objects)
+        self.assertIn(self.object2, filtered_objects)
\ No newline at end of file
-- 
GitLab