[Orxonox-commit 4866] r9535 - in code/branches/testing: src/libraries/util/output test/util/output

landauf at orxonox.net landauf at orxonox.net
Mon Mar 4 22:24:31 CET 2013


Author: landauf
Date: 2013-03-04 22:24:30 +0100 (Mon, 04 Mar 2013)
New Revision: 9535

Modified:
   code/branches/testing/src/libraries/util/output/ConsoleWriter.h
   code/branches/testing/src/libraries/util/output/LogWriter.h
   code/branches/testing/src/libraries/util/output/MemoryWriter.h
   code/branches/testing/src/libraries/util/output/OutputDefinitions.h
   code/branches/testing/src/libraries/util/output/OutputManager.h
   code/branches/testing/test/util/output/ConsoleWriterTest.cc
   code/branches/testing/test/util/output/MemoryWriterTest.cc
   code/branches/testing/test/util/output/OutputListenerTest.cc
Log:
more tests

Modified: code/branches/testing/src/libraries/util/output/ConsoleWriter.h
===================================================================
--- code/branches/testing/src/libraries/util/output/ConsoleWriter.h	2013-03-03 19:25:53 UTC (rev 9534)
+++ code/branches/testing/src/libraries/util/output/ConsoleWriter.h	2013-03-04 21:24:30 UTC (rev 9535)
@@ -49,6 +49,10 @@
     class _UtilExport ConsoleWriter : public BaseWriter
     {
         public:
+            ConsoleWriter();
+            ConsoleWriter(const ConsoleWriter&);
+            virtual ~ConsoleWriter();
+
             static ConsoleWriter& getInstance();
 
             void enable();
@@ -58,10 +62,6 @@
             virtual void printLine(const std::string& line, OutputLevel level);
 
         private:
-            ConsoleWriter();
-            ConsoleWriter(const ConsoleWriter&);
-            virtual ~ConsoleWriter();
-
             bool bEnabled_; ///< If false, the instance will not write output to the console.
     };
 }

Modified: code/branches/testing/src/libraries/util/output/LogWriter.h
===================================================================
--- code/branches/testing/src/libraries/util/output/LogWriter.h	2013-03-03 19:25:53 UTC (rev 9534)
+++ code/branches/testing/src/libraries/util/output/LogWriter.h	2013-03-04 21:24:30 UTC (rev 9535)
@@ -56,6 +56,10 @@
     class _UtilExport LogWriter : public BaseWriter
     {
         public:
+            LogWriter();
+            LogWriter(const LogWriter&);
+            virtual ~LogWriter();
+
             static LogWriter& getInstance();
 
             void setLogPath(const std::string& path);
@@ -64,10 +68,6 @@
             virtual void printLine(const std::string& line, OutputLevel level);
 
         private:
-            LogWriter();
-            LogWriter(const LogWriter&);
-            virtual ~LogWriter();
-
             void openFile();
             void closeFile();
 

Modified: code/branches/testing/src/libraries/util/output/MemoryWriter.h
===================================================================
--- code/branches/testing/src/libraries/util/output/MemoryWriter.h	2013-03-03 19:25:53 UTC (rev 9534)
+++ code/branches/testing/src/libraries/util/output/MemoryWriter.h	2013-03-04 21:24:30 UTC (rev 9535)
@@ -66,6 +66,10 @@
         };
 
         public:
+            MemoryWriter();
+            MemoryWriter(const MemoryWriter&);
+            virtual ~MemoryWriter();
+
             static MemoryWriter& getInstance();
 
             void resendOutput(OutputListener* listener) const;
@@ -75,10 +79,6 @@
             virtual void output(OutputLevel level, const OutputContextContainer& context, const std::vector<std::string>& lines);
 
         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.
     };
 }

Modified: code/branches/testing/src/libraries/util/output/OutputDefinitions.h
===================================================================
--- code/branches/testing/src/libraries/util/output/OutputDefinitions.h	2013-03-03 19:25:53 UTC (rev 9534)
+++ code/branches/testing/src/libraries/util/output/OutputDefinitions.h	2013-03-04 21:24:30 UTC (rev 9535)
@@ -104,6 +104,11 @@
         OutputContextMask mask;     ///< The mask of the context (or the mask of the main-context if this container defines a sub-context)
         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;
+        }
     };
 
     typedef const OutputContextContainer& (OutputContextFunction)();

Modified: code/branches/testing/src/libraries/util/output/OutputManager.h
===================================================================
--- code/branches/testing/src/libraries/util/output/OutputManager.h	2013-03-03 19:25:53 UTC (rev 9534)
+++ code/branches/testing/src/libraries/util/output/OutputManager.h	2013-03-04 21:24:30 UTC (rev 9535)
@@ -101,7 +101,6 @@
             const std::string& getLevelName(OutputLevel level) const;
             std::string getDefaultPrefix(OutputLevel level, const OutputContextContainer& context) const;
 
-        protected:
             inline const std::vector<OutputListener*>& getListeners() const
                 { return this->listeners_; }
 

Modified: code/branches/testing/test/util/output/ConsoleWriterTest.cc
===================================================================
--- code/branches/testing/test/util/output/ConsoleWriterTest.cc	2013-03-03 19:25:53 UTC (rev 9534)
+++ code/branches/testing/test/util/output/ConsoleWriterTest.cc	2013-03-04 21:24:30 UTC (rev 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());
+    }
 }

Modified: code/branches/testing/test/util/output/MemoryWriterTest.cc
===================================================================
--- code/branches/testing/test/util/output/MemoryWriterTest.cc	2013-03-03 19:25:53 UTC (rev 9534)
+++ code/branches/testing/test/util/output/MemoryWriterTest.cc	2013-03-04 21:24:30 UTC (rev 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);
+    }
 }

Modified: code/branches/testing/test/util/output/OutputListenerTest.cc
===================================================================
--- code/branches/testing/test/util/output/OutputListenerTest.cc	2013-03-03 19:25:53 UTC (rev 9534)
+++ code/branches/testing/test/util/output/OutputListenerTest.cc	2013-03-04 21:24:30 UTC (rev 9535)
@@ -312,7 +312,7 @@
         EXPECT_TRUE(listener.acceptsOutput(level, context));
 
         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);
     }
@@ -329,7 +329,7 @@
         EXPECT_FALSE(listener.acceptsOutput(level, context));
 
         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);
     }




More information about the Orxonox-commit mailing list