diff --git a/SAS/ResourceAssignment/ResourceAssigner/lib/schedulers.py b/SAS/ResourceAssignment/ResourceAssigner/lib/schedulers.py
index f3b1c3cf5244536396b49800b8893b5e07e09fcb..f5e5d3b22f6b8e2e2d548bd514e19274a15712b3 100644
--- a/SAS/ResourceAssignment/ResourceAssigner/lib/schedulers.py
+++ b/SAS/ResourceAssignment/ResourceAssigner/lib/schedulers.py
@@ -1,4 +1,4 @@
-from datetime import datetime
+from datetime import datetime, timedelta
 
 from lofar.common.cache import cache
 
@@ -70,6 +70,9 @@ class BasicScheduler(object):
         # Any resources that we cannot schedule on for some reason
         self.unusable_resources = []
 
+        # Duration must be non-negative or weird stuff will happen
+        assert self.starttime <= self.endtime
+
     def allocate_resources(self, estimates):
         """
         Tries to allocate resources for the given estimates.
@@ -471,6 +474,12 @@ class DwellScheduler(PriorityScheduler):
         self.max_starttime = max_starttime
         self.duration = duration
 
+        # Duration must be non-negative or weird stuff will happen
+        assert self.duration >= timedelta(0, 0, 0)
+
+        # Time span for starttime must be sane
+        assert self.min_starttime <= self.max_starttime
+
     def _new_starttime(self, starttime):
         """
         Set new start and end time based on the start time
diff --git a/SAS/ResourceAssignment/ResourceAssigner/test/t_schedulers.py b/SAS/ResourceAssignment/ResourceAssigner/test/t_schedulers.py
index 9780ffee5ee9954240d2f8252e9e3677e72b2bb3..4c1a7533f00de013f675acebebe34948283d3f8e 100755
--- a/SAS/ResourceAssignment/ResourceAssigner/test/t_schedulers.py
+++ b/SAS/ResourceAssignment/ResourceAssigner/test/t_schedulers.py
@@ -223,14 +223,6 @@ class BasicSchedulerTest(SchedulerTest):
 
         self.scheduler = BasicScheduler(task_id, self.fake_resource_availability_checker, None)
 
-    def verify_claim(self, claim):
-        """ Verify whether a claim is correct and complete. """
-        self.assertIn("status", claim)
-        self.assertIn("starttime", claim)
-        self.assertIn("endtime", claim)
-
-        self.assertIn("claim_size", claim)
-        self.assertIn("resource_type_id", claim)
 
     def test_schedule_task(self):
         """ Whether a task (that fits) can be scheduled. """
@@ -245,11 +237,21 @@ class BasicSchedulerTest(SchedulerTest):
         self.assertTrue(self.fake_ra_database.committed)
         self.assertFalse(self.fake_ra_database.rolled_back)
 
-        # Claims must be present in database and valid
+        # Claim must be present in database
         claims = self.fake_ra_database.claims[0]
         self.assertTrue(claims)
-        for c in claims:
-            self.verify_claim(c)
+        self.assertEqual(len(claims), 1)
+
+        # Claim must be valid
+        claim = claims[0]
+        task = self.fake_ra_database.tasks[0]
+
+        self.assertEqual(claim["status"],           "claimed")
+        self.assertEqual(claim["starttime"],        task["starttime"])
+        self.assertEqual(claim["endtime"],          task["endtime"])
+        self.assertEqual(claim["claim_size"],       512)
+        self.assertEqual(claim["resource_type_id"], FakeResourceAvailabilityChecker.resource_types["bandwidth"])
+
 
     def test_multiple_resources(self):
         """ Whether a task (that fits) can be scheduled. """