Skip to content

Commit 0f6fe1a

Browse files
committed
handler: add POST UploadConcat unit-test
1 parent 91a5302 commit 0f6fe1a

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

pkg/handler/post_test.go

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,62 @@ func TestPost(t *testing.T) {
543543
Code: http.StatusForbidden,
544544
}).Run(handler, t)
545545
})
546+
547+
SubTest(t, "UploadConcat", func(t *testing.T, store *MockFullDataStore, composer *StoreComposer) {
548+
ctrl := gomock.NewController(t)
549+
defer ctrl.Finish()
550+
uploadA := NewMockFullUpload(ctrl)
551+
uploadB := NewMockFullUpload(ctrl)
552+
uploadC := NewMockFullUpload(ctrl)
553+
554+
gomock.InOrder(
555+
store.EXPECT().GetUpload(gomock.Any(), "a").Return(uploadA, nil),
556+
uploadA.EXPECT().GetInfo(gomock.Any()).Return(FileInfo{
557+
ID: "a",
558+
Offset: 5,
559+
Size: 5,
560+
}, nil),
561+
562+
store.EXPECT().GetUpload(gomock.Any(), "b").Return(uploadB, nil),
563+
uploadB.EXPECT().GetInfo(gomock.Any()).Return(FileInfo{
564+
ID: "b",
565+
Offset: 10,
566+
Size: 10,
567+
}, nil),
568+
569+
store.EXPECT().NewUpload(gomock.Any(), FileInfo{
570+
Size: 15,
571+
MetaData: map[string]string{},
572+
IsFinal: true,
573+
PartialUploads: []string{"a", "b"},
574+
}).Return(uploadC, nil),
575+
uploadC.EXPECT().GetInfo(gomock.Any()).Return(FileInfo{
576+
ID: "foo",
577+
Size: 15,
578+
MetaData: map[string]string{},
579+
}, nil),
580+
581+
store.EXPECT().AsConcatableUpload(uploadC).Return(uploadC),
582+
uploadC.EXPECT().ConcatUploads(gomock.Any(), []Upload{uploadA, uploadB}).Return(nil),
583+
)
584+
585+
handler, _ := NewHandler(Config{
586+
StoreComposer: composer,
587+
BasePath: "/files/",
588+
})
589+
590+
(&httpTest{
591+
Method: "POST",
592+
ReqHeader: map[string]string{
593+
"Tus-Resumable": "1.0.0",
594+
"Upload-Concat": "final;http://tus.io/files/a http://tus.io/files/b",
595+
},
596+
Code: http.StatusCreated,
597+
ResHeader: map[string]string{
598+
"Location": "http://tus.io/files/foo",
599+
},
600+
}).Run(handler, t)
601+
})
546602
})
547603

548604
SubTest(t, "ExperimentalProtocol", func(t *testing.T, _ *MockFullDataStore, _ *StoreComposer) {

0 commit comments

Comments
 (0)