From 579dcb422779d5bb70f0ab3d469615907d23faef Mon Sep 17 00:00:00 2001
From: Claudio Yosafat <claudioyosafat@gmail.com>
Date: Sun, 6 Oct 2019 18:13:31 +0700
Subject: [PATCH 1/3] [RED] Test for create vacancy and update vacancy opening
 and closing time at the same day

---
 core/tests/test_create_vacancies.py | 31 +++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/core/tests/test_create_vacancies.py b/core/tests/test_create_vacancies.py
index 9d8cd65b..6d75d911 100644
--- a/core/tests/test_create_vacancies.py
+++ b/core/tests/test_create_vacancies.py
@@ -128,3 +128,34 @@ class CreateAndUpdateVacancyTest(APITestCase):
 
         vacancy = Vacancy.objects.first()
         self.assertEqual(vacancy.amount, None)
+
+    def test_new_vacancy_on_same_day_with_failed(self):
+        superuser = User.objects.create_superuser('dummy.company', 'dummy.company@company.com', 'lalala123')
+        new_company = Company.objects.create(user=superuser, description="lalalaz", status=Company.VERIFIED, logo=None,
+                                             address=None)
+        self.client.force_authenticate(user=superuser)
+
+        url = '/api/vacancies/'
+        response = self.client.post(url, {'company': new_company.pk, 'open_time': datetime.fromtimestamp(0),
+        	 'close_time': datetime.fromtimestamp(0), 'name': 'new_vacancy', 'description': 'new_vacancy'}, format='json')
+        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
+
+        vacancies = Vacancy.objects.count()
+        self.assertEqual(vacancies,0)
+
+    def test_update_vacancy_one_same_day_with_amount_failed(self):
+        superuser = User.objects.create_superuser('dummy.company', 'dummy.company@company.com', 'lalala123')
+        new_company = Company.objects.create(user=superuser, description="lalalaz", status=Company.VERIFIED, logo=None,
+                                             address=None)
+        self.client.force_authenticate(user=superuser)
+
+        new_vacancy = Vacancy.objects.create(company=new_company, verified=False, open_time=datetime.fromtimestamp(0),
+                                              description="lalala", close_time=datetime.today(), name='new_company')
+
+        url = '/api/vacancies/' + str(new_vacancy.pk) + '/'
+        response = self.client.patch(url, {'open_time': datetime.fromtimestamp(0), 'close_time': datetime.fromtimestamp(0),
+        	'name': 'new_vacancy2', 'description': 'new_vacancy2', 'amount': 'sepuluh'}, format='json')
+        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
+
+        vacancy = Vacancy.objects.first()
+        self.assertEqual(vacancy.amount, None)
\ No newline at end of file
-- 
GitLab


From 5ff1343af9aea6b1ea28a1c2620c448753fccb07 Mon Sep 17 00:00:00 2001
From: Claudio Yosafat <claudioyosafat@gmail.com>
Date: Sun, 6 Oct 2019 18:19:24 +0700
Subject: [PATCH 2/3] [GREEN] Change '<' to '<=' so it cannot accept on same
 day for opening and closing vacancy

---
 core/views/vacancies.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/core/views/vacancies.py b/core/views/vacancies.py
index f51cfd3a..a274522e 100644
--- a/core/views/vacancies.py
+++ b/core/views/vacancies.py
@@ -57,8 +57,8 @@ class VacancyViewSet(MultiSerializerViewSetMixin, viewsets.ModelViewSet):
         close_time = data['close_time']
         name = data['name']
         description = data['description']
-        if close_time < open_time:
-            raise ValidationError('Waktu tutup lowongan harus lebih dari waktu buka lowongan!')
+        if close_time <= open_time:
+            raise ValidationError('Waktu tutup lowongan harus lebih dari waktu buka lowongan dan tidak sama dengan waktu pembukaan lowongan!')
         vacancy = Vacancy(company=company, open_time=open_time, close_time=close_time, name=name, description=description)
         if 'amount' in data:
             if isinstance(data['amount'], int):
@@ -75,8 +75,8 @@ class VacancyViewSet(MultiSerializerViewSetMixin, viewsets.ModelViewSet):
         close_time = data['close_time']
         name = data['name']
         description = data['description']
-        if close_time < open_time:
-            raise ValidationError('Waktu tutup lowongan harus lebih dari waktu buka lowongan!')
+        if close_time <= open_time:
+            raise ValidationError('Waktu tutup lowongan harus lebih dari waktu buka lowongan dan tidak sama dengan waktu pembukaan lowongan!')
         vacancy.open_time = open_time
         vacancy.close_time = close_time
         vacancy.name = name
-- 
GitLab


From daa64955571ec76bf46034d500de9847b5fad8d2 Mon Sep 17 00:00:00 2001
From: Claudio Yosafat <claudioyosafat@gmail.com>
Date: Mon, 7 Oct 2019 12:20:33 +0700
Subject: [PATCH 3/3] [GREEN] Solved merge request

---
 core/migrations/0020_merge_20191006_1737.py | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 core/migrations/0020_merge_20191006_1737.py

diff --git a/core/migrations/0020_merge_20191006_1737.py b/core/migrations/0020_merge_20191006_1737.py
new file mode 100644
index 00000000..26ff28ef
--- /dev/null
+++ b/core/migrations/0020_merge_20191006_1737.py
@@ -0,0 +1,17 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.17 on 2019-10-06 10:37
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('core', '0019_merge_20191006_0852'),
+        ('core', '0017_vacancy_amount'),
+        ('core', '0014_auto_20191004_1340'),
+    ]
+
+    operations = [
+    ]
-- 
GitLab