Home / File/ fs_test.go — gin Source File

fs_test.go — gin Source File

Architecture documentation for fs_test.go, a go file in the gin codebase. 1 imports, 0 dependents.

File go GinCore Routing 1 imports 6 functions 1 classes

Entity Profile

Dependency Diagram

graph LR
  77c2ea48_94c9_7fb8_e9da_d5b6e60ec481["fs_test.go"]
  285f3da5_b453_bac8_eb53_efea9feb6bb9["errors"]
  77c2ea48_94c9_7fb8_e9da_d5b6e60ec481 --> 285f3da5_b453_bac8_eb53_efea9feb6bb9
  style 77c2ea48_94c9_7fb8_e9da_d5b6e60ec481 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

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)
}

Domain

Subdomains

Classes

Dependencies

  • errors

Frequently Asked Questions

What does fs_test.go do?
fs_test.go is a source file in the gin codebase, written in go. It belongs to the GinCore domain, Routing subdomain.
What functions are defined in fs_test.go?
fs_test.go defines 6 function(s): TestDir, TestDir_listDirectory, TestOnlyFilesFS_Open, TestOnlyFilesFS_Open_err, Test_neuteredReaddirFile_Readdir, name.
What does fs_test.go depend on?
fs_test.go imports 1 module(s): errors.
Where is fs_test.go in the architecture?
fs_test.go is located at fs_test.go (domain: GinCore, subdomain: Routing).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free