diff --git a/submissions/test_utils.py b/submissions/test_utils.py
index 816350fe787a34cfac9cb4d6d24dbf200367669e..917b4bcaf3109f7af93289ac59d532417fbf8244 100644
--- a/submissions/test_utils.py
+++ b/submissions/test_utils.py
@@ -6,7 +6,8 @@ from common.helpers.test import add_groups_and_permissions
 from scipost.factories import ContributorFactory
 from scipost.models import Contributor
 
-from .constants import STATUS_UNASSIGNED, STATUS_RESUBMISSION_INCOMING
+from .constants import STATUS_UNASSIGNED, STATUS_RESUBMISSION_INCOMING, STATUS_AWAITING_ED_REC,\
+                       STATUS_EIC_ASSIGNED, CYCLE_DEFAULT, CYCLE_DIRECT_REC
 from .exceptions import CycleUpdateDeadlineError
 from .factories import UnassignedSubmissionFactory, ResubmittedSubmissionFactory
 from .utils import GeneralSubmissionCycle
@@ -68,7 +69,7 @@ class TestResubmissionSubmissionCycle(TestCase):
         self.submission_date = datetime.date.today()
         add_groups_and_permissions()
         ContributorFactory.create_batch(5)
-        self.new_submission = ResubmittedSubmissionFactory(
+        self.submission = ResubmittedSubmissionFactory(
             dates__submission=self.submission_date
         )
 
@@ -76,18 +77,63 @@ class TestResubmissionSubmissionCycle(TestCase):
     def test_init_resubmission_factory_is_valid(self):
         """Ensure valid fields for the factory."""
         return
-        self.assertEqual(self.new_submission.status, STATUS_RESUBMISSION_INCOMING)
-        self.assertIsInstance(self.new_submission.editor_in_charge, Contributor)
-        self.assertTrue(self.new_submission.is_current)
-        self.assertTrue(self.new_submission.is_resubmission)
-        self.assertIsNot(self.new_submission.title, '')
-        self.assertIsInstance(self.new_submission.submitted_by, Contributor)
-        self.assertTrue(self.new_submission.open_for_commenting)
-        self.assertTrue(self.new_submission.open_for_reporting)
-        self.assertEqual(self.new_submission.submission_date, self.submission_date)
+        self.assertEqual(self.submission.status, STATUS_RESUBMISSION_INCOMING)
+        self.assertIsInstance(self.submission.editor_in_charge, Contributor)
+        self.assertTrue(self.submission.is_current)
+        self.assertTrue(self.submission.is_resubmission)
+        self.assertIsNot(self.submission.title, '')
+        self.assertIsInstance(self.submission.submitted_by, Contributor)
+        self.assertTrue(self.submission.open_for_commenting)
+        self.assertTrue(self.submission.open_for_reporting)
+        self.assertEqual(self.submission.submission_date, self.submission_date)
+        self.assertEqual(self.submission.refereeing_cycle, CYCLE_DEFAULT)
 
     @tag('cycle', 'core')
     def test_initial_cycle_required_actions_and_deadline(self):
         """Test valid required actions for default cycle."""
+        self.assertRaises(CycleUpdateDeadlineError, self.submission.cycle.update_deadline)
+
+        # Update status for default cycle to check new status
+        self.submission.cycle.update_status()
+        self.assertEqual(self.submission.status, STATUS_EIC_ASSIGNED)
+
+
+class TestResubmissionDirectSubmissionCycle(TestCase):
+    '''
+    This TestCase should act as a master test to check all steps in the
+    submission's cycle: resubmission (cycle: DIRECT_RECOMMENDATION).
+    '''
+
+    def setUp(self):
+        """Basics for all tests"""
+        self.submission_date = datetime.date.today()
+        add_groups_and_permissions()
+        ContributorFactory.create_batch(5)
+        self.submission = ResubmittedSubmissionFactory(
+            dates__submission=self.submission_date,
+            refereeing_cycle=CYCLE_DIRECT_REC
+        )
+
+    @tag('cycle', 'core')
+    def test_init_resubmission_factory_is_valid(self):
+        """Ensure valid fields for the factory."""
         return
-        self.assertRaises(CycleUpdateDeadlineError, self.new_submission.update_deadline())
+        self.assertEqual(self.submission.status, STATUS_RESUBMISSION_INCOMING)
+        self.assertIsInstance(self.submission.editor_in_charge, Contributor)
+        self.assertTrue(self.submission.is_current)
+        self.assertTrue(self.submission.is_resubmission)
+        self.assertIsNot(self.submission.title, '')
+        self.assertIsInstance(self.submission.submitted_by, Contributor)
+        self.assertTrue(self.submission.open_for_commenting)
+        self.assertTrue(self.submission.open_for_reporting)
+        self.assertEqual(self.submission.submission_date, self.submission_date)
+        self.assertEqual(self.submission.refereeing_cycle, CYCLE_DIRECT_REC)
+
+    @tag('cycle', 'core')
+    def test_initial_cycle_required_actions_and_deadline(self):
+        """Test valid required actions for default cycle."""
+        self.assertRaises(CycleUpdateDeadlineError, self.submission.cycle.update_deadline)
+
+        # Update status for default cycle to check new status
+        self.submission.cycle.update_status()
+        self.assertEqual(self.submission.status, STATUS_AWAITING_ED_REC)