mirror of
https://github.com/weaveworks/scope.git
synced 2026-05-10 19:27:04 +00:00
240 lines
4.4 KiB
Go
240 lines
4.4 KiB
Go
package report_test
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/weaveworks/common/test"
|
|
"github.com/weaveworks/scope/report"
|
|
)
|
|
|
|
func TestMulticolumnTables(t *testing.T) {
|
|
want := []report.Row{
|
|
{
|
|
ID: "row1",
|
|
Entries: map[string]string{
|
|
"col1": "r1c1",
|
|
"col2": "r1c2",
|
|
"col3": "r1c3",
|
|
},
|
|
},
|
|
{
|
|
ID: "row2",
|
|
Entries: map[string]string{
|
|
"col1": "r2c1",
|
|
"col3": "r2c3",
|
|
},
|
|
},
|
|
}
|
|
|
|
nmd := report.MakeNode("foo1")
|
|
nmd = nmd.AddPrefixMulticolumnTable("foo_", want)
|
|
|
|
template := report.TableTemplate{
|
|
Type: report.MulticolumnTableType,
|
|
Prefix: "foo_",
|
|
}
|
|
|
|
have, truncationCount := nmd.ExtractTable(template)
|
|
|
|
if truncationCount != 0 {
|
|
t.Error("Table shouldn't had been truncated")
|
|
}
|
|
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|
|
|
|
func TestPrefixPropertyLists(t *testing.T) {
|
|
want := []report.Row{
|
|
{
|
|
ID: "label_foo1",
|
|
Entries: map[string]string{
|
|
"label": "foo1",
|
|
"value": "bar1",
|
|
},
|
|
},
|
|
{
|
|
ID: "label_foo3",
|
|
Entries: map[string]string{
|
|
"label": "foo3",
|
|
"value": "bar3",
|
|
},
|
|
},
|
|
}
|
|
|
|
nmd := report.MakeNode("foo1")
|
|
nmd = nmd.AddPrefixPropertyList("foo_", map[string]string{
|
|
"foo3": "bar3",
|
|
"foo1": "bar1",
|
|
})
|
|
nmd = nmd.AddPrefixPropertyList("zzz_", map[string]string{
|
|
"foo2": "bar2",
|
|
})
|
|
|
|
template := report.TableTemplate{
|
|
Type: report.PropertyListType,
|
|
Prefix: "foo_",
|
|
}
|
|
|
|
have, truncationCount := nmd.ExtractTable(template)
|
|
|
|
if truncationCount != 0 {
|
|
t.Error("Table shouldn't had been truncated")
|
|
}
|
|
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|
|
|
|
func TestFixedPropertyLists(t *testing.T) {
|
|
want := []report.Row{
|
|
{
|
|
ID: "label_foo1",
|
|
Entries: map[string]string{
|
|
"label": "foo1",
|
|
"value": "bar1",
|
|
},
|
|
},
|
|
{
|
|
ID: "label_foo2",
|
|
Entries: map[string]string{
|
|
"label": "foo2",
|
|
"value": "bar2",
|
|
},
|
|
},
|
|
}
|
|
|
|
nmd := report.MakeNodeWith("foo1",
|
|
"foo2key", "bar2",
|
|
"foo1key", "bar1",
|
|
)
|
|
|
|
template := report.TableTemplate{
|
|
Type: report.PropertyListType,
|
|
FixedRows: map[string]string{
|
|
"foo2key": "foo2",
|
|
"foo1key": "foo1",
|
|
},
|
|
}
|
|
|
|
have, truncationCount := nmd.ExtractTable(template)
|
|
|
|
if truncationCount != 0 {
|
|
t.Error("Table shouldn't had been truncated")
|
|
}
|
|
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|
|
|
|
func TestTables(t *testing.T) {
|
|
want := []report.Table{
|
|
{
|
|
ID: "AAA",
|
|
Label: "Aaa",
|
|
Type: report.PropertyListType,
|
|
Columns: nil,
|
|
Rows: []report.Row{
|
|
{
|
|
ID: "label_foo1",
|
|
Entries: map[string]string{
|
|
"label": "foo1",
|
|
"value": "bar1",
|
|
},
|
|
},
|
|
{
|
|
ID: "label_foo3",
|
|
Entries: map[string]string{
|
|
"label": "foo3",
|
|
"value": "bar3",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
ID: "BBB",
|
|
Label: "Bbb",
|
|
Type: report.MulticolumnTableType,
|
|
Columns: []report.Column{{ID: "col1", Label: "Column 1"}},
|
|
Rows: []report.Row{
|
|
{
|
|
ID: "row1",
|
|
Entries: map[string]string{
|
|
"col1": "r1c1",
|
|
},
|
|
},
|
|
{
|
|
ID: "row2",
|
|
Entries: map[string]string{
|
|
"col3": "r2c3",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
ID: "CCC",
|
|
Label: "Ccc",
|
|
Type: report.PropertyListType,
|
|
Columns: nil,
|
|
Rows: []report.Row{
|
|
{
|
|
ID: "label_foo3",
|
|
Entries: map[string]string{
|
|
"label": "foo3",
|
|
"value": "bar3",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
nmd := report.MakeNodeWith("foo1",
|
|
"foo3key", "bar3",
|
|
"foo1key", "bar1",
|
|
)
|
|
nmd = nmd.AddPrefixMulticolumnTable("bbb_", []report.Row{
|
|
{ID: "row1", Entries: map[string]string{"col1": "r1c1"}},
|
|
{ID: "row2", Entries: map[string]string{"col3": "r2c3"}},
|
|
})
|
|
nmd = nmd.AddPrefixPropertyList("aaa_", map[string]string{
|
|
"foo3": "bar3",
|
|
"foo1": "bar1",
|
|
})
|
|
|
|
aaaTemplate := report.TableTemplate{
|
|
ID: "AAA",
|
|
Label: "Aaa",
|
|
Prefix: "aaa_",
|
|
Type: report.PropertyListType,
|
|
}
|
|
bbbTemplate := report.TableTemplate{
|
|
ID: "BBB",
|
|
Label: "Bbb",
|
|
Prefix: "bbb_",
|
|
Type: report.MulticolumnTableType,
|
|
Columns: []report.Column{{ID: "col1", Label: "Column 1"}},
|
|
}
|
|
cccTemplate := report.TableTemplate{
|
|
ID: "CCC",
|
|
Label: "Ccc",
|
|
Prefix: "ccc_",
|
|
Type: report.PropertyListType,
|
|
FixedRows: map[string]string{"foo3key": "foo3"},
|
|
}
|
|
templates := report.TableTemplates{
|
|
aaaTemplate.ID: aaaTemplate,
|
|
bbbTemplate.ID: bbbTemplate,
|
|
cccTemplate.ID: cccTemplate,
|
|
}
|
|
|
|
have := templates.Tables(nmd)
|
|
|
|
if !reflect.DeepEqual(want, have) {
|
|
t.Error(test.Diff(want, have))
|
|
}
|
|
}
|