-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathservice_test.go
More file actions
102 lines (86 loc) · 2.49 KB
/
Copy pathservice_test.go
File metadata and controls
102 lines (86 loc) · 2.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//go:build testing
package aegis
import "testing"
func TestGetServiceProviders(t *testing.T) {
topology := NewTopology()
// Add nodes with different services
_ = topology.AddNode(NodeInfo{
ID: "morpheus-1",
Name: "Morpheus Primary",
Type: NodeTypeGeneric,
Address: "morpheus-1:8443",
Services: []ServiceInfo{
{Name: "identity", Version: "v1"},
},
})
_ = topology.AddNode(NodeInfo{
ID: "morpheus-2",
Name: "Morpheus Secondary",
Type: NodeTypeGeneric,
Address: "morpheus-2:8443",
Services: []ServiceInfo{
{Name: "identity", Version: "v1"},
},
})
_ = topology.AddNode(NodeInfo{
ID: "vicky-1",
Name: "Vicky Primary",
Type: NodeTypeGeneric,
Address: "vicky-1:8443",
Services: []ServiceInfo{
{Name: "storage", Version: "v1"},
},
})
// Test GetServiceProviders
identityProviders := topology.GetServiceProviders("identity", "v1")
if len(identityProviders) != 2 {
t.Errorf("expected 2 identity providers, got %d", len(identityProviders))
}
storageProviders := topology.GetServiceProviders("storage", "v1")
if len(storageProviders) != 1 {
t.Errorf("expected 1 storage provider, got %d", len(storageProviders))
}
noProviders := topology.GetServiceProviders("nonexistent", "v1")
if len(noProviders) != 0 {
t.Errorf("expected 0 providers for nonexistent service, got %d", len(noProviders))
}
}
func TestGetNodesByService(t *testing.T) {
topology := NewTopology()
_ = topology.AddNode(NodeInfo{
ID: "node-1",
Name: "Node 1",
Type: NodeTypeGeneric,
Address: "node-1:8443",
Services: []ServiceInfo{
{Name: "identity", Version: "v1"},
},
})
_ = topology.AddNode(NodeInfo{
ID: "node-2",
Name: "Node 2",
Type: NodeTypeGeneric,
Address: "node-2:8443",
Services: []ServiceInfo{
{Name: "identity", Version: "v2"},
},
})
// GetNodesByService should return both versions
providers := topology.GetNodesByService("identity")
if len(providers) != 2 {
t.Errorf("expected 2 identity providers (any version), got %d", len(providers))
}
}
func TestNodeBuilderWithServices(t *testing.T) {
node := NewNode("test-node", "Test Node", NodeTypeGeneric, "localhost:8443")
node.Services = []ServiceInfo{
{Name: "identity", Version: "v1"},
{Name: "audit", Version: "v1"},
}
if len(node.Services) != 2 {
t.Errorf("expected 2 services, got %d", len(node.Services))
}
if node.Services[0].Name != "identity" {
t.Errorf("expected first service to be identity, got %s", node.Services[0].Name)
}
}