data_test.go #1

  • //
  • guest/
  • perforce_software/
  • p4survey/
  • internal/
  • topology/
  • data_test.go
  • View
  • Commits
  • Open Download .zip Download (2 KB)
package topology

import "testing"

func TestNormalizeServersProducesPythonCompatibleRecords(t *testing.T) {
	servers := []map[string]string{
		{"ServerID": "master", "Services": "commit-server", "Type": "server"},
		{"ServerID": "edge", "Services": "edge-server", "Type": "server", "ExternalAddress": "edge.example.com:1666"},
	}
	topology := []map[string]string{
		{"ServerID": "edge", "ServerAddress": "edge.example.com:1666", "TargetServerID": "master", "Version": "P4D/2026.1"},
		{"ServerAddress": "10.0.0.5:1666", "TargetAddress": "master.example.com:1666", "TargetServerID": "master", "Type": "broker", "Version": "P4BROKER/2026.1"},
	}
	lookup := map[string]string{"edge.example.com": "Name: edge.example.com\nAddress: 10.0.0.10"}

	got := NormalizeServers(servers, topology, lookup)
	if len(got) != 3 {
		t.Fatalf("NormalizeServers() produced %d records, want 3: %#v", len(got), got)
	}
	byID := serverByID(got)
	if edge := byID["edge"]; edge.Target != "master" || edge.Port != "1666" || edge.IP != "10.0.0.10" || edge.Version != "P4D/2026.1" || !edge.Participates {
		t.Errorf("edge normalization = %#v", edge)
	}
	if broker := byID["broker-10-0-0-5"]; broker.ServerType != "broker" || broker.Target != "master" || broker.Notes[0] != "broker for master" {
		t.Errorf("broker normalization = %#v", broker)
	}
	if master := byID["master"]; master.TargetSource != "root" {
		t.Errorf("master normalization = %#v", master)
	}
}

func serverByID(servers []Server) map[string]Server {
	byID := make(map[string]Server, len(servers))
	for _, server := range servers {
		byID[server.ServerID] = server
	}
	return byID
}
# Change User Description Committed
#1 33865 Robert Cowham Save enriched server info for compatibility with python version