Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/testing/test/util/output/ConsoleWriterTest.cc @ 9537

Last change on this file since 9537 was 9537, checked in by landauf, 11 years ago

ConsoleWriter now accepts and writes to any std::ostream, not just std::cout. Makes it easier to test.

File size: 1.9 KB
Line 
1#include <gtest/gtest.h>
2#include "util/Output.h"
3#include "util/output/ConsoleWriter.h"
4#include "util/output/OutputManager.h"
5
6namespace orxonox
7{
8    TEST(ConsoleWriterTest, Disable)
9    {
10        std::ostream stream(NULL);
11        EXPECT_EQ(0U, OutputManager::getInstance().getListeners().size());
12        ConsoleWriter writer(stream);
13        EXPECT_EQ(1U, OutputManager::getInstance().getListeners().size());
14        writer.disable();
15        EXPECT_EQ(0U, OutputManager::getInstance().getListeners().size());
16    }
17
18    TEST(ConsoleWriterTest, Enable)
19    {
20        std::ostream stream(NULL);
21        ConsoleWriter writer(stream);
22        writer.disable();
23        EXPECT_EQ(0U, OutputManager::getInstance().getListeners().size());
24        writer.enable();
25        EXPECT_EQ(1U, OutputManager::getInstance().getListeners().size());
26    }
27
28    TEST(ConsoleWriterTest, WritesNoOutputToOutputStream)
29    {
30        std::stringbuf buffer;
31        std::ostream stream(&buffer);
32        ConsoleWriter writer(stream);
33        writer.setLevelMax(level::verbose);
34
35        EXPECT_EQ(0, buffer.in_avail());
36        EXPECT_EQ("", buffer.str());
37    }
38
39    TEST(ConsoleWriterTest, WritesOutputToOutputStream)
40    {
41        std::stringbuf buffer;
42        std::ostream stream(&buffer);
43        ConsoleWriter writer(stream);
44        writer.setLevelMax(level::verbose);
45
46        std::vector<std::string> lines;
47        lines.push_back("test");
48
49        EXPECT_TRUE(writer.acceptsOutput(level::debug_output, context::undefined()));
50
51        writer.unfilteredOutput(level::debug_output, context::undefined(), lines);
52
53        EXPECT_LT(0, buffer.in_avail());
54        EXPECT_NE("", buffer.str());
55        EXPECT_NE(std::string::npos, buffer.str().find("test"));
56    }
57
58    TEST(ConsoleWriterTest, DefaultConsoleWriterUsesCout)
59    {
60        EXPECT_EQ(std::cout, OutputManager::getInstance().getConsoleWriter().getOutputStream());
61    }
62}
Note: See TracBrowser for help on using the repository browser.