master
go 60 lines 1.42 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package multipath
4
5 import (
6 "errors"
7 "testing"
8
9 "github.com/stretchr/testify/assert"
10 )
11
12 func TestNew(t *testing.T) {
13 assert.Len(
14 t,
15 New("path1", "path2", "path2", "", "path3"),
16 3,
17 )
18 }
19
20 func TestMultiPath_Find(t *testing.T) {
21 m := New("path1", "testdata/data1")
22
23 v, err := m.Find("not exist")
24 assert.Zero(t, v)
25 assert.Error(t, err)
26
27 v, err = m.Find("test-empty.conf")
28 assert.Equal(t, "testdata/data1/test-empty.conf", v)
29 assert.Nil(t, err)
30
31 v, err = m.Find("test.conf")
32 assert.Equal(t, "testdata/data1/test.conf", v)
33 assert.Nil(t, err)
34 }
35
36 func TestIsNotFound(t *testing.T) {
37 assert.True(t, IsNotFound(ErrNotFound{}))
38 assert.False(t, IsNotFound(errors.New("")))
39 }
40
41 func TestMultiPath_FindFiles(t *testing.T) {
42 m := New("path1", "testdata/data2", "testdata/data1")
43
44 files, err := m.FindFiles(".conf")
45 assert.NoError(t, err)
46 assert.Equal(t, []string{"testdata/data2/test-empty.conf", "testdata/data2/test.conf"}, files)
47
48 files, err = m.FindFiles()
49 assert.NoError(t, err)
50 assert.Equal(t, []string{"testdata/data2/test-empty.conf", "testdata/data2/test.conf"}, files)
51
52 files, err = m.FindFiles(".not_exist")
53 assert.NoError(t, err)
54 assert.Equal(t, []string(nil), files)
55
56 m = New("path1", "testdata/data1", "testdata/data2")
57 files, err = m.FindFiles(".conf")
58 assert.NoError(t, err)
59 assert.Equal(t, []string{"testdata/data1/test-empty.conf", "testdata/data1/test.conf"}, files)
60 }