github.com/netdata/go.d.plugin@v0.58.1/pkg/multipath/multipath_test.go (about)

     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  }