| package sftp |
| |
| import ( |
| "io" |
| "syscall" |
| "testing" |
| |
| "github.com/pkg/errors" |
| "github.com/stretchr/testify/assert" |
| ) |
| |
| func TestErrFxCode(t *testing.T) { |
| table := []struct { |
| err error |
| fx fxerr |
| }{ |
| {err: errors.New("random error"), fx: ErrSSHFxFailure}, |
| {err: EBADF, fx: ErrSSHFxFailure}, |
| {err: syscall.ENOENT, fx: ErrSSHFxNoSuchFile}, |
| {err: syscall.EPERM, fx: ErrSSHFxPermissionDenied}, |
| {err: io.EOF, fx: ErrSSHFxEOF}, |
| } |
| for _, tt := range table { |
| statusErr := statusFromError(1, tt.err).StatusError |
| assert.Equal(t, statusErr.FxCode(), tt.fx) |
| } |
| } |
| |
| func TestSupportedExtensions(t *testing.T) { |
| for _, supportedExtension := range supportedSFTPExtensions { |
| _, err := getSupportedExtensionByName(supportedExtension.Name) |
| assert.NoError(t, err) |
| } |
| _, err := getSupportedExtensionByName("[email protected]") |
| assert.Error(t, err) |
| } |
| |
| func TestExtensions(t *testing.T) { |
| var supportedExtensions []string |
| for _, supportedExtension := range supportedSFTPExtensions { |
| supportedExtensions = append(supportedExtensions, supportedExtension.Name) |
| } |
| |
| testSFTPExtensions := []string{"[email protected]"} |
| expectedSFTPExtensions := []sshExtensionPair{ |
| {"[email protected]", "1"}, |
| } |
| err := SetSFTPExtensions(testSFTPExtensions...) |
| assert.NoError(t, err) |
| assert.Equal(t, expectedSFTPExtensions, sftpExtensions) |
| |
| invalidSFTPExtensions := []string{"[email protected]"} |
| err = SetSFTPExtensions(invalidSFTPExtensions...) |
| assert.Error(t, err) |
| assert.Equal(t, expectedSFTPExtensions, sftpExtensions) |
| |
| emptySFTPExtensions := []string{} |
| expectedSFTPExtensions = []sshExtensionPair{} |
| err = SetSFTPExtensions(emptySFTPExtensions...) |
| assert.NoError(t, err) |
| assert.Equal(t, expectedSFTPExtensions, sftpExtensions) |
| |
| // if we only have an invalid extension nothing will be modified. |
| invalidSFTPExtensions = []string{ |
| "[email protected]", |
| "[email protected]", |
| } |
| err = SetSFTPExtensions(invalidSFTPExtensions...) |
| assert.Error(t, err) |
| assert.Equal(t, expectedSFTPExtensions, sftpExtensions) |
| |
| err = SetSFTPExtensions(supportedExtensions...) |
| assert.Equal(t, supportedSFTPExtensions, sftpExtensions) |
| } |