@@ -13,16 +13,16 @@ import (
1313	"github.com/stretchr/testify/assert" 
1414)
1515
16- const  (
17- 	description  =  "Package Description" 
18- 	author       =  "KN4CK3R" 
19- 	homepage     =  "https://gitea.io/" 
20- 	license      =  "MIT" 
21- )
22- 
2316func  TestParsePackage (t  * testing.T ) {
24- 	createPackage  :=  func (name , version  string ) io.Reader  {
25- 		metadata  :=  `{ 
17+ 	const  (
18+ 		description  =  "Package Description" 
19+ 		author       =  "KN4CK3R" 
20+ 		homepage     =  "https://gitea.io/" 
21+ 		license      =  "MIT" 
22+ 		payload      =  "gitea test dummy payload"  // a fake payload for test only 
23+ 	)
24+ 	makeDefaultPackageMeta  :=  func (name , version  string ) string  {
25+ 		return  `{ 
2626   "name":"`  +  name  +  `", 
2727   "vers":"`  +  version  +  `", 
2828   "description":"`  +  description  +  `", 
@@ -36,18 +36,19 @@ func TestParsePackage(t *testing.T) {
3636   "homepage":"`  +  homepage  +  `", 
3737   "license":"`  +  license  +  `" 
3838}` 
39- 
39+ 	}
40+ 	createPackage  :=  func (metadata  string ) io.Reader  {
4041		var  buf  bytes.Buffer 
4142		binary .Write (& buf , binary .LittleEndian , uint32 (len (metadata )))
4243		buf .WriteString (metadata )
43- 		binary .Write (& buf , binary .LittleEndian , uint32 (4 ))
44- 		buf .WriteString ("test" )
44+ 		binary .Write (& buf , binary .LittleEndian , uint32 (len ( payload ) ))
45+ 		buf .WriteString (payload )
4546		return  & buf 
4647	}
4748
4849	t .Run ("InvalidName" , func (t  * testing.T ) {
4950		for  _ , name  :=  range  []string {"" , "0test" , "-test" , "_test" , strings .Repeat ("a" , 65 )} {
50- 			data  :=  createPackage (name , "1.0.0" )
51+ 			data  :=  createPackage (makeDefaultPackageMeta ( name , "1.0.0" ) )
5152
5253			cp , err  :=  ParsePackage (data )
5354			assert .Nil (t , cp )
@@ -57,7 +58,7 @@ func TestParsePackage(t *testing.T) {
5758
5859	t .Run ("InvalidVersion" , func (t  * testing.T ) {
5960		for  _ , version  :=  range  []string {"" , "1." , "-1.0" , "1.0.0/1" } {
60- 			data  :=  createPackage ("test" , version )
61+ 			data  :=  createPackage (makeDefaultPackageMeta ( "test" , version ) )
6162
6263			cp , err  :=  ParsePackage (data )
6364			assert .Nil (t , cp )
@@ -66,7 +67,7 @@ func TestParsePackage(t *testing.T) {
6667	})
6768
6869	t .Run ("Valid" , func (t  * testing.T ) {
69- 		data  :=  createPackage ("test" , "1.0.0" )
70+ 		data  :=  createPackage (makeDefaultPackageMeta ( "test" , "1.0.0" ) )
7071
7172		cp , err  :=  ParsePackage (data )
7273		assert .NotNil (t , cp )
@@ -78,9 +79,34 @@ func TestParsePackage(t *testing.T) {
7879		assert .Equal (t , []string {author }, cp .Metadata .Authors )
7980		assert .Len (t , cp .Metadata .Dependencies , 1 )
8081		assert .Equal (t , "dep" , cp .Metadata .Dependencies [0 ].Name )
82+ 		assert .Nil (t , cp .Metadata .Dependencies [0 ].Package )
8183		assert .Equal (t , homepage , cp .Metadata .ProjectURL )
8284		assert .Equal (t , license , cp .Metadata .License )
8385		content , _  :=  io .ReadAll (cp .Content )
84- 		assert .Equal (t , "test" , string (content ))
86+ 		assert .Equal (t , payload , string (content ))
87+ 	})
88+ 
89+ 	t .Run ("Renamed" , func (t  * testing.T ) {
90+ 		data  :=  createPackage (`{ 
91+    "name":"test-pkg", 
92+    "vers":"1.0", 
93+    "description":"test-desc", 
94+    "authors": ["test-author"], 
95+    "deps":[ 
96+       { 
97+          "name":"dep-renamed", 
98+          "explicit_name_in_toml":"dep-explicit", 
99+          "version_req":"1.0" 
100+       } 
101+    ], 
102+    "homepage":"https://gitea.io/", 
103+    "license":"MIT" 
104+ }` )
105+ 		cp , err  :=  ParsePackage (data )
106+ 		assert .NoError (t , err )
107+ 		assert .Equal (t , "test-pkg" , cp .Name )
108+ 		assert .Equal (t , "https://gitea.io/" , cp .Metadata .ProjectURL )
109+ 		assert .Equal (t , "dep-explicit" , cp .Metadata .Dependencies [0 ].Name )
110+ 		assert .Equal (t , "dep-renamed" , * cp .Metadata .Dependencies [0 ].Package )
85111	})
86112}
0 commit comments