diff --git a/backend/secfit/users/tests/__init__.py b/backend/secfit/users/tests/__init__.py
index 8bc333b22345bcd0c365d32dbde954914b2b9297..504613cf4abc21a83d3d21ddc9a7932586fbd72a 100644
--- a/backend/secfit/users/tests/__init__.py
+++ b/backend/secfit/users/tests/__init__.py
@@ -1,2 +1,3 @@
 from users.tests.UserRegistration import  *
-from users.tests.UserSerializer import *
\ No newline at end of file
+from users.tests.UserSerializer import *
+from users.tests.offers import *
\ No newline at end of file
diff --git a/backend/secfit/users/tests/offers.py b/backend/secfit/users/tests/offers.py
new file mode 100644
index 0000000000000000000000000000000000000000..45dc2578a10831e239a1c1ef691e1e0e2f15f06e
--- /dev/null
+++ b/backend/secfit/users/tests/offers.py
@@ -0,0 +1,92 @@
+from django.test import TestCase
+from django.contrib.auth import get_user_model
+from rest_framework.test import APIClient
+from users.models import Offer
+
+
+class OfferTestCase(TestCase):
+
+    def setUp(self):
+        self.client = APIClient()
+        self.user_model = get_user_model()
+        self.password = "password"
+        self.user1 = self.user_model(
+            username="testOffer1",
+            email="test@test.com",
+            phone_number="12345678",
+            country="Norway",
+            city="Oslo",
+            street_address="address 10"
+        )
+        self.user1.set_password(self.password)
+        self.user1.save()
+
+        self.user2 = self.user_model(
+            username="testOffer2",
+            email="test@test.com",
+            phone_number="12345678",
+            country="Norway",
+            city="Oslo",
+            street_address="address 10"
+        )
+        self.user2.set_password(self.password)
+        self.user2.save()
+
+    def _send_offer(self, user_id, status):
+        request = {}
+        request["status"] = status
+        request["recipient"] = "http://127.0.0.1:8000/api/users/{0}/".format(user_id)
+        response = self.client.post('/api/offers/', request)
+        return response.status_code
+
+    def _login(self, user):
+        request = {}
+        request["username"] = user.username
+        request["password"] = self.password
+        response = self.client.post('/api/token/', request)
+        access_token = response.data['access']
+        self.client.credentials(HTTP_AUTHORIZATION='Bearer ' + access_token)
+
+    def test_create_offer(self):
+        recipient = self.user2.id
+        self._login(self.user1)
+        status_code = self._send_offer(recipient, Offer.PENDING)
+        self.assertEqual(status_code, 201)
+
+    def test_get_offers(self):
+        self._login(self.user1)
+        self._send_offer(self.user2.id, Offer.PENDING)
+        self._login(self.user2)
+        response = self.client.get('/api/offers/')
+        number_of_offers = response.data["count"]
+        self.assertEqual(1, number_of_offers)
+
+    def test_get_offer_detail(self):
+        self._login(self.user1)
+        self._send_offer(self.user2.id, Offer.PENDING)
+        self._login(self.user2)
+        response = self.client.get('/api/offers/1/')
+        self.assertEqual(200, response.status_code)
+
+    def test_decline_offer(self):
+        self._login(self.user1)
+        self._send_offer(self.user2.id, Offer.PENDING)
+        self._login(self.user2)
+        response = self.client.patch('/api/offers/1/', {"status": Offer.DECLINED})
+        self.assertEqual(200, response.status_code)
+
+    def test_accept_offer(self):
+        self._login(self.user1)
+        self._send_offer(self.user2.id, Offer.PENDING)
+        self._login(self.user2)
+        offer_response = self.client.patch('/api/offers/1/', {"status": Offer.ACCEPTED})
+        self.assertEqual(200, offer_response.status_code)
+
+        coach_response = self.client.patch(
+            '/api/users/{0}/'.format(self.user2.id),
+            {"coach": "http://127.0.0.1:8000/api/users/{0}/".format(self.user1.id)}
+        )
+        self.assertEqual(200, coach_response.status_code)
+
+        athlete = self.user_model.objects.get(username=self.user2.username)
+        self.assertEqual(athlete.coach.id, self.user1.id)