Index: code/branches/testing/src/libraries/util/output/ConsoleWriter.h
===================================================================
--- code/branches/testing/src/libraries/util/output/ConsoleWriter.h	(revision 9534)
+++ code/branches/testing/src/libraries/util/output/ConsoleWriter.h	(revision 9535)
@@ -50,4 +50,8 @@
     {
         public:
+            ConsoleWriter();
+            ConsoleWriter(const ConsoleWriter&);
+            virtual ~ConsoleWriter();
+
             static ConsoleWriter& getInstance();
 
@@ -59,8 +63,4 @@
 
         private:
-            ConsoleWriter();
-            ConsoleWriter(const ConsoleWriter&);
-            virtual ~ConsoleWriter();
-
             bool bEnabled_; ///< If false, the instance will not write output to the console.
     };
Index: code/branches/testing/src/libraries/util/output/LogWriter.h
===================================================================
--- code/branches/testing/src/libraries/util/output/LogWriter.h	(revision 9534)
+++ code/branches/testing/src/libraries/util/output/LogWriter.h	(revision 9535)
@@ -57,4 +57,8 @@
     {
         public:
+            LogWriter();
+            LogWriter(const LogWriter&);
+            virtual ~LogWriter();
+
             static LogWriter& getInstance();
 
@@ -65,8 +69,4 @@
 
         private:
-            LogWriter();
-            LogWriter(const LogWriter&);
-            virtual ~LogWriter();
-
             void openFile();
             void closeFile();
Index: code/branches/testing/src/libraries/util/output/MemoryWriter.h
===================================================================
--- code/branches/testing/src/libraries/util/output/MemoryWriter.h	(revision 9534)
+++ code/branches/testing/src/libraries/util/output/MemoryWriter.h	(revision 9535)
@@ -67,4 +67,8 @@
 
         public:
+            MemoryWriter();
+            MemoryWriter(const MemoryWriter&);
+            virtual ~MemoryWriter();
+
             static MemoryWriter& getInstance();
 
@@ -76,8 +80,4 @@
 
         private:
-            MemoryWriter();
-            MemoryWriter(const MemoryWriter&);
-            virtual ~MemoryWriter();
-
             std::vector<Message> messages_; ///< Stores all output messages from the creation of this instance until disable() is called.
     };
Index: code/branches/testing/src/libraries/util/output/OutputDefinitions.h
===================================================================
--- code/branches/testing/src/libraries/util/output/OutputDefinitions.h	(revision 9534)
+++ code/branches/testing/src/libraries/util/output/OutputDefinitions.h	(revision 9535)
@@ -105,4 +105,9 @@
         OutputContextSubID sub_id;  ///< The id of the sub-context (or context::no_subcontext if this container doesn't define a sub-context)
         std::string name;           ///< The name of this context
+
+        inline bool operator==(const OutputContextContainer& other) const
+        {
+            return this->mask == other.mask && this->sub_id == other.sub_id && this->name == other.name;
+        }
     };
 
Index: code/branches/testing/src/libraries/util/output/OutputManager.h
===================================================================
--- code/branches/testing/src/libraries/util/output/OutputManager.h	(revision 9534)
+++ code/branches/testing/src/libraries/util/output/OutputManager.h	(revision 9535)
@@ -102,5 +102,4 @@
             std::string getDefaultPrefix(OutputLevel level, const OutputContextContainer& context) const;
 
-        protected:
             inline const std::vector<OutputListener*>& getListeners() const
                 { return this->listeners_; }
Index: code/branches/testing/test/util/output/ConsoleWriterTest.cc
===================================================================
--- code/branches/testing/test/util/output/ConsoleWriterTest.cc	(revision 9534)
+++ code/branches/testing/test/util/output/ConsoleWriterTest.cc	(revision 9535)
@@ -1,6 +1,25 @@
 #include <gtest/gtest.h>
 #include "util/Output.h"
+#include "util/output/ConsoleWriter.h"
+#include "util/output/OutputManager.h"
 
 namespace orxonox
 {
+    TEST(ConsoleWriterTest, Disable)
+    {
+        EXPECT_EQ(0U, OutputManager::getInstance().getListeners().size());
+        ConsoleWriter writer;
+        EXPECT_EQ(1U, OutputManager::getInstance().getListeners().size());
+        writer.disable();
+        EXPECT_EQ(0U, OutputManager::getInstance().getListeners().size());
+    }
+
+    TEST(ConsoleWriterTest, Enable)
+    {
+        ConsoleWriter writer;
+        writer.disable();
+        EXPECT_EQ(0U, OutputManager::getInstance().getListeners().size());
+        writer.enable();
+        EXPECT_EQ(1U, OutputManager::getInstance().getListeners().size());
+    }
 }
Index: code/branches/testing/test/util/output/MemoryWriterTest.cc
===================================================================
--- code/branches/testing/test/util/output/MemoryWriterTest.cc	(revision 9534)
+++ code/branches/testing/test/util/output/MemoryWriterTest.cc	(revision 9535)
@@ -1,6 +1,46 @@
 #include <gtest/gtest.h>
+#include <gmock/gmock.h>
 #include "util/Output.h"
+#include "util/output/MemoryWriter.h"
+#include "util/output/OutputManager.h"
 
 namespace orxonox
 {
+    namespace
+    {
+        class MockOutputListener : public OutputListener
+        {
+            public:
+                MOCK_METHOD3(output, void(OutputLevel, const OutputContextContainer&, const std::vector<std::string>&));
+        };
+    }
+
+    TEST(MemoryWriterTest, Disable)
+    {
+        EXPECT_EQ(0U, OutputManager::getInstance().getListeners().size());
+        MemoryWriter writer;
+        EXPECT_EQ(1U, OutputManager::getInstance().getListeners().size());
+        writer.disable();
+        EXPECT_EQ(0U, OutputManager::getInstance().getListeners().size());
+    }
+
+    TEST(MemoryWriterTest, ResendOutput)
+    {
+        MemoryWriter writer;
+
+        std::vector<std::string> lines;
+        lines.push_back("random line of output");
+        lines.push_back("another line of output");
+
+        writer.unfilteredOutput(level::user_info, context::undefined(), lines);
+        writer.unfilteredOutput(level::verbose, context::xml(), lines);
+
+        MockOutputListener other;
+        other.setLevelMask(level::all);
+
+        EXPECT_CALL(other, output(level::user_info, context::undefined(), lines));
+        EXPECT_CALL(other, output(level::verbose, context::xml(), lines));
+
+        writer.resendOutput(&other);
+    }
 }
Index: code/branches/testing/test/util/output/OutputListenerTest.cc
===================================================================
--- code/branches/testing/test/util/output/OutputListenerTest.cc	(revision 9534)
+++ code/branches/testing/test/util/output/OutputListenerTest.cc	(revision 9535)
@@ -313,5 +313,5 @@
 
         std::vector<std::string> lines;
-        EXPECT_CALL(listener, output(level, ::testing::_, lines)).Times(1);
+        EXPECT_CALL(listener, output(level, context, lines)).Times(1);
 
         listener.unfilteredOutput(level, context, lines);
@@ -330,5 +330,5 @@
 
         std::vector<std::string> lines;
-        EXPECT_CALL(listener, output(level, ::testing::_, lines)).Times(0);
+        EXPECT_CALL(listener, output(level, context, lines)).Times(0);
 
         listener.unfilteredOutput(level, context, lines);
