Skip to content
Snippets Groups Projects
Commit 5d88aeb6 authored by Malte Bauch's avatar Malte Bauch
Browse files

Update test cases for plugins filesystem store

parent eeb79a7d
No related branches found
No related tags found
1 merge request!401Change the current gosdn plugin implementation from Go's internal plugin system to hashicorp's go-plugins
...@@ -3,8 +3,8 @@ package nucleus ...@@ -3,8 +3,8 @@ package nucleus
import ( import (
"testing" "testing"
spb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/southbound" "code.fbi.h-da.de/danet/gosdn/controller/interfaces/plugin"
"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" "code.fbi.h-da.de/danet/gosdn/controller/store"
"github.com/google/uuid" "github.com/google/uuid"
) )
...@@ -14,129 +14,142 @@ func ensureStoreFilesForTestsAreRemoved() { ...@@ -14,129 +14,142 @@ func ensureStoreFilesForTestsAreRemoved() {
ensureStoreFileForTestsIsRemoved(store.NetworkElementFilenameSuffix) ensureStoreFileForTestsIsRemoved(store.NetworkElementFilenameSuffix)
} }
func TestAddSbi(t *testing.T) { func TestAddPlugin(t *testing.T) {
defer ensureStoreFilesForTestsAreRemoved() defer ensureStoreFilesForTestsAreRemoved()
pndID, _ := uuid.Parse("b4016412-eec5-45a1-aa29-f59915357bad") pluginStore := NewPluginStore()
sbiStore := NewPluginStore(pndID) mockPlugin := &mocks.Plugin{}
sbiID, _ := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa") err := pluginStore.Add(mockPlugin)
sbi, _ := NewSBI(spb.Type_TYPE_OPENCONFIG, sbiID)
err := sbiStore.Add(sbi)
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
} }
func TestGetAllSbis(t *testing.T) { func TestGetAllPlugins(t *testing.T) {
defer ensureStoreFilesForTestsAreRemoved() defer ensureStoreFilesForTestsAreRemoved()
pndID, _ := uuid.Parse("b4016412-eec5-45a1-aa29-f59915357bad") pluginStore := NewPluginStore()
sbiStore := NewPluginStore(pndID)
sbiID1, _ := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa") mockPlugin1ID, err := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa")
sbiID2, _ := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab") if err != nil {
t.Error(err)
sbi1, _ := NewSBI(spb.Type_TYPE_OPENCONFIG, sbiID1) }
sbi2, _ := NewSBI(spb.Type_TYPE_OPENCONFIG, sbiID2) mockPlugin2ID, err := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab")
if err != nil {
t.Error(err)
}
mockPlugin1 := &mocks.Plugin{}
mockPlugin1.On("ID").Return(mockPlugin1ID)
mockPlugin2 := &mocks.Plugin{}
mockPlugin2.On("ID").Return(mockPlugin2ID)
inputSbis := [2]southbound.SouthboundInterface{sbi1, sbi2} inputPlugins := [2]plugin.Plugin{mockPlugin1, mockPlugin2}
for _, sbi := range inputSbis { for _, plugin := range inputPlugins {
err := sbiStore.Add(sbi) err := pluginStore.Add(plugin)
if err != nil { if err != nil {
t.Error(err) t.Error(plugin.ID().String())
} }
} }
returnSbis, err := sbiStore.GetAll() returnPlugins, err := pluginStore.GetAll()
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
length := len(returnSbis) length := len(returnPlugins)
if length != 2 { if length != 2 {
t.Errorf("GetAll() length of array = %v, want %v", length, 2) t.Errorf("GetAll() length of array = %v, want %v", length, 2)
} }
for i, sbi := range returnSbis { for i, sbi := range returnPlugins {
if sbi.ID != inputSbis[i].ID().String() { if sbi.ID != inputPlugins[i].ID().String() {
t.Errorf("GetAll() = %v, want %v", sbi.ID, inputSbis[i].ID().String()) t.Errorf("GetAll() = %v, want %v", sbi.ID, inputPlugins[i].ID().String())
} }
} }
} }
func TestGetSbi(t *testing.T) { func TestGetPlugin(t *testing.T) {
defer ensureStoreFilesForTestsAreRemoved() defer ensureStoreFilesForTestsAreRemoved()
pndID, _ := uuid.Parse("b4016412-eec5-45a1-aa29-f59915357bad") pluginStore := NewPluginStore()
sbiStore := NewPluginStore(pndID) mockPlugin1ID, err := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa")
if err != nil {
sbiID1, _ := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa") t.Error(err)
sbiID2, _ := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab") }
mockPlugin2ID, err := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab")
sbi1, _ := NewSBI(spb.Type_TYPE_OPENCONFIG, sbiID1) if err != nil {
sbi2, _ := NewSBI(spb.Type_TYPE_OPENCONFIG, sbiID2) t.Error(err)
}
mockPlugin1 := mockPlugin(t)
mockPlugin1.(*mocks.Plugin).On("ID").Return(mockPlugin1ID)
mockPlugin2 := mockPlugin(t)
mockPlugin2.(*mocks.Plugin).On("ID").Return(mockPlugin2ID)
inputSbis := [2]southbound.SouthboundInterface{sbi1, sbi2} inputPlugins := [2]plugin.Plugin{mockPlugin1, mockPlugin2}
for _, sbi := range inputSbis { for _, plugins := range inputPlugins {
err := sbiStore.Add(sbi) err := pluginStore.Add(plugins)
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
} }
returnSbi, err := sbiStore.Get(store.Query{ID: sbiID2, Name: ""}) returnPlugin, err := pluginStore.Get(store.Query{ID: mockPlugin2ID, Name: ""})
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
if returnSbi.ID != sbi2.ID().String() { if returnPlugin.ID != mockPlugin2.ID().String() {
t.Errorf("Get() = %v, want %v", returnSbi.ID, sbi2.ID().String()) t.Errorf("Get() = %v, want %v", returnPlugin.ID, mockPlugin2.ID().String())
} }
} }
func TestDeleteAllSbis(t *testing.T) { func TestDeleteAllSbis(t *testing.T) {
defer ensureStoreFilesForTestsAreRemoved() defer ensureStoreFilesForTestsAreRemoved()
pndID, _ := uuid.Parse("b4016412-eec5-45a1-aa29-f59915357bad") pluginStore := NewPluginStore()
sbiStore := NewPluginStore(pndID)
sbiID1, _ := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa")
sbiID2, _ := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab")
sbi1, _ := NewSBI(spb.Type_TYPE_OPENCONFIG, sbiID1) mockPlugin1ID, err := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa")
sbi2, _ := NewSBI(spb.Type_TYPE_OPENCONFIG, sbiID2) if err != nil {
t.Error(err)
}
mockPlugin2ID, err := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab")
if err != nil {
t.Error(err)
}
mockPlugin1 := mockPlugin(t)
mockPlugin1.(*mocks.Plugin).On("ID").Return(mockPlugin1ID)
mockPlugin2 := mockPlugin(t)
mockPlugin2.(*mocks.Plugin).On("ID").Return(mockPlugin2ID)
inputSbis := [2]southbound.SouthboundInterface{sbi1, sbi2} inputPlugins := [2]plugin.Plugin{mockPlugin1, mockPlugin2}
for _, sbi := range inputSbis { for _, plugins := range inputPlugins {
err := sbiStore.Add(sbi) err := pluginStore.Add(plugins)
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
} }
err := sbiStore.Delete(sbi1) err = pluginStore.Delete(mockPlugin1)
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
returnSbis, err := sbiStore.GetAll() returnPlugins, err := pluginStore.GetAll()
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
length := len(returnSbis) length := len(returnPlugins)
if length != 1 { if length != 1 {
t.Errorf("GetAll() length of array = %v, want %v", length, 2) t.Errorf("GetAll() length of array = %v, want %v", length, 2)
} }
if returnSbis[0].ID != inputSbis[1].ID().String() { if returnPlugins[0].ID != inputPlugins[1].ID().String() {
t.Errorf("GetAll() = %v, want %v", returnSbis[0].ID, inputSbis[1].ID().String()) t.Errorf("GetAll() = %v, want %v", returnPlugins[0].ID, inputPlugins[1].ID().String())
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment