diff --git a/shoebox/shoebox.py b/shoebox/shoebox.py
index 2a4451b..13fbb73 100644
--- a/shoebox/shoebox.py
+++ b/shoebox/shoebox.py
@@ -48,6 +48,10 @@ TODO: How will the ReadingRollManager know which files to read
 from, and in which order, if the filename is templated?
 """
 
+def now():
+    """Broken out for testing."""
+    return datetime.datetime.utcnow()
+
 
 class RollChecker(object):
     def start(self, archive):
@@ -62,11 +66,11 @@ class TimeRollChecker(RollChecker):
         self.timedelta = timedelta
 
     def start(self, archive):
-        self.start_time = datetime.datetime.utcnow()
+        self.start_time = now()
         self.end_time = self.start_time + self.timedelta
 
     def check(self, archive):
-        return datetime.datetime.utcnow() >= self.end_time
+        return now() >= self.end_time
 
 
 class SizeRollChecker(RollChecker):
@@ -75,7 +79,7 @@ class SizeRollChecker(RollChecker):
 
     def check(self, archive):
         size = archive._get_file_handle().tell()
-        return size / 1073741824 > self.size_in_gb
+        return size / 1073741824 >= self.size_in_gb
 
 
 class RollManager(object):
@@ -86,9 +90,9 @@ class RollManager(object):
         self.active_archive = None
 
     def _make_filename(self):
-        now = datetime.datetime.utcnow()
+        now = now()
         return now.strftime(self.filename_template)
-        
+
     def get_active_archive(self):
         if not self.active_archive:
             filename = self._make_filename()
@@ -107,7 +111,7 @@ class RollManager(object):
 class ReadingRollManager(RollManager):
 
     def __init__(self, filename_template, roll_checker):
-        super(ReadingRollManager, self).__init__(filename_template, 
+        super(ReadingRollManager, self).__init__(filename_template,
                                                  roll_checker)
         self.archive_class = ArchiveReader
 
@@ -123,7 +127,7 @@ class ReadingRollManager(RollManager):
 
 class WritingRollManager(RollManager):
     def __init__(self, filename_template, roll_checker):
-        super(ReadingRollManager, self).__init__(filename_template, 
+        super(ReadingRollManager, self).__init__(filename_template,
                                                  roll_checker)
         self.archive_class = ArchiveWriter
 
@@ -152,7 +156,7 @@ class ArchiveWriter(object):
     def write(self, payload):
         pass
 
-        
+
 
 class ArchiveReader(object):
     """The active Archive for consuming.
diff --git a/test/test_shoebox.py b/test/test_shoebox.py
index 6da01d6..cd0f808 100644
--- a/test/test_shoebox.py
+++ b/test/test_shoebox.py
@@ -1,3 +1,4 @@
+import datetime
 import mock
 import unittest
 
@@ -5,9 +6,48 @@ from shoebox import shoebox
 
 
 class TestRollChecker(unittest.TestCase):
+    def test_time_roll_checker_start(self):
+        one_hour = datetime.timedelta(hours=1)
+        x = shoebox.TimeRollChecker(one_hour)
+        now = datetime.datetime.utcnow()
+        with mock.patch.object(shoebox, 'now') as dt:
+            dt.return_value = now
+            x.start(None)
+        self.assertEqual(x.start_time, now)
+        self.assertEqual(x.end_time, now + one_hour)
 
-    def test_time_roll_checker(self):
-    	pass
+    def test_time_roll_checker_end(self):
+        one_hour = datetime.timedelta(hours=1)
+        x = shoebox.TimeRollChecker(one_hour)
+        now = datetime.datetime.utcnow()
+        x.start_time = now
+        x.end_time = now + one_hour
+        with mock.patch.object(shoebox, 'now') as dt:
+            dt.return_value = now + one_hour
+            self.assertTrue(x.check(None))
 
-#if __name__ == '__main__':
-#    unittest.main()
\ No newline at end of file
+        with mock.patch.object(shoebox, 'now') as dt:
+            dt.return_value = now
+            self.assertFalse(x.check(None))
+
+        with mock.patch.object(shoebox, 'now') as dt:
+            dt.return_value = now + one_hour - datetime.timedelta(seconds = 1)
+            self.assertFalse(x.check(None))
+
+    def test_size_roll_checker_end(self):
+        one_gig = 1073741824
+        x = shoebox.SizeRollChecker(10)
+
+        archive = mock.Mock()
+        archive._get_file_handle.return_value.tell.return_value = one_gig * 5
+        self.assertFalse(x.check(archive))
+
+        archive._get_file_handle.return_value.tell.return_value = one_gig * 10
+        self.assertTrue(x.check(archive))
+
+        archive._get_file_handle.return_value.tell.return_value = one_gig * 11
+        self.assertTrue(x.check(archive))
+
+
+class TestRollManager(unittest.TestCase):
+    pass  # Next ...