Newer
Older
package nucleus
import (
"testing"
eventservice "code.fbi.h-da.de/danet/gosdn/controller/eventService"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkelement"
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound"
"code.fbi.h-da.de/danet/gosdn/controller/mocks"
"code.fbi.h-da.de/danet/gosdn/controller/store"
"github.com/google/uuid"
spb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/southbound"
)
func getMockNetworkElement(mneID uuid.UUID, sbi southbound.SouthboundInterface) networkelement.NetworkElement {
return &CommonNetworkElement{
UUID: mneID,
Model: sbi.Schema().Root,
sbi: sbi,
transport: &mocks.Transport{},
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
103
104
105
106
107
108
109
110
111
112
113
}
}
func getNetworkElementTestStores(t *testing.T, mneID uuid.UUID) (networkelement.Service, southbound.Service, networkelement.NetworkElement, southbound.SouthboundInterface) {
eventService := eventservice.NewMockEventService()
sbiStore := NewMemorySbiStore()
networkElementStore := NewMemoryNetworkElementStore()
sbiService := NewSbiService(sbiStore, eventService)
networkElementService := NewNetworkElementService(
networkElementStore,
sbiService,
eventService,
)
sbi, err := NewSBI(spb.Type_TYPE_OPENCONFIG)
if err != nil {
t.Error("could not create sbi")
}
err = sbiService.Add(sbi)
if err != nil {
t.Error("could not add sbi")
}
mockNetworkElement := getMockNetworkElement(mneID, sbi)
err = networkElementService.Add(mockNetworkElement)
if err != nil {
t.Error("could not add network element")
}
return networkElementService, sbiService, mockNetworkElement, sbi
}
func TestNetworkElementService_Get(t *testing.T) {
mneID := uuid.New()
networkElementService, _, mockNetworkElement, _ := getNetworkElementTestStores(t, mneID)
mne, err := networkElementService.Get(store.Query{
ID: mockNetworkElement.ID(),
Name: mockNetworkElement.Name(),
})
if err != nil {
t.Error("could not get network element")
}
if mockNetworkElement.ID() != mne.ID() {
t.Errorf("Expected ID=%s, got %s", mockNetworkElement.ID(), mne.ID())
}
}
func TestNetworkElementService_Delete(t *testing.T) {
mneID := uuid.New()
networkElementService, _, mockNetworkElement, _ := getNetworkElementTestStores(t, mneID)
mne, err := networkElementService.Get(store.Query{
ID: mockNetworkElement.ID(),
Name: mockNetworkElement.Name(),
})
if err != nil {
t.Error("could not get network element")
}
err = networkElementService.Delete(mne)
if err != nil {
t.Error("could not delete network element")
}
}
func TestNetworkElementService_GetAll(t *testing.T) {
mneID := uuid.New()
mneID2 := uuid.New()
networkElementService, _, _, sbi := getNetworkElementTestStores(t, mneID)
mockNetworkElement2 := getMockNetworkElement(mneID2, sbi)
err := networkElementService.Add(mockNetworkElement2)
if err != nil {
t.Error("could not add network element")
}
mnes, err := networkElementService.GetAll()
if err != nil {
t.Error("could not get all network elements")
}
if len(mnes) != 2 {
t.Errorf("Expected len(network elements)=2, got %d", len(mnes))
}
}