Add device capability and get authenticated device list
[platform/core/system/edge-orchestration.git] / patches / configuremgr_test.patch
1 diff --git a/src/controller/configuremgr/configuremgr_test.go b/src/controller/configuremgr/configuremgr_test.go
2 new file mode 100644
3 index 0000000..5596dd6
4 --- /dev/null
5 +++ b/src/controller/configuremgr/configuremgr_test.go
6 @@ -0,0 +1,163 @@
7 +package configuremgr
8 +
9 +import (
10 +       netDB "db/bolt/network"
11 +       capDB "db/bolt/capability"
12 +       networkDBMock "db/bolt/network/mocks"
13 +       capabilityDBMock "db/bolt/capability/mocks"
14 +       systemDBMock "db/bolt/system/mocks"
15 +       sysDB "db/bolt/system"
16 +       "errors"
17 +       "testing"
18 +       discovery "controller/discoverymgr/mocks"
19 +
20 +       "github.com/golang/mock/gomock"
21 +)
22 +
23 +var(
24 +       mockNetworkDB *networkDBMock.MockDBInterface
25 +       mockCapabilityDB *capabilityDBMock.MockDBInterface
26 +       mockSystemDB *systemDBMock.MockDBInterface
27 +       mockDiscovery *discovery.MockDiscovery
28 +)
29 +
30 +func TestReadCapability(t *testing.T) {
31 +       confIns := GetInstance()
32 +
33 +       ctrl := gomock.NewController(t)
34 +       defer ctrl.Finish()
35 +
36 +       createMockIns(ctrl)
37 +       t.Run("Error in Read", func(t *testing.T) {
38 +               var defaultNetInfo []netDB.NetworkInfo
39 +               mockNetworkDB.EXPECT().GetList().Return(defaultNetInfo, errors.New(""))
40 +               _, err := confIns.ReadCapability("192.168.1.1")
41 +               if err == nil {
42 +                       t.Error("Error should not be nil")
43 +                       return
44 +               }
45 +       })
46 +
47 +       t.Run("Successful Read",func(t *testing.T){
48 +               var defaultNetInfo []netDB.NetworkInfo
49 +
50 +               oneNetInfo := netDB.NetworkInfo{
51 +               ID : "defaultID",
52 +               IPv4 : []string{"192.168.1.1"},
53 +               RTT: 2.2,
54 +               }
55 +
56 +               defaultCapInfo := capDB.Capability{
57 +                       Cap:"DefaultCapability",
58 +               }
59 +
60 +               defaultNetInfo = append(defaultNetInfo,oneNetInfo)
61 +
62 +               gomock.InOrder(
63 +               mockNetworkDB.EXPECT().GetList().Return(defaultNetInfo, nil),
64 +               mockCapabilityDB.EXPECT().Get(gomock.Any()).Return(defaultCapInfo,nil),
65 +               )
66 +
67 +               _, err := confIns.ReadCapability("192.168.1.1")
68 +               if err != nil {
69 +                       t.Error("Error should be nil")
70 +                       return
71 +               }
72 +       })
73 +
74 +       t.Run("Cap DB error in  Read",func(t *testing.T){
75 +               var defaultNetInfo []netDB.NetworkInfo
76 +
77 +               oneNetInfo := netDB.NetworkInfo{
78 +                       ID : "defaultID",
79 +                       IPv4 : []string{"192.168.1.1"},
80 +                       RTT: 2.2,
81 +               }
82 +
83 +               defaultCapInfo := capDB.Capability{
84 +                       Cap:"DefaultCapability",
85 +               }
86 +
87 +               defaultNetInfo = append(defaultNetInfo,oneNetInfo)
88 +
89 +               gomock.InOrder(
90 +                       mockNetworkDB.EXPECT().GetList().Return(defaultNetInfo, nil),
91 +                       mockCapabilityDB.EXPECT().Get(gomock.Any()).Return(defaultCapInfo,errors.New("")),
92 +               )
93 +
94 +               _, err := confIns.ReadCapability("192.168.1.1")
95 +               if err == nil {
96 +                       t.Error("Error should be not be nil")
97 +                       return
98 +               }
99 +       })
100 +}
101 +
102 +func TestWriteCapability(t *testing.T) {
103 +       confIns := GetInstance()
104 +
105 +       ctrl := gomock.NewController(t)
106 +       defer ctrl.Finish()
107 +
108 +       createMockIns(ctrl)
109 +       t.Run("Error in Write in Sys call", func(t *testing.T) {
110 +               var defaultSysInfo sysDB.SystemInfo
111 +               mockSystemDB.EXPECT().Get(gomock.Any()).Return(defaultSysInfo, errors.New(""))
112 +               err := confIns.WriteCapability("DefaultCapability")
113 +               if err == nil {
114 +                       t.Error("Error should not be nil")
115 +                       return
116 +               }
117 +       })
118 +
119 +       t.Run("Successful Write",func(t *testing.T){
120 +
121 +               defaultSysInfo := sysDB.SystemInfo{
122 +                       Name:  "id",
123 +                       Value: "defaultId",
124 +               }
125 +
126 +               gomock.InOrder(
127 +                       mockSystemDB.EXPECT().Get(gomock.Any()).Return(defaultSysInfo,nil),
128 +                       mockCapabilityDB.EXPECT().Set(gomock.Any(),gomock.Any()).Return(nil),
129 +                       mockDiscovery.EXPECT().AddNewCapability(gomock.Any()).Return(),
130 +               )
131 +
132 +               err := confIns.WriteCapability("DefaultCapability")
133 +               if err != nil {
134 +                       t.Error("Error should be nil")
135 +                       return
136 +               }
137 +       })
138 +
139 +       t.Run("Faliure at Capability DB in  Write",func(t *testing.T){
140 +
141 +               defaultSysInfo := sysDB.SystemInfo{
142 +                       Name:  "id",
143 +                       Value: "defaultId",
144 +               }
145 +
146 +               gomock.InOrder(
147 +                       mockSystemDB.EXPECT().Get(gomock.Any()).Return(defaultSysInfo,nil),
148 +                       mockCapabilityDB.EXPECT().Set(gomock.Any(),gomock.Any()).Return(errors.New("")),
149 +               )
150 +
151 +               err := confIns.WriteCapability("DefaultCapability")
152 +               if err == nil {
153 +                       t.Error("Error should be nil")
154 +                       return
155 +               }
156 +       })
157 +
158 +}
159 +
160 +func createMockIns(ctrl *gomock.Controller){
161 +       mockCapabilityDB = capabilityDBMock.NewMockDBInterface(ctrl)
162 +       mockNetworkDB = networkDBMock.NewMockDBInterface(ctrl)
163 +       mockSystemDB = systemDBMock.NewMockDBInterface(ctrl)
164 +       mockDiscovery = discovery.NewMockDiscovery(ctrl)
165 +       netDBExecutor = mockNetworkDB
166 +       capDBExecutor = mockCapabilityDB
167 +       sysDBExecutor = mockSystemDB
168 +       discoveryImpl = mockDiscovery
169 +}
170 \ No newline at end of file