Skip to content
Snippets Groups Projects
networkElementService_test.go 3.61 KiB
Newer Older
  • Learn to ignore specific revisions
  • 	rpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/plugin-registry"
    
    	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/plugin"
    
    	"code.fbi.h-da.de/danet/gosdn/controller/mocks"
    	"code.fbi.h-da.de/danet/gosdn/controller/store"
    	"github.com/google/uuid"
    
    	"google.golang.org/grpc"
    
    func getMockNetworkElement(mneID uuid.UUID, plugin plugin.Plugin) (networkelement.NetworkElement, error) {
    
    	return &CommonNetworkElement{
    		UUID:      mneID,
    
    		transport: &mocks.Transport{},
    
    func getNetworkElementTestStores(t *testing.T, mneID uuid.UUID) (networkelement.Service, plugin.Service, networkelement.NetworkElement, plugin.Plugin) {
    	mockPluginID, err := uuid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa")
    	if err != nil {
    		t.Error(err)
    	}
    	mockPlugin := &mocks.Plugin{}
    	mockPlugin.On("ID").Return(mockPluginID)
    	mockPlugin.On("Model", mock.Anything).Return([]byte("hello"), nil)
    
    	mockPlugin.On("SetNode", mock.Anything, mock.Anything).Return(nil)
    
    	mockPlugin.On("State").Return(plugin.CREATED)
    
    	eventService := eventservice.NewMockEventService()
    
    	pluginStore := NewMemoryPluginStore()
    
    	networkElementStore := NewMemoryNetworkElementStore()
    
    	pluginService := NewPluginService(pluginStore, eventService, func(lp plugin.LoadedPlugin) (plugin.Plugin, error) {
    		return mockPlugin, nil
    
    	}, rpb.NewPluginRegistryServiceClient(&grpc.ClientConn{}))
    
    	networkElementService := NewNetworkElementService(
    		networkElementStore,
    
    		t.Error("could not add plugin: ", err)
    
    	mockNetworkElement, err := getMockNetworkElement(mneID, mockPlugin)
    
    	err = networkElementService.Add(mockNetworkElement)
    	if err != nil {
    
    		t.Error("could not add network element: ", err)
    
    	return networkElementService, pluginService, mockNetworkElement, mockPlugin
    
    }
    
    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: ", err)
    
    	}
    
    	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)
    
    	}
    
    	err = networkElementService.Delete(mne)
    	if err != nil {
    
    		t.Error("could not delete network element: ", err)
    
    	}
    }
    
    func TestNetworkElementService_GetAll(t *testing.T) {
    	mneID := uuid.New()
    	mneID2 := uuid.New()
    
    
    	networkElementService, _, _, plugin := getNetworkElementTestStores(t, mneID)
    	mockNetworkElement2, err := getMockNetworkElement(mneID2, plugin)
    
    	err = networkElementService.Add(mockNetworkElement2)
    
    		t.Error("could not add network element: ", err)
    
    	}
    
    	mnes, err := networkElementService.GetAll()
    	if err != nil {
    
    		t.Error("could not get all network elements: ", err)
    
    	}
    
    	if len(mnes) != 2 {
    		t.Errorf("Expected len(network elements)=2, got %d", len(mnes))
    	}
    }