mirror of
				https://github.com/cloudreve/cloudreve.git
				synced 2025-11-04 04:47:24 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package serializer
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
 | 
						|
	model "github.com/cloudreve/Cloudreve/v3/models"
 | 
						|
	"github.com/cloudreve/Cloudreve/v3/pkg/aria2/rpc"
 | 
						|
	"github.com/cloudreve/Cloudreve/v3/pkg/cache"
 | 
						|
	"github.com/jinzhu/gorm"
 | 
						|
	"github.com/stretchr/testify/assert"
 | 
						|
)
 | 
						|
 | 
						|
func TestBuildFinishedListResponse(t *testing.T) {
 | 
						|
	asserts := assert.New(t)
 | 
						|
	tasks := []model.Download{
 | 
						|
		{
 | 
						|
			StatusInfo: rpc.StatusInfo{
 | 
						|
				Files: []rpc.FileInfo{
 | 
						|
					{
 | 
						|
						Path: "/file/name.txt",
 | 
						|
					},
 | 
						|
				},
 | 
						|
			},
 | 
						|
			Task: &model.Task{
 | 
						|
				Model: gorm.Model{},
 | 
						|
				Error: "error",
 | 
						|
			},
 | 
						|
		},
 | 
						|
		{
 | 
						|
			StatusInfo: rpc.StatusInfo{
 | 
						|
				Files: []rpc.FileInfo{
 | 
						|
					{
 | 
						|
						Path: "/file/name1.txt",
 | 
						|
					},
 | 
						|
					{
 | 
						|
						Path: "/file/name2.txt",
 | 
						|
					},
 | 
						|
				},
 | 
						|
			},
 | 
						|
		},
 | 
						|
	}
 | 
						|
	tasks[1].StatusInfo.BitTorrent.Info.Name = "name.txt"
 | 
						|
	res := BuildFinishedListResponse(tasks).Data.([]FinishedListResponse)
 | 
						|
	asserts.Len(res, 2)
 | 
						|
	asserts.Equal("name.txt", res[1].Name)
 | 
						|
	asserts.Equal("name.txt", res[0].Name)
 | 
						|
	asserts.Equal("name.txt", res[0].Files[0].Path)
 | 
						|
	asserts.Equal("name1.txt", res[1].Files[0].Path)
 | 
						|
	asserts.Equal("name2.txt", res[1].Files[1].Path)
 | 
						|
	asserts.EqualValues(0, res[0].TaskStatus)
 | 
						|
	asserts.Equal("error", res[0].TaskError)
 | 
						|
}
 | 
						|
 | 
						|
func TestBuildDownloadingResponse(t *testing.T) {
 | 
						|
	asserts := assert.New(t)
 | 
						|
	cache.Set("setting_aria2_interval", "10", 0)
 | 
						|
	tasks := []model.Download{
 | 
						|
		{
 | 
						|
			StatusInfo: rpc.StatusInfo{
 | 
						|
				Files: []rpc.FileInfo{
 | 
						|
					{
 | 
						|
						Path: "/file/name.txt",
 | 
						|
					},
 | 
						|
				},
 | 
						|
			},
 | 
						|
			Task: &model.Task{
 | 
						|
				Model: gorm.Model{},
 | 
						|
				Error: "error",
 | 
						|
			},
 | 
						|
		},
 | 
						|
		{
 | 
						|
			StatusInfo: rpc.StatusInfo{
 | 
						|
				Files: []rpc.FileInfo{
 | 
						|
					{
 | 
						|
						Path: "/file/name1.txt",
 | 
						|
					},
 | 
						|
					{
 | 
						|
						Path: "/file/name2.txt",
 | 
						|
					},
 | 
						|
				},
 | 
						|
			},
 | 
						|
		},
 | 
						|
	}
 | 
						|
	tasks[1].StatusInfo.BitTorrent.Info.Name = "name.txt"
 | 
						|
	tasks[1].ID = 1
 | 
						|
 | 
						|
	res := BuildDownloadingResponse(tasks, map[uint]int{1: 5}).Data.([]DownloadListResponse)
 | 
						|
	asserts.Len(res, 2)
 | 
						|
	asserts.Equal("name1.txt", res[1].Name)
 | 
						|
	asserts.Equal(5, res[1].UpdateInterval)
 | 
						|
	asserts.Equal("name.txt", res[0].Name)
 | 
						|
	asserts.Equal("name.txt", res[0].Info.Files[0].Path)
 | 
						|
	asserts.Equal("name1.txt", res[1].Info.Files[0].Path)
 | 
						|
	asserts.Equal("name2.txt", res[1].Info.Files[1].Path)
 | 
						|
}
 |