Index: src/Fragmentation/Automation/FragmentJob.hpp
===================================================================
--- src/Fragmentation/Automation/FragmentJob.hpp	(revision af81f809ad4251794e6aad0bbbb5a062ccb10153)
+++ src/Fragmentation/Automation/FragmentJob.hpp	(revision 02f34688f788967fdd4765560ba2cde4ccd5ba81)
@@ -31,5 +31,5 @@
 class FragmentJob : public JobId
 {
-  friend class FragmentWorker;
+  friend class FragmentQueueTest;
 public:
   FragmentJob();
Index: src/Fragmentation/Automation/FragmentQueue.hpp
===================================================================
--- src/Fragmentation/Automation/FragmentQueue.hpp	(revision af81f809ad4251794e6aad0bbbb5a062ccb10153)
+++ src/Fragmentation/Automation/FragmentQueue.hpp	(revision 02f34688f788967fdd4765560ba2cde4ccd5ba81)
@@ -21,4 +21,5 @@
 #include "FragmentResult.hpp"
 
+class FragmentQueueTest;
 
 /** This class contains a deque for temporarily storing the FragmentJob
@@ -28,4 +29,5 @@
 class FragmentQueue
 {
+  friend class FragmentQueueTest;
 public:
   FragmentQueue();
Index: src/Fragmentation/Automation/FragmentResult.hpp
===================================================================
--- src/Fragmentation/Automation/FragmentResult.hpp	(revision af81f809ad4251794e6aad0bbbb5a062ccb10153)
+++ src/Fragmentation/Automation/FragmentResult.hpp	(revision 02f34688f788967fdd4765560ba2cde4ccd5ba81)
@@ -27,4 +27,5 @@
 class FragmentResult : public JobId
 {
+  friend class FragmentQueueTest;
 public:
   FragmentResult(const JobId_t id);
Index: src/Fragmentation/Automation/unittests/FragmentQueueUnitTest.cpp
===================================================================
--- src/Fragmentation/Automation/unittests/FragmentQueueUnitTest.cpp	(revision af81f809ad4251794e6aad0bbbb5a062ccb10153)
+++ src/Fragmentation/Automation/unittests/FragmentQueueUnitTest.cpp	(revision 02f34688f788967fdd4765560ba2cde4ccd5ba81)
@@ -26,4 +26,6 @@
 #include "FragmentQueueUnitTest.hpp"
 
+#include "CodePatterns/Assert.hpp"
+
 #ifdef HAVE_TESTRUNNER
 #include "UnitTestMain.hpp"
@@ -38,4 +40,7 @@
 void FragmentQueueTest::setUp()
 {
+  // Throw assertions
+  ASSERT_DO(Assert::Throw);
+
   queue = new FragmentQueue();
 }
@@ -51,4 +56,29 @@
 void FragmentQueueTest::JobsTest()
 {
+  FragmentJob testJob;
+  /// check for illegal id
+#ifndef NDEBUG
+  std::cout << "The following assertion is intended and does not indicate a failure." << std::endl;
+  CPPUNIT_ASSERT_THROW( queue->pushJob(testJob), Assert::AssertionFailure );
+#endif
+  // set to valid id
+  testJob.setId(1);
+  testJob.outputfile = std::string("do something");
+
+#ifndef NDEBUG
+  CPPUNIT_ASSERT_NO_THROW( queue->pushJob(testJob) );
+#else
+  queue->pushJob(testJob);
+#endif
+
+  CPPUNIT_ASSERT_EQUAL((size_t)1, queue->jobs.size());
+
+  // push same id again
+#ifndef NDEBUG
+  std::cout << "The following assertion is intended and does not indicate a failure." << std::endl;
+  CPPUNIT_ASSERT_THROW( queue->pushJob(testJob), Assert::AssertionFailure );
+#endif
+
+  CPPUNIT_ASSERT_EQUAL((size_t)1, queue->jobs.size());
 }
 
@@ -57,3 +87,48 @@
 void FragmentQueueTest::ResultsTest()
 {
+  // prepare a job
+  FragmentJob testJob;
+  testJob.setId(1);
+  testJob.outputfile = std::string("do something");
+  queue->pushJob(testJob);
+
+  // prepare a result
+  FragmentResult testResult(1);
+  FragmentResult wrongIdResult(2);
+
+  // check presence
+  CPPUNIT_ASSERT( !queue->isResultPresent(1) );
+  CPPUNIT_ASSERT( !queue->isResultPresent(2) );
+#ifndef NDEBUG
+  std::cout << "The following assertion is intended and does not indicate a failure." << std::endl;
+  CPPUNIT_ASSERT_THROW( queue->getResult(1), Assert::AssertionFailure );
+#endif
+
+  /// check for wrong id
+#ifndef NDEBUG
+  std::cout << "The following assertion is intended and does not indicate a failure." << std::endl;
+  CPPUNIT_ASSERT_THROW( queue->pushResult(wrongIdResult), Assert::AssertionFailure );
+#endif
+#ifndef NDEBUG
+  CPPUNIT_ASSERT_NO_THROW( queue->pushResult(testResult) );
+#else
+  queue->pushResult(testResult);
+#endif
+
+  // check presence again
+  CPPUNIT_ASSERT( queue->isResultPresent(1) );
+
+#ifndef NDEBUG
+  CPPUNIT_ASSERT_NO_THROW( queue->getResult(1) );
+#else
+  queue->getResult(1);
+#endif
+
+  // check presence one more time
+  CPPUNIT_ASSERT( !queue->isResultPresent(1) );
+  CPPUNIT_ASSERT( !queue->isResultPresent(2) );
+#ifndef NDEBUG
+  std::cout << "The following assertion is intended and does not indicate a failure." << std::endl;
+  CPPUNIT_ASSERT_THROW( queue->getResult(1), Assert::AssertionFailure );
+#endif
 }
Index: src/Fragmentation/Automation/unittests/FragmentQueueUnitTest.hpp
===================================================================
--- src/Fragmentation/Automation/unittests/FragmentQueueUnitTest.hpp	(revision af81f809ad4251794e6aad0bbbb5a062ccb10153)
+++ src/Fragmentation/Automation/unittests/FragmentQueueUnitTest.hpp	(revision 02f34688f788967fdd4765560ba2cde4ccd5ba81)
@@ -36,5 +36,4 @@
 private:
       FragmentQueue *queue;
-
 };
 
