ddcc229bb4f407a6026b6b22008a8dff5f100c00
[nonrtric.git] / test / usecases / oruclosedlooprecovery / goversion / internal / repository / csvhelp_test.go
1 // -
2 //   ========================LICENSE_START=================================
3 //   O-RAN-SC
4 //   %%
5 //   Copyright (C) 2021: Nordix Foundation
6 //   %%
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
10 //
11 //        http://www.apache.org/licenses/LICENSE-2.0
12 //
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===================================
19 //
20
21 package repository
22
23 import (
24         "os"
25         "testing"
26
27         "github.com/stretchr/testify/require"
28 )
29
30 func TestCsvFileHelperImpl_GetCsvFromFile(t *testing.T) {
31         assertions := require.New(t)
32         filePath := createTempCsvFile()
33         defer os.Remove(filePath)
34         type args struct {
35                 name string
36         }
37         tests := []struct {
38                 name          string
39                 args          args
40                 want          [][]string
41                 wantErrString string
42         }{
43                 {
44                         name: "Read from file should return array of content",
45                         args: args{
46                                 name: filePath,
47                         },
48                         want: [][]string{{"O-RU-ID", "O-DU-ID"}},
49                 },
50                 {
51                         name: "File missing should return error",
52                         args: args{
53                                 name: "nofile.csv",
54                         },
55                         wantErrString: "open nofile.csv: no such file or directory",
56                 },
57         }
58         for _, tt := range tests {
59                 t.Run(tt.name, func(t *testing.T) {
60                         h := NewCsvFileHelperImpl()
61                         got, err := h.GetCsvFromFile(tt.args.name)
62                         assertions.Equal(tt.want, got)
63                         if tt.wantErrString != "" {
64                                 assertions.Contains(err.Error(), tt.wantErrString)
65                         }
66                 })
67         }
68 }
69
70 func createTempCsvFile() string {
71         csvFile, _ := os.CreateTemp("", "test*.csv")
72         filePath := csvFile.Name()
73         csvFile.Write([]byte("O-RU-ID,O-DU-ID"))
74         csvFile.Close()
75         return filePath
76 }