2 // ========================LICENSE_START=================================
5 // Copyright (C) 2021: Nordix Foundation
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 // ========================LICENSE_END===================================
28 "oransc.org/usecase/oruclosedloop/mocks"
31 func TestNewLookupServiceImpl(t *testing.T) {
32 mockCsvFileHelper := &mocks.CsvFileHelper{}
34 fileHelper CsvFileHelper
40 want *LookupServiceImpl
43 name: "Should return populated service",
45 fileHelper: mockCsvFileHelper,
48 want: &LookupServiceImpl{
49 csvFileHelper: mockCsvFileHelper,
50 csvFileName: "test.csv",
51 oRuIdToODuIdMap: map[string]string{},
55 for _, tt := range tests {
56 t.Run(tt.name, func(t *testing.T) {
57 if got := NewLookupServiceImpl(tt.args.fileHelper, tt.args.fileName); !reflect.DeepEqual(got, tt.want) {
58 t.Errorf("NewLookupServiceImpl() = %v, want %v", got, tt.want)
64 func TestLookupServiceImpl_Init(t *testing.T) {
65 mockCsvFileHelper := &mocks.CsvFileHelper{}
66 mockCsvFileHelper.On("GetCsvFromFile", "./map.csv").Return([][]string{{"O-RU-ID", "O-DU-ID"}}, nil).Once()
67 mockCsvFileHelper.On("GetCsvFromFile", "foo.csv").Return(nil, errors.New("Error")).Once()
69 csvFileHelper CsvFileHelper
71 oRuIdToODuIdMap map[string]string
79 name: "Init with proper csv file should not return error",
81 csvFileHelper: mockCsvFileHelper,
82 csvFileName: "./map.csv",
83 oRuIdToODuIdMap: map[string]string{}},
87 name: "Init with missing file should return error",
89 csvFileHelper: mockCsvFileHelper,
90 csvFileName: "foo.csv",
91 oRuIdToODuIdMap: map[string]string{},
96 for _, tt := range tests {
97 t.Run(tt.name, func(t *testing.T) {
98 s := LookupServiceImpl{
99 csvFileHelper: tt.fields.csvFileHelper,
100 csvFileName: tt.fields.csvFileName,
101 oRuIdToODuIdMap: tt.fields.oRuIdToODuIdMap,
103 if err := s.Init(); (err != nil) != tt.wantErr {
104 t.Errorf("LookupServiceImpl.Init() error = %v, wantErr %v", err, tt.wantErr)
105 } else if !tt.wantErr {
106 wantedMap := map[string]string{"O-RU-ID": "O-DU-ID"}
107 if !reflect.DeepEqual(wantedMap, s.oRuIdToODuIdMap) {
108 t.Errorf("LookupServiceImpl.Init() map not initialized, wanted map: %v, got map: %v", wantedMap, s.oRuIdToODuIdMap)
113 mockCsvFileHelper.AssertNumberOfCalls(t, "GetCsvFromFile", 2)
116 func TestLookupServiceImpl_GetODuID(t *testing.T) {
118 csvFileHelper CsvFileHelper
120 oRuIdToODuIdMap map[string]string
133 name: "Id mapped should return mapped id",
137 oRuIdToODuIdMap: map[string]string{"O-RU-ID": "O-DU-ID"},
146 name: "Id not mapped should return IdNotMappedError",
150 oRuIdToODuIdMap: map[string]string{},
156 wantErr: IdNotMappedError{Id: "O-RU-ID"},
159 for _, tt := range tests {
160 t.Run(tt.name, func(t *testing.T) {
161 s := LookupServiceImpl{
162 csvFileHelper: tt.fields.csvFileHelper,
163 csvFileName: tt.fields.csvFileName,
164 oRuIdToODuIdMap: tt.fields.oRuIdToODuIdMap,
166 got, err := s.GetODuID(tt.args.oRuId)
167 if err != tt.wantErr {
168 t.Errorf("LookupServiceImpl.GetODuID() error = %v, wantErr %v", err, tt.wantErr)
172 t.Errorf("LookupServiceImpl.GetODuID() = %v, want %v", got, tt.want)