pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/fmtutil/table/table_test.go (about) 1 package table 2 3 // ////////////////////////////////////////////////////////////////////////////////// // 4 // // 5 // Copyright (c) 2022 ESSENTIAL KAOS // 6 // Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0> // 7 // // 8 // ////////////////////////////////////////////////////////////////////////////////// // 9 10 import ( 11 "strings" 12 "testing" 13 14 . "pkg.re/essentialkaos/check.v1" 15 ) 16 17 // ////////////////////////////////////////////////////////////////////////////////// // 18 19 func Test(t *testing.T) { TestingT(t) } 20 21 type TableSuite struct{} 22 23 // ////////////////////////////////////////////////////////////////////////////////// // 24 25 var _ = Suite(&TableSuite{}) 26 27 // ////////////////////////////////////////////////////////////////////////////////// // 28 29 func (s *TableSuite) TestNewTable(c *C) { 30 c.Assert(NewTable(), NotNil) 31 } 32 33 func (s *TableSuite) TestSetHeaders(c *C) { 34 var t *Table 35 36 c.Assert(t.SetHeaders("abc"), IsNil) 37 38 t = NewTable("abc") 39 40 c.Assert(t.SetHeaders("abc", "def", "123"), NotNil) 41 c.Assert(t.Headers, HasLen, 3) 42 } 43 44 func (s *TableSuite) TestRenderHeaders(c *C) { 45 t := NewTable("abc", "def") 46 t.RenderHeaders() 47 } 48 49 func (s *TableSuite) TestSetSizes(c *C) { 50 var t *Table 51 52 c.Assert(t.SetSizes(10, 20, 30), IsNil) 53 54 t = NewTable() 55 56 c.Assert(t.SetSizes(10, 20, 30), NotNil) 57 c.Assert(t.Sizes, HasLen, 3) 58 } 59 60 func (s *TableSuite) TestSetAlignments(c *C) { 61 var t *Table 62 63 c.Assert(t.SetAlignments(0, 1, 2), IsNil) 64 65 t = NewTable() 66 67 c.Assert(t.SetAlignments(0, 1, 2), NotNil) 68 c.Assert(t.Alignment, HasLen, 3) 69 } 70 71 func (s *TableSuite) TestHasData(c *C) { 72 t := NewTable("1", "2", "3") 73 74 c.Assert(t.HasData(), Equals, false) 75 76 c.Assert(t.Add(10, "abc", 3.14), NotNil) 77 78 c.Assert(t.HasData(), Equals, true) 79 } 80 81 func (s *TableSuite) TestAdd(c *C) { 82 var t *Table 83 84 c.Assert(t.Add(10, "abc", 3.14), IsNil) 85 86 t = NewTable() 87 88 c.Assert(t.Add(), NotNil) 89 c.Assert(t.Add(10, "abc", 3.14), NotNil) 90 c.Assert(t.data, HasLen, 1) 91 } 92 93 func (s *TableSuite) TestPrint(c *C) { 94 var t *Table 95 96 c.Assert(t.Print(10, "abc", 3.14), IsNil) 97 98 t = NewTable("ABCD", "ABCDEF", "ABCD") 99 100 c.Assert(t.Print(10, "abc", 3.14), NotNil) 101 c.Assert(t.Print(10, "abĀµ", 3.14, 400), NotNil) 102 } 103 104 func (s *TableSuite) TestSeparator(c *C) { 105 var t *Table 106 107 c.Assert(t.Separator(), IsNil) 108 109 t = NewTable() 110 111 c.Assert(t.Separator(), NotNil) 112 } 113 114 func (s *TableSuite) TestRender(c *C) { 115 var t *Table 116 117 c.Assert(t.Render(), IsNil) 118 119 t = NewTable() 120 121 c.Assert(t.Render(), NotNil) 122 c.Assert(t.Print(), NotNil) 123 124 t = NewTable() 125 126 c.Assert(t.Render(), NotNil) 127 128 c.Assert(t.Add(10, "abc", 3.14), NotNil) 129 c.Assert(t.Add(11, "ABC", 2.28), NotNil) 130 c.Assert(t.Add(11, "ABC", strings.Repeat("ABC123_", 20)), NotNil) 131 132 c.Assert(t.Render(), NotNil) 133 134 t.SetHeaders("id", "name", "price") 135 t.SetSizes(12, 12, 12) 136 t.SetAlignments(ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT) 137 138 HeaderCapitalize = true 139 140 c.Assert(t.Add(10, "abc", 3.14), NotNil) 141 c.Assert(t.Add(11, "{g}ABC{!}", 2.28, 400), NotNil) 142 143 c.Assert(t.Render(), NotNil) 144 145 HeaderCapitalize = false 146 } 147 148 func (s *TableSuite) TestPrintWithoutInit(c *C) { 149 t := NewTable() 150 t.Print("abcd", 1234) 151 } 152 153 func (s *TableSuite) TestAuxi(c *C) { 154 t := &Table{Sizes: []int{1, 2, 3, 4}} 155 156 c.Assert(getColumnsNum(t), Equals, len(t.Sizes)) 157 158 t = &Table{columnSizes: []int{4, 4}} 159 renderRowData(t, []string{"ABCDABCDABCD", "ABCDABCDABCD"}, 2) 160 161 MaxWidth = 80 162 163 setColumnsSizes(t, 3) 164 c.Assert(t.columnSizes[0], Equals, 23) 165 c.Assert(t.columnSizes[1], Equals, 23) 166 c.Assert(t.columnSizes[2], Equals, 25) 167 168 MaxWidth = 0 169 }