func TestFilterUnconnectedPesudoNodes(t *testing.T) { // Test pseudo nodes that are made unconnected by filtering // are also removed. { nodes := render.RenderableNodes{ "foo": {ID: "foo", Node: report.MakeNode().WithAdjacent("bar")}, "bar": {ID: "bar", Node: report.MakeNode().WithAdjacent("baz")}, "baz": {ID: "baz", Node: report.MakeNode(), Pseudo: true}, } renderer := render.Filter{ FilterFunc: func(node render.RenderableNode) bool { return true }, Renderer: mockRenderer{RenderableNodes: nodes}, } want := nodes.Prune() have := renderer.Render(report.MakeReport()).Prune() if !reflect.DeepEqual(want, have) { t.Error(test.Diff(want, have)) } } { renderer := render.Filter{ FilterFunc: func(node render.RenderableNode) bool { return node.ID != "bar" }, Renderer: mockRenderer{RenderableNodes: render.RenderableNodes{ "foo": {ID: "foo", Node: report.MakeNode().WithAdjacent("bar")}, "bar": {ID: "bar", Node: report.MakeNode().WithAdjacent("baz")}, "baz": {ID: "baz", Node: report.MakeNode(), Pseudo: true}, }}, } want := render.RenderableNodes{ "foo": {ID: "foo", Node: report.MakeNode()}, } have := renderer.Render(report.MakeReport()).Prune() if !reflect.DeepEqual(want, have) { t.Error(test.Diff(want, have)) } } { renderer := render.Filter{ FilterFunc: func(node render.RenderableNode) bool { return node.ID != "bar" }, Renderer: mockRenderer{RenderableNodes: render.RenderableNodes{ "foo": {ID: "foo", Node: report.MakeNode()}, "bar": {ID: "bar", Node: report.MakeNode().WithAdjacent("foo")}, "baz": {ID: "baz", Node: report.MakeNode().WithAdjacent("bar"), Pseudo: true}, }}, } want := render.RenderableNodes{ "foo": {ID: "foo", Node: report.MakeNode()}, } have := renderer.Render(report.MakeReport()).Prune() if !reflect.DeepEqual(want, have) { t.Error(test.Diff(want, have)) } } }
func TestMergeRenderableNodes(t *testing.T) { nodes1 := render.RenderableNodes{ "foo": render.RenderableNode{ID: "foo"}, "bar": render.RenderableNode{ID: "bar"}, } nodes2 := render.RenderableNodes{ "bar": render.RenderableNode{ID: "bar"}, "baz": render.RenderableNode{ID: "baz"}, } want := sterilize(render.RenderableNodes{ "foo": render.RenderableNode{ID: "foo"}, "bar": render.RenderableNode{ID: "bar"}, "baz": render.RenderableNode{ID: "baz"}, }, false) nodes1.Merge(nodes2) if have := sterilize(nodes1, false); !reflect.DeepEqual(want, have) { t.Error(test.Diff(want, have)) } }
func TestMergeRenderableNodes(t *testing.T) { nodes1 := render.RenderableNodes{ "foo": render.NewRenderableNode("foo"), "bar": render.NewRenderableNode("bar"), } nodes2 := render.RenderableNodes{ "bar": render.NewRenderableNode("bar"), "baz": render.NewRenderableNode("baz"), } want := expected.Sterilize(render.RenderableNodes{ "foo": render.NewRenderableNode("foo"), "bar": render.NewRenderableNode("bar"), "baz": render.NewRenderableNode("baz"), }) have := nodes1.Merge(nodes2) if !reflect.DeepEqual(want, have) { t.Error(test.Diff(want, have)) } }
func TestMergeRenderableNodes(t *testing.T) { nodes1 := render.RenderableNodes{ "foo": render.RenderableNode{ID: "foo"}, "bar": render.RenderableNode{ID: "bar"}, } nodes2 := render.RenderableNodes{ "bar": render.RenderableNode{ID: "bar"}, "baz": render.RenderableNode{ID: "baz"}, } want := render.RenderableNodes{ "foo": render.RenderableNode{ID: "foo"}, "bar": render.RenderableNode{ID: "bar"}, "baz": render.RenderableNode{ID: "baz"}, } nodes1.Merge(nodes2) if !reflect.DeepEqual(want, nodes1) { t.Errorf("want %+v, have %+v", want, nodes1) } }