File: formater_test.cc

package info (click to toggle)
zypper 1.14.95-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 28,564 kB
  • sloc: cpp: 27,591; sh: 718; perl: 133; xml: 109; python: 39; makefile: 14
file content (128 lines) | stat: -rw-r--r-- 2,323 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include <tests/lib/TestSetup.h>
#include "output/Out.h"

typedef std::vector<std::string> Container;
Container container {
  "aaaa",  "bbbb",  "cccc",  "dddd",  "eeee",
  "ffff",  "gggg",  "hhhh",  "iiii",  "jjjj",
};

struct Formater
{
  //typedef out::DefaultListLayout NormalLayout;

  std::string listElement( const std::string & val_r ) const
  { return val_r; }
};

BOOST_AUTO_TEST_CASE(init)
{
  struct OutTest : public OutNormal
  {
    using OutNormal::OutNormal;
    unsigned termwidth() const override { return 30; }
  };
  Zypper::instance().setOutputWriter( new OutTest );
}


template <class TFormater, class TLayout>
std::ostream & writeout( std::ostream & str_r, const Container & container_r, TFormater && formater_r, TLayout && layout_r )
{
  str_r << "+++++" << endl;
  out::writeContainer( str_r, container_r, std::forward<TFormater>(formater_r), std::forward<TLayout>(layout_r) );
  str_r << "-----" << endl;
  return str_r;
}

template <class TFormater, class TLayout>
std::string writestr( const Container & container_r, TFormater && formater_r, TLayout && layout_r )
{
  std::ostringstream out;
  writeout( out, container_r, std::forward<TFormater>(formater_r), std::forward<TLayout>(layout_r) );
  return out.str();
}


BOOST_AUTO_TEST_CASE(list_formater)
{
  BOOST_CHECK_EQUAL( writestr( container, Formater(), out::DefaultListLayout() ),
"+++++\n\
aaaa\n\
bbbb\n\
cccc\n\
dddd\n\
eeee\n\
ffff\n\
gggg\n\
hhhh\n\
iiii\n\
jjjj\n\
-----\n" );
  BOOST_CHECK_EQUAL( writestr( container, Formater(), out::DefaultGapedListLayout() ),
"+++++\n\
\n\
aaaa\n\
\n\
bbbb\n\
\n\
cccc\n\
\n\
dddd\n\
\n\
eeee\n\
\n\
ffff\n\
\n\
gggg\n\
\n\
hhhh\n\
\n\
iiii\n\
\n\
jjjj\n\
-----\n" );
  BOOST_CHECK_EQUAL( writestr( container, Formater(), out::IndentedListLayout() ),
"+++++\n\
  aaaa\n\
  bbbb\n\
  cccc\n\
  dddd\n\
  eeee\n\
  ffff\n\
  gggg\n\
  hhhh\n\
  iiii\n\
  jjjj\n\
-----\n" );

  BOOST_CHECK_EQUAL( writestr( container, Formater(), out::IndentedGapedListLayout() ),
"+++++\n\
\n\
  aaaa\n\
\n\
  bbbb\n\
\n\
  cccc\n\
\n\
  dddd\n\
\n\
  eeee\n\
\n\
  ffff\n\
\n\
  gggg\n\
\n\
  hhhh\n\
\n\
  iiii\n\
\n\
  jjjj\n\
-----\n" );

  BOOST_CHECK_EQUAL( writestr( container, Formater(), out::CompressedListLayout() ),
"+++++\n\
  aaaa bbbb cccc dddd eeee\n\
  ffff gggg hhhh iiii jjjj\n\
-----\n" );
}