mirror of https://github.com/pkg/sftp.git
updated tests
This commit is contained in:
parent
138f292b1b
commit
a15e6f57e3
|
|
@ -1,9 +1,10 @@
|
||||||
package sftp
|
package sftp
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
"io"
|
"io"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func clientRequestServerPair(t *testing.T) (*Client, *RequestServer) {
|
func clientRequestServerPair(t *testing.T) (*Client, *RequestServer) {
|
||||||
|
|
@ -12,15 +13,19 @@ func clientRequestServerPair(t *testing.T) (*Client, *RequestServer) {
|
||||||
server, err := NewRequestServer(struct {
|
server, err := NewRequestServer(struct {
|
||||||
io.Reader
|
io.Reader
|
||||||
io.WriteCloser
|
io.WriteCloser
|
||||||
}{sr, sw})
|
}{sr, sw}, Handlers{})
|
||||||
if err != nil { t.Fatal(err) }
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
go server.Serve()
|
go server.Serve()
|
||||||
client, err := NewClientPipe(cr, cw)
|
client, err := NewClientPipe(cr, cw)
|
||||||
if err != nil { t.Fatalf("%+v\n", err) }
|
if err != nil {
|
||||||
|
t.Fatalf("%+v\n", err)
|
||||||
|
}
|
||||||
return client, server
|
return client, server
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPsRequestCache(t *testing.T) {
|
func TestRequestCache(t *testing.T) {
|
||||||
_, rs := clientRequestServerPair(t)
|
_, rs := clientRequestServerPair(t)
|
||||||
foo := &Request{Filepath: "foo"}
|
foo := &Request{Filepath: "foo"}
|
||||||
bar := &Request{Filepath: "bar"}
|
bar := &Request{Filepath: "bar"}
|
||||||
|
|
|
||||||
|
|
@ -18,26 +18,38 @@ type testHandler struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *testHandler) Fileread(r *Request) (io.Reader, error) {
|
func (t *testHandler) Fileread(r *Request) (io.Reader, error) {
|
||||||
if t.err != nil { return nil, t.err }
|
if t.err != nil {
|
||||||
|
return nil, t.err
|
||||||
|
}
|
||||||
return strings.NewReader(t.filecontents), nil
|
return strings.NewReader(t.filecontents), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *testHandler) Filewrite(r *Request) (io.Writer, error) {
|
func (t *testHandler) Filewrite(r *Request) (io.Writer, error) {
|
||||||
if t.err != nil { return nil, t.err }
|
if t.err != nil {
|
||||||
|
return nil, t.err
|
||||||
|
}
|
||||||
return io.Writer(t.output), nil
|
return io.Writer(t.output), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *testHandler) Filecmd(r *Request) error {
|
func (t *testHandler) Filecmd(r *Request) error {
|
||||||
if t.err != nil { return t.err }
|
if t.err != nil {
|
||||||
|
return t.err
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *testHandler) Fileinfo(r *Request) ([]os.FileInfo, error) {
|
func (t *testHandler) Fileinfo(r *Request) ([]os.FileInfo, error) {
|
||||||
if t.err != nil { return nil, t.err }
|
if t.err != nil {
|
||||||
|
return nil, t.err
|
||||||
|
}
|
||||||
f, err := os.Open(r.Filepath)
|
f, err := os.Open(r.Filepath)
|
||||||
if err != nil { return nil, err }
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
fi, err := f.Stat()
|
fi, err := f.Stat()
|
||||||
if err != nil { return nil, err }
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
return []os.FileInfo{fi}, nil
|
return []os.FileInfo{fi}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -87,7 +99,7 @@ func statusOk(t *testing.T, p interface{}) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetMethod(t *testing.T) {
|
func TestRequestGet(t *testing.T) {
|
||||||
handlers := newTestHandlers()
|
handlers := newTestHandlers()
|
||||||
request := testRequest("Get")
|
request := testRequest("Get")
|
||||||
// req.length is 4, so we test reads in 4 byte chunks
|
// req.length is 4, so we test reads in 4 byte chunks
|
||||||
|
|
@ -100,7 +112,7 @@ func TestGetMethod(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPutMethod(t *testing.T) {
|
func TestRequestPut(t *testing.T) {
|
||||||
handlers := newTestHandlers()
|
handlers := newTestHandlers()
|
||||||
request := testRequest("Put")
|
request := testRequest("Put")
|
||||||
pkt, err := request.handle(handlers)
|
pkt, err := request.handle(handlers)
|
||||||
|
|
@ -109,7 +121,7 @@ func TestPutMethod(t *testing.T) {
|
||||||
statusOk(t, pkt)
|
statusOk(t, pkt)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCmdrMethod(t *testing.T) {
|
func TestRequestCmdr(t *testing.T) {
|
||||||
handlers := newTestHandlers()
|
handlers := newTestHandlers()
|
||||||
request := testRequest("Mkdir")
|
request := testRequest("Mkdir")
|
||||||
pkt, err := request.handle(handlers)
|
pkt, err := request.handle(handlers)
|
||||||
|
|
@ -122,9 +134,9 @@ func TestCmdrMethod(t *testing.T) {
|
||||||
assert.Equal(t, err, testError)
|
assert.Equal(t, err, testError)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestInfoListMethod(t *testing.T) { testInfoMethod(t, "List") }
|
func TestRequestInfoList(t *testing.T) { testInfoMethod(t, "List") }
|
||||||
func TestInfoReadlinkMethod(t *testing.T) { testInfoMethod(t, "Readlink") }
|
func TestRequestInfoReadlink(t *testing.T) { testInfoMethod(t, "Readlink") }
|
||||||
func TestInfoStatMethod(t *testing.T) {
|
func TestRequestInfoStat(t *testing.T) {
|
||||||
handlers := newTestHandlers()
|
handlers := newTestHandlers()
|
||||||
request := testRequest("Stat")
|
request := testRequest("Stat")
|
||||||
pkt, err := request.handle(handlers)
|
pkt, err := request.handle(handlers)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue