updated tests

This commit is contained in:
John Eikenberry 2016-07-19 12:52:43 -07:00
parent 138f292b1b
commit a15e6f57e3
2 changed files with 34 additions and 17 deletions

View File

@ -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"}

View File

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