5f55c6a711
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
73 lines
1.4 KiB
Go
73 lines
1.4 KiB
Go
package gin
|
|
|
|
import (
|
|
"errors"
|
|
"net/http"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type mockFileSystem struct {
|
|
open func(name string) (http.File, error)
|
|
}
|
|
|
|
func (m *mockFileSystem) Open(name string) (http.File, error) {
|
|
return m.open(name)
|
|
}
|
|
|
|
func TestOnlyFilesFS_Open(t *testing.T) {
|
|
var testFile *os.File
|
|
mockFS := &mockFileSystem{
|
|
open: func(name string) (http.File, error) {
|
|
return testFile, nil
|
|
},
|
|
}
|
|
fs := &OnlyFilesFS{FileSystem: mockFS}
|
|
|
|
file, err := fs.Open("foo")
|
|
|
|
require.NoError(t, err)
|
|
assert.Equal(t, testFile, file.(neutralizedReaddirFile).File)
|
|
}
|
|
|
|
func TestOnlyFilesFS_Open_err(t *testing.T) {
|
|
testError := errors.New("mock")
|
|
mockFS := &mockFileSystem{
|
|
open: func(_ string) (http.File, error) {
|
|
return nil, testError
|
|
},
|
|
}
|
|
fs := &OnlyFilesFS{FileSystem: mockFS}
|
|
|
|
file, err := fs.Open("foo")
|
|
|
|
require.ErrorIs(t, err, testError)
|
|
assert.Nil(t, file)
|
|
}
|
|
|
|
func Test_neuteredReaddirFile_Readdir(t *testing.T) {
|
|
n := neutralizedReaddirFile{}
|
|
|
|
res, err := n.Readdir(0)
|
|
|
|
require.NoError(t, err)
|
|
assert.Nil(t, res)
|
|
}
|
|
|
|
func TestDir_listDirectory(t *testing.T) {
|
|
testRoot := "foo"
|
|
fs := Dir(testRoot, true)
|
|
|
|
assert.Equal(t, http.Dir(testRoot), fs)
|
|
}
|
|
|
|
func TestDir(t *testing.T) {
|
|
testRoot := "foo"
|
|
fs := Dir(testRoot, false)
|
|
|
|
assert.Equal(t, &OnlyFilesFS{FileSystem: http.Dir(testRoot)}, fs)
|
|
}
|