Skip to content
Snippets Groups Projects

Process response overhaul

Merged Ghost User requested to merge process-response-overhaul into develop
19 files
+ 2221
446
Compare changes
  • Side-by-side
  • Inline
Files
19
+ 16
86
package api
import (
"context"
"net"
"testing"
pb "code.fbi.h-da.de/cocsn/api/go/gosdn/core"
ppb "code.fbi.h-da.de/cocsn/api/go/gosdn/pnd"
spb "code.fbi.h-da.de/cocsn/api/go/gosdn/southbound"
"code.fbi.h-da.de/cocsn/gosdn/mocks"
nbi "code.fbi.h-da.de/cocsn/gosdn/northbound/server"
tpb "code.fbi.h-da.de/cocsn/api/go/gosdn/transport"
"code.fbi.h-da.de/cocsn/gosdn/nucleus"
"code.fbi.h-da.de/cocsn/yang-models/generated/openconfig"
"github.com/google/uuid"
log "github.com/sirupsen/logrus"
"github.com/stretchr/testify/mock"
"google.golang.org/grpc"
"google.golang.org/grpc/test/bufconn"
"github.com/spf13/viper"
)
/*
Based on this StackOverflow answer: https://stackoverflow.com/a/52080545/4378176
*/
const bufSize = 1024 * 1024
const bufnet = "bufnet"
const pndID = "2043519e-46d1-4963-9a8e-d99007e104b8"
const changeID = "0992d600-f7d4-4906-9559-409b04d59a5f"
const sbiID = "f6fd4b35-f039-4111-9156-5e4501bb8a5a"
const ondID = "7e0ed8cc-ebf5-46fa-9794-741494914883"
var pndStore *nucleus.PndStore
var lis *bufconn.Listener
func init() {
dialOptions = []grpc.DialOption{
grpc.WithContextDialer(bufDialer),
grpc.WithInsecure(),
}
lis = bufconn.Listen(bufSize)
s := grpc.NewServer()
pndStore = nucleus.NewPndStore()
pndUUID, err := uuid.Parse(pndID)
if err != nil {
log.Fatal(err)
}
changeUUID, err := uuid.Parse(changeID)
if err != nil {
log.Fatal(err)
}
deviceUUID, err := uuid.Parse(ondID)
if err != nil {
log.Fatal(err)
}
mockPnd := mocks.PrincipalNetworkDomain{}
mockPnd.On("ID").Return(pndUUID)
mockPnd.On("GetName").Return("test")
mockPnd.On("GetDescription").Return("test")
mockPnd.On("PendingChanges").Return([]uuid.UUID{changeUUID})
mockPnd.On("CommittedChanges").Return([]uuid.UUID{changeUUID})
mockPnd.On("GetChange", mock.Anything).Return(&nucleus.Change{}, nil)
mockPnd.On("AddDevice", mock.Anything, mock.Anything, mock.Anything).Return(nil)
mockPnd.On("GetDevice", mock.Anything).Return(&nucleus.CommonDevice{
UUID: deviceUUID,
GoStruct: &openconfig.Device{},
}, nil)
mockPnd.On("Commit", mock.Anything).Return(nil)
mockPnd.On("Confirm", mock.Anything).Return(nil)
mockPnd.On("ChangeOND", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil)
if err := pndStore.Add(&mockPnd); err != nil {
log.Fatal(err)
}
northbound := nbi.NewNBI(pndStore)
pb.RegisterCoreServer(s, northbound.Core)
ppb.RegisterPndServer(s, northbound.Pnd)
go func() {
if err := s.Serve(lis); err != nil {
log.Fatalf("Server exited with error: %v", err)
}
}()
}
func bufDialer(context.Context, string) (net.Conn, error) {
return lis.Dial()
}
func Test_Init(t *testing.T) {
viper.SetConfigFile("./api_test.toml")
if err := Init(bufnet); err != nil {
t.Error(err)
}
@@ -128,7 +50,7 @@ func Test_GetPnd(t *testing.T) {
}
func Test_GetChanges(t *testing.T) {
resp, err := GetChanges(bufnet, pndID)
resp, err := getChanges(bufnet, pndID)
if err != nil {
t.Error(err)
return
@@ -137,14 +59,14 @@ func Test_GetChanges(t *testing.T) {
}
func Test_CommitConfirm(t *testing.T) {
resp, err := Commit(bufnet, pndID, changeID)
resp, err := commit(bufnet, pndID, changeID)
if err != nil {
t.Error(err)
return
}
log.Info(resp)
resp, err = Confirm(bufnet, pndID, changeID)
resp, err = confirm(bufnet, pndID, changeID)
if err != nil {
t.Error(err)
return
@@ -154,7 +76,15 @@ func Test_CommitConfirm(t *testing.T) {
}
func Test_AddDevice(t *testing.T) {
resp, err := addDevice(bufnet, "test", "test", sbiID, pndID, "test", "test")
opt := &tpb.TransportOption{
Address: "test",
Username: "test",
Password: "test",
TransportOption: &tpb.TransportOption_GnmiTransportOption{
GnmiTransportOption: &tpb.GnmiTransportOption{},
},
}
resp, err := addDevice(bufnet, "test", opt, sbiUUID, pndUUID)
if err != nil {
t.Error(err)
return
@@ -163,7 +93,7 @@ func Test_AddDevice(t *testing.T) {
}
func Test_GetDevice(t *testing.T) {
resp, err := getDevice(bufnet, pndID, "", ondID)
resp, err := getDevice(bufnet, pndID, ondID)
if err != nil {
t.Error(err)
return
Loading