Add unit test for short lived connections from the internet node.

This commit is contained in:
Tom Wilkie
2015-10-02 10:56:22 +00:00
parent ab83f41dba
commit 38ec5e9fef

View File

@@ -0,0 +1,94 @@
package render_test
import (
"fmt"
"reflect"
"testing"
"github.com/weaveworks/scope/probe/docker"
"github.com/weaveworks/scope/probe/endpoint"
"github.com/weaveworks/scope/render"
"github.com/weaveworks/scope/report"
"github.com/weaveworks/scope/test"
)
var (
serverHostID = "host1"
serverHostNodeID = report.MakeHostNodeID(serverHostID)
randomIP = "3.4.5.6"
randomPort = "56789"
randomEndpointNodeID = report.MakeEndpointNodeID(serverHostID, randomIP, randomPort)
serverIP = "192.168.1.1"
serverPort = "80"
serverEndpointNodeID = report.MakeEndpointNodeID(serverHostID, serverIP, serverPort)
containerID = "a1b2c3d4e5"
containerIP = "192.168.0.1"
containerName = "foo"
containerNodeID = report.MakeContainerNodeID(serverHostID, containerID)
rpt = report.Report{
Endpoint: report.Topology{
Nodes: report.Nodes{
randomEndpointNodeID: report.MakeNode().WithMetadata(map[string]string{
endpoint.Addr: randomIP,
endpoint.Port: randomPort,
endpoint.Conntracked: "true",
}).WithAdjacent(serverEndpointNodeID),
serverEndpointNodeID: report.MakeNode().WithMetadata(map[string]string{
endpoint.Addr: serverIP,
endpoint.Port: serverPort,
endpoint.Conntracked: "true",
}),
},
},
Container: report.Topology{
Nodes: report.Nodes{
containerNodeID: report.MakeNode().WithMetadata(map[string]string{
docker.ContainerID: containerID,
docker.ContainerName: containerName,
docker.ContainerIPs: containerIP,
docker.ContainerPorts: fmt.Sprintf("%s:%s->%s/tcp", serverIP, serverPort, serverPort),
report.HostNodeID: serverHostNodeID,
}),
},
},
Host: report.Topology{
Nodes: report.Nodes{
serverHostNodeID: report.MakeNodeWith(map[string]string{
"local_networks": "192.168.0.0/16",
report.HostNodeID: serverHostNodeID,
}),
},
},
}
want = (render.RenderableNodes{
render.TheInternetID: {
ID: render.TheInternetID,
LabelMajor: render.TheInternetMajor,
Pseudo: true,
Node: report.MakeNode().WithAdjacent(containerID),
Origins: report.MakeIDList(randomEndpointNodeID),
},
containerID: {
ID: containerID,
LabelMajor: containerName,
LabelMinor: serverHostID,
Rank: "",
Pseudo: false,
Origins: report.MakeIDList(containerNodeID, serverEndpointNodeID, serverHostNodeID),
Node: report.MakeNode(),
},
}).Prune()
)
func TestShortLivedInternetNodeConnections(t *testing.T) {
have := (render.ContainerWithImageNameRenderer.Render(rpt)).Prune()
if !reflect.DeepEqual(want, have) {
t.Error(test.Diff(want, have))
}
}