From 10623f5d7a7d785fb3863c2b190b0f2f99686b7c Mon Sep 17 00:00:00 2001 From: Steve Streeting Date: Tue, 31 May 2016 11:04:17 +0100 Subject: [PATCH] Tests for transfer registration system --- transfer/transfer_test.go | 105 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 transfer/transfer_test.go diff --git a/transfer/transfer_test.go b/transfer/transfer_test.go new file mode 100644 index 00000000..fde3eb59 --- /dev/null +++ b/transfer/transfer_test.go @@ -0,0 +1,105 @@ +package transfer + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +type testAdapter struct { + name string + dir Direction +} + +func (a *testAdapter) Name() string { + return a.name +} +func (a *testAdapter) Direction() Direction { + return a.dir +} +func (a *testAdapter) Begin(maxConcurrency int, cb TransferProgressCallback, completion chan TransferResult) error { + return nil +} +func (a *testAdapter) Add(t *Transfer) { +} +func (a *testAdapter) End() { +} +func (a *testAdapter) ClearTempStorage() error { + return nil +} +func newTestAdapter(name string, dir Direction) TransferAdapter { + return &testAdapter{name, dir} +} +func newRenamedTestAdapter(name string, dir Direction) TransferAdapter { + return &testAdapter{"RENAMED", dir} +} +func resetAdapters() { + uploadAdapterFuncs = make(map[string]NewTransferAdapterFunc) + downloadAdapterFuncs = make(map[string]NewTransferAdapterFunc) +} + +func testBasicAdapterExists(t *testing.T) { + assert := assert.New(t) + + dls := GetDownloadAdapterNames() + if assert.NotNil(dls) { + assert.Equal([]string{"basic"}, dls) + } + uls := GetUploadAdapterNames() + if assert.NotNil(uls) { + assert.Equal([]string{"basic"}, uls) + } + da := NewDownloadAdapter("basic") + if assert.NotNil(da) { + assert.Equal("basic", da.Name()) + assert.Equal(Download, da.Direction()) + } + ua := NewUploadAdapter("basic") + if assert.NotNil(ua) { + assert.Equal("basic", ua.Name()) + assert.Equal(Upload, ua.Direction()) + } +} + +func testAdapterRegAndOverride(t *testing.T) { + assert := assert.New(t) + + assert.Nil(NewDownloadAdapter("test")) + assert.Nil(NewUploadAdapter("test")) + + RegisterNewTransferAdapterFunc("test", Upload, newTestAdapter) + assert.Nil(NewDownloadAdapter("test")) + assert.NotNil(NewUploadAdapter("test")) + + RegisterNewTransferAdapterFunc("test", Download, newTestAdapter) + da := NewDownloadAdapter("test") + if assert.NotNil(da) { + assert.Equal("test", da.Name()) + assert.Equal(Download, da.Direction()) + } + ua := NewUploadAdapter("test") + if assert.NotNil(ua) { + assert.Equal("test", ua.Name()) + assert.Equal(Upload, ua.Direction()) + } + + // Test override + RegisterNewTransferAdapterFunc("test", Upload, newRenamedTestAdapter) + ua = NewUploadAdapter("test") + if assert.NotNil(ua) { + assert.Equal("RENAMED", ua.Name()) + assert.Equal(Upload, ua.Direction()) + } + da = NewDownloadAdapter("test") + if assert.NotNil(da) { + assert.Equal("test", da.Name()) + assert.Equal(Download, da.Direction()) + } + RegisterNewTransferAdapterFunc("test", Download, newRenamedTestAdapter) + da = NewDownloadAdapter("test") + if assert.NotNil(da) { + assert.Equal("RENAMED", da.Name()) + assert.Equal(Download, da.Direction()) + } + +}