Skip to content
Snippets Groups Projects
Commit 33c4a43e authored by André Sterba's avatar André Sterba
Browse files

Adjust tests

parent 360f9fb6
No related branches found
No related tags found
1 merge request!150Let user set a name for a device or autogenerate it
Pipeline #72376 passed with warnings
This commit is part of merge request !150. Comments created here will be created in the context of that merge request.
......@@ -172,10 +172,6 @@ func httpApi(writer http.ResponseWriter, request *http.Request) {
case "getDevice":
deviceIdentifier := query.Get("identifier")
// id, _ := uuid.Parse(deviceIdentifier)
// idAsString := id.String()
// if idAsString == "00000000-0000-0000-0000-000000000000" {
device, err := httpPnd.MarshalDevice(deviceIdentifier)
if err != nil {
switch err.(type) {
......
......@@ -129,15 +129,14 @@ func mockDevice() Device {
func newPnd() pndImplementation {
return pndImplementation{
name: "default",
description: "default test pnd",
sbic: SbiStore{store{}},
devices: DeviceStore{store{}},
pendingChanges: ChangeStore{store{}},
committedChanges: ChangeStore{store{}},
confirmedChanges: ChangeStore{store{}},
id: defaultPndID,
errChans: make(map[uuid.UUID]chan error),
deviceNameToUUIDLookup: make(map[string]uuid.UUID),
name: "default",
description: "default test pnd",
sbic: SbiStore{store{}},
devices: NewDeviceStore(),
pendingChanges: ChangeStore{store{}},
committedChanges: ChangeStore{store{}},
confirmedChanges: ChangeStore{store{}},
id: defaultPndID,
errChans: make(map[uuid.UUID]chan error),
}
}
......@@ -23,7 +23,7 @@ type PrincipalNetworkDomain interface {
AddSbi(interface{}) error
RemoveSbi(uuid.UUID) error
AddDevice(interface{}) error
GetDevice(uuid uuid.UUID) (ygot.GoStruct, error)
GetDevice(identifier string) (*Device, error)
RemoveDevice(uuid.UUID) error
Devices() []uuid.UUID
ChangeOND(uuid uuid.UUID, operation interface{}, path string, value ...string) error
......@@ -32,7 +32,6 @@ type PrincipalNetworkDomain interface {
GetName() string
GetDescription() string
MarshalDevice(string) (string, error)
MarshalDeviceByName(name string) (string, error)
ContainsDevice(uuid.UUID) bool
GetSBIs() interface{}
ID() uuid.UUID
......@@ -45,16 +44,15 @@ type PrincipalNetworkDomain interface {
// NewPND creates a Principle Network Domain
func NewPND(name, description string, id uuid.UUID, sbi SouthboundInterface) (PrincipalNetworkDomain, error) {
pnd := &pndImplementation{
name: name,
description: description,
sbic: SbiStore{store{}},
devices: NewDeviceStore(),
pendingChanges: ChangeStore{store{}},
committedChanges: ChangeStore{store{}},
confirmedChanges: ChangeStore{store{}},
id: id,
errChans: make(map[uuid.UUID]chan error),
deviceNameToUUIDLookup: make(map[string]uuid.UUID),
name: name,
description: description,
sbic: SbiStore{store{}},
devices: NewDeviceStore(),
pendingChanges: ChangeStore{store{}},
committedChanges: ChangeStore{store{}},
confirmedChanges: ChangeStore{store{}},
id: id,
errChans: make(map[uuid.UUID]chan error),
}
if err := pnd.sbic.Add(sbi); err != nil {
return nil, err
......@@ -63,16 +61,15 @@ func NewPND(name, description string, id uuid.UUID, sbi SouthboundInterface) (Pr
}
type pndImplementation struct {
name string
description string
sbic SbiStore
devices *DeviceStore
pendingChanges ChangeStore
committedChanges ChangeStore
confirmedChanges ChangeStore
id uuid.UUID
errChans map[uuid.UUID]chan error
deviceNameToUUIDLookup map[string]uuid.UUID
name string
description string
sbic SbiStore
devices *DeviceStore
pendingChanges ChangeStore
committedChanges ChangeStore
confirmedChanges ChangeStore
id uuid.UUID
errChans map[uuid.UUID]chan error
}
func (pnd *pndImplementation) Pending() []uuid.UUID {
......@@ -187,12 +184,12 @@ func (pnd *pndImplementation) AddDevice(device interface{}) error {
return pnd.addDevice(d)
}
func (pnd *pndImplementation) GetDevice(uuid uuid.UUID) (ygot.GoStruct, error) {
d, err := pnd.devices.Get(FromString(uuid.String()))
func (pnd *pndImplementation) GetDevice(identifier string) (*Device, error) {
d, err := pnd.devices.Get(FromString(identifier))
if err != nil {
return nil, err
}
return ygot.DeepCopy(d.GoStruct)
return d, nil
}
// RemoveDevice removes a device from the PND
......@@ -220,51 +217,19 @@ func (pnd *pndImplementation) addDevice(device *Device) error {
return err
}
pnd.deviceNameToUUIDLookup[device.Name] = device.UUID
return nil
}
func (pnd *pndImplementation) getDeviceByUUID(id uuid.UUID) (*Device, error) {
return pnd.devices.Get(FromString("wasd"))
}
func (pnd *pndImplementation) getDeviceByName(name string) (*Device, error) {
// deviceUUID, found := pnd.deviceNameToUUIDLookup[name]
// if !found {
// return nil, &errors.ErrNotFound{ID: name}
// }
return pnd.devices.Get(FromString("wasd"))
}
func (pnd *pndImplementation) removeDevice(id uuid.UUID) error {
return pnd.devices.Delete(id)
}
func (pnd *pndImplementation) MarshalDevice(identifier string) (string, error) {
// var foundDevice *Device
// var err error
foundDevice, err := pnd.devices.Get(FromString(identifier))
if err != nil {
return "", err
}
// switch id := identifier.(type) {
// case uuid.UUID:
// foundDevice, err = pnd.getDeviceByUUID(id)
// if err != nil {
// return "", err
// }
// case string:
// foundDevice, err = pnd.getDeviceByName(id)
// if err != nil {
// return "", err
// }
// default:
// return "", &errors.ErrNotFound{ID: identifier}
// }
jsonTree, err := json.MarshalIndent(foundDevice.GoStruct, "", "\t")
if err != nil {
return "", err
......@@ -278,28 +243,9 @@ func (pnd *pndImplementation) MarshalDevice(identifier string) (string, error) {
return string(jsonTree), nil
}
func (pnd *pndImplementation) MarshalDeviceByName(name string) (string, error) {
d, err := pnd.getDeviceByName(name)
if err != nil {
return "", err
}
jsonTree, err := json.MarshalIndent(d.GoStruct, "", "\t")
if err != nil {
return "", err
}
log.WithFields(log.Fields{
"pnd": pnd.id,
"ID": d.UUID,
"Name": d.Name,
}).Info("marshalled device")
return string(jsonTree), nil
}
// Request sends a get request to a specific device
func (pnd *pndImplementation) Request(uuid uuid.UUID, path string) error {
d, err := pnd.getDeviceByUUID(uuid)
d, err := pnd.devices.Get(FromString(uuid.String()))
if err != nil {
return err
}
......@@ -331,7 +277,7 @@ func (pnd *pndImplementation) RequestAll(path string) error {
// ChangeOND creates a change from the provided Operation, path and value. The Change is pending and
func (pnd *pndImplementation) ChangeOND(uuid uuid.UUID, operation interface{}, path string, value ...string) error {
d, err := pnd.getDeviceByUUID(uuid)
d, err := pnd.devices.Get(FromString(uuid.String()))
if err != nil {
return err
}
......
......@@ -224,7 +224,7 @@ func Test_pndImplementation_ContainsDevice(t *testing.T) {
t.Run(tt.name, func(t *testing.T) {
pnd := newPnd()
if tt.name != "fails empty" {
if err := pnd.devices.Add(tt.args.device); err != nil {
if err := pnd.devices.Add(tt.args.device, "test"); err != nil {
t.Error(err)
}
}
......@@ -243,7 +243,7 @@ func Test_pndImplementation_Destroy(t *testing.T) {
name string
description string
sbi SbiStore
devices DeviceStore
devices *DeviceStore
}
tests := []struct {
name string
......@@ -347,7 +347,7 @@ func Test_pndImplementation_MarshalDevice(t *testing.T) {
if err := pnd.addDevice(d); err != nil {
t.Error(err)
}
got, err := pnd.MarshalDevice(tt.args.uuid)
got, err := pnd.MarshalDevice(tt.args.uuid.String())
if (err != nil) != tt.wantErr {
t.Errorf("MarshalDevice() error = %v, wantErr %v", err, tt.wantErr)
return
......@@ -413,7 +413,7 @@ func Test_pndImplementation_RemoveSbi(t *testing.T) {
name: "test-remove-sbi",
description: "test-remove-sbi",
sbic: SbiStore{store{}},
devices: DeviceStore{store{}},
devices: NewDeviceStore(),
id: defaultPndID,
}
if tt.name != "fails empty" {
......@@ -694,7 +694,7 @@ func Test_pndImplementation_GetDevice(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := pnd.GetDevice(tt.args.uuid)
got, err := pnd.GetDevice(tt.args.uuid.String())
if (err != nil) != tt.wantErr {
t.Errorf("GetDevice() error = %v, wantErr %v", err, tt.wantErr)
return
......@@ -742,7 +742,7 @@ func Test_pndImplementation_GetDeviceByName(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
foundDevice, err := p.getDeviceByName(tt.args.name)
foundDevice, err := p.GetDevice(tt.args.name)
if (err != nil) != tt.wantErr {
t.Errorf("GetDeviceByName() error = %v, wantErr %v", err, tt.wantErr)
return
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment