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