blob: 510eb456d6ed665fe508bb7691927ab580420b7b [file] [log] [blame]
Daniele Rossi73422082019-10-30 17:41:24 +01001/*
2 * Copyright 2019-present Open Networking Foundation
3
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7
8 * http://www.apache.org/licenses/LICENSE-2.0
9
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package core
17
18import (
npujar03b018e2019-11-13 15:29:36 +053019 "testing"
20
sbarbari17d7e222019-11-05 10:02:29 -050021 "github.com/opencord/voltha-go/db/model"
Daniele Rossi73422082019-10-30 17:41:24 +010022 "github.com/opencord/voltha-go/ro_core/config"
serkant.uluderya2ae470f2020-01-21 11:13:09 -080023 "github.com/opencord/voltha-lib-go/v3/pkg/db"
24 "github.com/opencord/voltha-protos/v3/go/voltha"
Daniele Rossi73422082019-10-30 17:41:24 +010025 "github.com/stretchr/testify/assert"
Daniele Rossi73422082019-10-30 17:41:24 +010026)
27
28func MakeTestDevManagerConfig() (*Core, error) {
29 var core Core
npujar03b018e2019-11-13 15:29:36 +053030 core.instanceID = "ro_core"
Daniele Rossi73422082019-10-30 17:41:24 +010031 core.config = config.NewROCoreFlags()
sbarbari17d7e222019-11-05 10:02:29 -050032 backend := db.Backend{
Daniele Rossi73422082019-10-30 17:41:24 +010033 Client: core.kvClient,
34 StoreType: core.config.KVStoreType,
35 Host: core.config.KVStoreHost,
36 Port: core.config.KVStorePort,
37 Timeout: core.config.KVStoreTimeout,
38 PathPrefix: "service/voltha"}
39 core.clusterDataRoot = model.NewRoot(&voltha.Voltha{}, &backend)
40 core.genericMgr = newModelProxyManager(core.clusterDataProxy)
41
42 return &core, nil
43}
44func TestNewDeviceManager(t *testing.T) {
45
46 core, _ := MakeTestDevManagerConfig()
47
npujar03b018e2019-11-13 15:29:36 +053048 core.deviceMgr = newDeviceManager(core.clusterDataProxy, core.instanceID)
Daniele Rossi73422082019-10-30 17:41:24 +010049 assert.NotNil(t, core.deviceMgr)
50}
51
52func TestListDeviceIds(t *testing.T) {
53
54 core, _ := MakeTestDevManagerConfig()
55
npujar03b018e2019-11-13 15:29:36 +053056 core.deviceMgr = newDeviceManager(core.clusterDataProxy, core.instanceID)
Daniele Rossi73422082019-10-30 17:41:24 +010057 assert.NotNil(t, core.deviceMgr)
58
npujar03b018e2019-11-13 15:29:36 +053059 myIds, _ := core.deviceMgr.ListDeviceIDs()
Daniele Rossi73422082019-10-30 17:41:24 +010060 assert.NotNil(t, myIds)
61}
62
63func TestGetDeviceAgent(t *testing.T) {
64
65 // Tests also methods addDeviceAgentToMap,
66 // listDeviceIdsFromMap
67 // deleteDeviceAgentToMap
68
69 core, _ := MakeTestDevManagerConfig()
70
npujar03b018e2019-11-13 15:29:36 +053071 core.deviceMgr = newDeviceManager(core.clusterDataProxy, core.instanceID)
Daniele Rossi73422082019-10-30 17:41:24 +010072 assert.NotNil(t, core.deviceMgr)
73
74 devAgent := newDeviceAgent(&voltha.Device{Id: "new_device"}, core.deviceMgr, core.clusterDataProxy)
75 assert.NotNil(t, devAgent)
76
77 // addDeviceAgentToMap
78 core.deviceMgr.addDeviceAgentToMap(devAgent)
79
80 // listDeviceIdsFromMap
npujar03b018e2019-11-13 15:29:36 +053081 myIDs := core.deviceMgr.listDeviceIDsFromMap()
Daniele Rossi73422082019-10-30 17:41:24 +010082 assert.NotNil(t, myIDs)
83
84 // getDeviceAgent
npujar03b018e2019-11-13 15:29:36 +053085 myDevAgent := core.deviceMgr.getDeviceAgent(devAgent.deviceID)
Daniele Rossi73422082019-10-30 17:41:24 +010086 assert.NotNil(t, myDevAgent)
87
88 // deleteDeviceAgentToMap
89 core.deviceMgr.deleteDeviceAgentToMap(devAgent)
90}
91
92func TestLoadDevice(t *testing.T) {
93
94 core, _ := MakeTestDevManagerConfig()
95
npujar03b018e2019-11-13 15:29:36 +053096 core.deviceMgr = newDeviceManager(core.clusterDataProxy, core.instanceID)
Daniele Rossi73422082019-10-30 17:41:24 +010097 assert.NotNil(t, core.deviceMgr)
98
99 devAgent := newDeviceAgent(&voltha.Device{Id: "new_device"}, core.deviceMgr, core.clusterDataProxy)
100 assert.NotNil(t, devAgent)
101
102 // addDeviceAgentToMap
103 core.deviceMgr.addDeviceAgentToMap(devAgent)
104
105 myDev, err := core.deviceMgr.loadDevice("new_device")
106 assert.NotNil(t, myDev)
107 assert.Nil(t, err)
108}
109
110func TestIsDeviceInCache(t *testing.T) {
111
112 // Tests also methods addDeviceAgentToMap,
113 // listDeviceIdsFromMap
114 // deleteDeviceAgentToMap
115
116 core, _ := MakeTestDevManagerConfig()
117
npujar03b018e2019-11-13 15:29:36 +0530118 core.deviceMgr = newDeviceManager(core.clusterDataProxy, core.instanceID)
Daniele Rossi73422082019-10-30 17:41:24 +0100119 assert.NotNil(t, core.deviceMgr)
120
121 devAgent := newDeviceAgent(&voltha.Device{Id: "new_device"}, core.deviceMgr, core.clusterDataProxy)
122 assert.NotNil(t, devAgent)
123
124 // addDeviceAgentToMap
125 core.deviceMgr.addDeviceAgentToMap(devAgent)
126
npujar03b018e2019-11-13 15:29:36 +0530127 isInCache := core.deviceMgr.IsDeviceInCache(devAgent.deviceID)
Daniele Rossi73422082019-10-30 17:41:24 +0100128 assert.True(t, isInCache)
129
130 // deleteDeviceAgentToMap
131 core.deviceMgr.deleteDeviceAgentToMap(devAgent)
132
npujar03b018e2019-11-13 15:29:36 +0530133 isInCacheDel := core.deviceMgr.IsDeviceInCache(devAgent.deviceID)
Daniele Rossi73422082019-10-30 17:41:24 +0100134 assert.False(t, isInCacheDel)
135}
136
137func TestLoadRootDeviceParentAndChildren(t *testing.T) {
138
139 core, _ := MakeTestDevManagerConfig()
140
npujar03b018e2019-11-13 15:29:36 +0530141 core.deviceMgr = newDeviceManager(core.clusterDataProxy, core.instanceID)
Daniele Rossi73422082019-10-30 17:41:24 +0100142 assert.NotNil(t, core.deviceMgr)
143
144 devAgent := newDeviceAgent(&voltha.Device{Id: "new_device"}, core.deviceMgr, core.clusterDataProxy)
145 assert.NotNil(t, devAgent)
146
147 // addDeviceAgentToMap
148 core.deviceMgr.addDeviceAgentToMap(devAgent)
149
150 err := core.deviceMgr.loadRootDeviceParentAndChildren(devAgent.lastData)
151 assert.Nil(t, err)
152}
153
154func TestGetParentDevice(t *testing.T) {
155
156 core, _ := MakeTestDevManagerConfig()
157
npujar03b018e2019-11-13 15:29:36 +0530158 core.deviceMgr = newDeviceManager(core.clusterDataProxy, core.instanceID)
Daniele Rossi73422082019-10-30 17:41:24 +0100159 assert.NotNil(t, core.deviceMgr)
160
161 devAgent := newDeviceAgent(&voltha.Device{Id: "new_device"}, core.deviceMgr, core.clusterDataProxy)
162 assert.NotNil(t, devAgent)
163
164 // addDeviceAgentToMap
165 core.deviceMgr.addDeviceAgentToMap(devAgent)
166
167 myDev := core.deviceMgr.getParentDevice(devAgent.lastData)
168 assert.Nil(t, myDev)
169}
170
171func TestGetAllChildDeviceIds(t *testing.T) {
172
173 core, _ := MakeTestDevManagerConfig()
174
npujar03b018e2019-11-13 15:29:36 +0530175 core.deviceMgr = newDeviceManager(core.clusterDataProxy, core.instanceID)
Daniele Rossi73422082019-10-30 17:41:24 +0100176 assert.NotNil(t, core.deviceMgr)
177
178 devAgent := newDeviceAgent(&voltha.Device{Id: "new_device"}, core.deviceMgr, core.clusterDataProxy)
179 assert.NotNil(t, devAgent)
180
181 // addDeviceAgentToMap
182 core.deviceMgr.addDeviceAgentToMap(devAgent)
183
npujar03b018e2019-11-13 15:29:36 +0530184 myIds, err := core.deviceMgr.getAllChildDeviceIDs(devAgent.lastData)
Daniele Rossi73422082019-10-30 17:41:24 +0100185 assert.NotNil(t, myIds)
186 assert.Nil(t, err)
187}