@@ -39,7 +39,7 @@ func TestAzureRepos_ListRepositories(t *testing.T) {
39
39
jsonRes , err := json .Marshal (res )
40
40
assert .NoError (t , err )
41
41
ctx := context .Background ()
42
- client , cleanUp := createServerAndClient (t , vcsutils .AzureRepos , true , jsonRes , "listRepositories " , createAzureReposHandler )
42
+ client , cleanUp := createServerAndClient (t , vcsutils .AzureRepos , true , jsonRes , "getRepository " , createAzureReposHandler )
43
43
defer cleanUp ()
44
44
reposMap , err := client .ListRepositories (ctx )
45
45
assert .NoError (t , err )
@@ -92,7 +92,7 @@ func TestAzureRepos_TestDownloadRepository(t *testing.T) {
92
92
repo1 ,
93
93
branch1 )
94
94
client , cleanUp := createServerAndClient (t , vcsutils .AzureRepos , true ,
95
- repoFile , downloadURL , createAzureReposHandler )
95
+ repoFile , downloadURL , createGetRepositoryAzureReposHandler )
96
96
defer cleanUp ()
97
97
err = client .DownloadRepository (ctx , "" , repo1 , branch1 , dir )
98
98
assert .NoError (t , err )
@@ -449,11 +449,11 @@ func TestAzureReposClient_CreateLabel(t *testing.T) {
449
449
assert .Error (t , client .CreateLabel (ctx , owner , repo1 , LabelInfo {}))
450
450
}
451
451
452
- func TestAzureReposClient_GetRepositoryInfo (t * testing.T ) {
452
+ func TestAzureReposClient_GetRepositoryEnvironmentInfo (t * testing.T ) {
453
453
ctx := context .Background ()
454
454
client , cleanUp := createServerAndClient (t , vcsutils .AzureRepos , true , "" , "unsupportedTest" , createAzureReposHandler )
455
455
defer cleanUp ()
456
- _ , err := client .GetRepositoryInfo (ctx , owner , repo1 )
456
+ _ , err := client .GetRepositoryEnvironmentInfo (ctx , owner , repo1 , "" )
457
457
assert .Error (t , err )
458
458
}
459
459
@@ -547,19 +547,22 @@ func TestAzureReposClient_SetCommitStatus(t *testing.T) {
547
547
assert .Error (t , err )
548
548
}
549
549
550
- func TestAzureReposClient_GetLabel (t * testing.T ) {
550
+ func TestAzureReposClient_GetRepositoryInfo (t * testing.T ) {
551
551
ctx := context .Background ()
552
- client , cleanUp := createServerAndClient (t , vcsutils .AzureRepos , true , "" , "unsupportedTest " , createAzureReposHandler )
552
+ client , cleanUp := createServerAndClient (t , vcsutils .AzureRepos , true , "" , "/_apis/ResourceAreas/getRepository " , createGetRepositoryAzureReposHandler )
553
553
defer cleanUp ()
554
- _ , err := client .GetLabel (ctx , owner , repo1 , "" )
555
- assert .Error (t , err )
554
+ repositoryInfo , err := client .GetRepositoryInfo (ctx , "jfrog" , "froggit-go" )
555
+ assert .NoError (t , err )
556
+ assert .Equal (t , "https://jfrog@dev.azure.com/jfrog/froggit-go/_git/froggit-go" , repositoryInfo .CloneInfo .HTTP )
557
+ assert .Equal (t , "git@ssh.dev.azure.com:v3/jfrog/froggit-go/froggit-go" , repositoryInfo .CloneInfo .SSH )
558
+ assert .Equal (t , repositoryInfo .RepositoryVisibility , Public )
556
559
}
557
560
558
- func TestAzureReposClient_GetRepositoryEnvironmentInfo (t * testing.T ) {
561
+ func TestAzureReposClient_GetLabel (t * testing.T ) {
559
562
ctx := context .Background ()
560
563
client , cleanUp := createServerAndClient (t , vcsutils .AzureRepos , true , "" , "unsupportedTest" , createAzureReposHandler )
561
564
defer cleanUp ()
562
- _ , err := client .GetRepositoryEnvironmentInfo (ctx , owner , repo1 , envName )
565
+ _ , err := client .GetLabel (ctx , owner , repo1 , "" )
563
566
assert .Error (t , err )
564
567
}
565
568
@@ -695,13 +698,14 @@ func createAzureReposHandler(t *testing.T, expectedURI string, response []byte,
695
698
return func (w http.ResponseWriter , r * http.Request ) {
696
699
base64Token := base64 .StdEncoding .EncodeToString ([]byte (":" + token ))
697
700
assert .Equal (t , "Basic " + base64Token , r .Header .Get ("Authorization" ))
698
- if r .RequestURI == "/_apis" {
701
+ switch r .RequestURI {
702
+ case "/_apis" :
699
703
jsonVal , err := os .ReadFile (filepath .Join ("./" , "testdata" , "azurerepos" , "resourcesResponse.json" ))
700
704
assert .NoError (t , err )
701
705
_ , err = w .Write (jsonVal )
702
706
assert .NoError (t , err )
703
707
return
704
- } else if r . RequestURI == "/_apis/ResourceAreas" {
708
+ case "/_apis/ResourceAreas" :
705
709
jsonVal := `{"value": [],"count": 0}`
706
710
_ , err := w .Write ([]byte (jsonVal ))
707
711
assert .NoError (t , err )
@@ -719,6 +723,39 @@ func createAzureReposHandler(t *testing.T, expectedURI string, response []byte,
719
723
}
720
724
}
721
725
726
+ func createGetRepositoryAzureReposHandler (t * testing.T , expectedURI string , response []byte , expectedStatusCode int ) http.HandlerFunc {
727
+ return func (w http.ResponseWriter , r * http.Request ) {
728
+ base64Token := base64 .StdEncoding .EncodeToString ([]byte (":" + token ))
729
+ assert .Equal (t , "Basic " + base64Token , r .Header .Get ("Authorization" ))
730
+ switch r .RequestURI {
731
+ case "/_apis" :
732
+ jsonVal , err := os .ReadFile (filepath .Join ("./" , "testdata" , "azurerepos" , "resourcesResponse.json" ))
733
+ assert .NoError (t , err )
734
+ _ , err = w .Write (jsonVal )
735
+ assert .NoError (t , err )
736
+ return
737
+ case "/_apis/ResourceAreas" :
738
+ jsonVal := `{"value": [],"count": 0}`
739
+ _ , err := w .Write ([]byte (jsonVal ))
740
+ assert .NoError (t , err )
741
+ return
742
+ case "/_apis/ResourceAreas/getRepository" :
743
+ jsonVal := `{"id":"23d122fb-c6c1-4f03-8117-a10a08f8b0d6","name":"froggit-go","url":"https://dev.azure.com/jfrog/638e3921-f5e3-46e6-a11f-a139cb9bd511/_apis/git/repositories/23d122fb-c6c1-4f03-8117-a10a08f8b0d6","project":{"id":"638e3921-f5e3-46e6-a11f-a139cb9bd511","name":"froggit-go","visibility":"public"},"defaultBranch":"refs/heads/main","remoteUrl":"https://jfrog@dev.azure.com/jfrog/froggit-go/_git/froggit-go","sshUrl":"git@ssh.dev.azure.com:v3/jfrog/froggit-go/froggit-go","isDisabled":false,"isInMaintenance":false}`
744
+ _ , err := w .Write ([]byte (jsonVal ))
745
+ assert .NoError (t , err )
746
+ return
747
+ }
748
+
749
+ if ! strings .Contains (expectedURI , "bad^endpoint" ) {
750
+ assert .Contains (t , r .RequestURI , expectedURI )
751
+ w .WriteHeader (expectedStatusCode )
752
+ _ , err := w .Write (response )
753
+ assert .NoError (t , err )
754
+ return
755
+ }
756
+ w .WriteHeader (http .StatusNotFound )
757
+ }
758
+ }
722
759
func createBadAzureReposClient (t * testing.T , response []byte ) (VcsClient , func ()) {
723
760
client , cleanUp := createServerAndClient (
724
761
t ,
@@ -732,23 +769,3 @@ func createBadAzureReposClient(t *testing.T, response []byte) (VcsClient, func()
732
769
createAzureReposHandler )
733
770
return client , cleanUp
734
771
}
735
-
736
- func TestAzureReposClient_GetGitRemoteUrl (t * testing.T ) {
737
- testCase := struct {
738
- name string
739
- apiEndpoint string
740
- owner string
741
- repo string
742
- expectedResult string
743
- }{
744
- name : "Azure Repos Cloud" ,
745
- apiEndpoint : "https://dev.azure.com/my-org" ,
746
- owner : "my-org" ,
747
- repo : "my-repo" ,
748
- expectedResult : "https://my-org@dev.azure.com/my-org/project/_git/my-repo" ,
749
- }
750
- info := VcsInfo {APIEndpoint : testCase .apiEndpoint , Project : "project" }
751
- client , err := NewAzureReposClient (info , nil )
752
- assert .NoError (t , err )
753
- assert .Equal (t , testCase .expectedResult , client .GetGitRemoteURL (testCase .owner , testCase .repo ))
754
- }
0 commit comments