Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
goSDN
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
danet
goSDN
Commits
a9f0df9c
Commit
a9f0df9c
authored
2 years ago
by
Malte Bauch
Browse files
Options
Downloads
Patches
Plain Diff
Add deviceServiceMock
parent
51acbed6
No related branches found
No related tags found
2 merge requests
!352
Draft: Resolve "Structs like LoadedDevice, LoadedSbi, LoadedRole, LoadedUser are never passed as pointer"
,
!347
Resolve "Requesting information from the Controller via NBI takes very long"
Pipeline
#109341
failed
2 years ago
Stage: build
Stage: test
Stage: analyze
Stage: integration-test
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
controller/nucleus/deviceServiceMock.go
+91
-0
91 additions, 0 deletions
controller/nucleus/deviceServiceMock.go
with
91 additions
and
0 deletions
controller/nucleus/deviceServiceMock.go
0 → 100644
+
91
−
0
View file @
a9f0df9c
package
nucleus
import
(
"code.fbi.h-da.de/danet/gosdn/controller/interfaces/device"
"code.fbi.h-da.de/danet/gosdn/controller/store"
"github.com/google/uuid"
)
// DeviceServiceMock provides a in-memory implementation for multiple stores.
type
DeviceServiceMock
struct
{
Store
map
[
uuid
.
UUID
]
device
.
Device
nameLookupTable
map
[
string
]
uuid
.
UUID
}
// NewDeviceServiceMock returns a specific in-memory store for device service.
func
NewDeviceServiceMock
()
device
.
Service
{
return
&
DeviceServiceMock
{
Store
:
make
(
map
[
uuid
.
UUID
]
device
.
Device
),
nameLookupTable
:
make
(
map
[
string
]
uuid
.
UUID
),
}
}
// Add adds a item device.Device
func
(
t
*
DeviceServiceMock
)
Add
(
item
device
.
Device
)
error
{
_
,
ok
:=
t
.
Store
[
item
.
ID
()]
if
ok
{
return
nil
}
t
.
Store
[
item
.
ID
()]
=
item
t
.
nameLookupTable
[
item
.
Name
()]
=
item
.
ID
()
return
nil
}
// Update updates a item device.Device
func
(
t
*
DeviceServiceMock
)
Update
(
item
device
.
Device
)
error
{
_
,
ok
:=
t
.
Store
[
item
.
ID
()]
if
ok
{
return
nil
}
t
.
Store
[
item
.
ID
()]
=
item
t
.
nameLookupTable
[
item
.
Name
()]
=
item
.
ID
()
return
nil
}
// Delete deletes a item device.Device
func
(
t
*
DeviceServiceMock
)
Delete
(
item
device
.
Device
)
error
{
delete
(
t
.
Store
,
item
.
ID
())
return
nil
}
// Get gets a item device.Device
func
(
t
*
DeviceServiceMock
)
Get
(
query
store
.
Query
)
(
device
.
Device
,
error
)
{
// First search for direct hit on UUID.
item
,
ok
:=
t
.
Store
[
query
.
ID
]
if
!
ok
{
// Second search for name
id
,
ok
:=
t
.
nameLookupTable
[
query
.
Name
]
if
!
ok
{
return
nil
,
nil
}
item
,
ok
:=
t
.
Store
[
id
]
if
!
ok
{
return
nil
,
nil
}
return
item
,
nil
}
return
item
,
nil
}
// GetAll gets all items
func
(
t
*
DeviceServiceMock
)
GetAll
()
([]
device
.
LoadedDevice
,
error
)
{
var
allItems
[]
device
.
LoadedDevice
for
_
,
item
:=
range
t
.
Store
{
allItems
=
append
(
allItems
,
device
.
LoadedDevice
{
ID
:
item
.
ID
()
.
String
(),
Name
:
item
.
Name
(),
SBI
:
item
.
SBI
()
.
ID
()
.
String
(),
})
}
return
allItems
,
nil
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment