github.com/jfrog/jfrog-client-go@v1.40.2/tests/artifactoryfederation_test.go (about) 1 package tests 2 3 import ( 4 "github.com/jfrog/gofrog/version" 5 "github.com/jfrog/jfrog-client-go/utils" 6 "testing" 7 8 "github.com/jfrog/jfrog-client-go/artifactory/services" 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestArtifactoryFederation(t *testing.T) { 13 initRepositoryTest(t) 14 rtVersion, err := GetRtDetails().GetVersion() 15 if err != nil { 16 t.Error(err) 17 } 18 if !version.NewVersion(rtVersion).AtLeast("7.18.3") { 19 t.Skip("Skipping artifactory test. Federated repositories are only supported by Artifactory 7.18.3 or higher.") 20 } 21 t.Run("localConvertLocalToFederatedTest", localConvertLocalToFederatedTest) 22 t.Run("localConvertNonExistentLocalToFederatedTest", localConvertNonExistentLocalToFederatedTest) 23 t.Run("localTriggerFederatedFullSyncAllTest", localTriggerFederatedFullSyncAllTest) 24 t.Run("localTriggerFederatedFullSyncMirrorTest", localTriggerFederatedFullSyncMirrorTest) 25 } 26 27 func localConvertLocalToFederatedTest(t *testing.T) { 28 repoKey := GenerateRepoKeyForRepoServiceTest() 29 glp := services.NewGenericLocalRepositoryParams() 30 glp.Key = repoKey 31 glp.RepoLayoutRef = "simple-default" 32 glp.Description = "Generic Repo for jfrog-client-go federation-test" 33 glp.XrayIndex = utils.Pointer(true) 34 glp.DownloadRedirect = utils.Pointer(false) 35 glp.ArchiveBrowsingEnabled = utils.Pointer(false) 36 37 err := testsCreateLocalRepositoryService.Generic(glp) 38 if !assert.NoError(t, err, "Failed to create "+repoKey) { 39 return 40 } 41 defer deleteRepo(t, repoKey) 42 43 err = testsFederationService.ConvertLocalToFederated(repoKey) 44 assert.NoError(t, err, "Failed to convert "+repoKey) 45 } 46 47 func localConvertNonExistentLocalToFederatedTest(t *testing.T) { 48 repoKey := GenerateRepoKeyForRepoServiceTest() 49 err := testsFederationService.ConvertLocalToFederated(repoKey) 50 assert.Error(t, err, "Failed to not convert "+repoKey) 51 } 52 53 func localTriggerFederatedFullSyncAllTest(t *testing.T) { 54 repoKey := GenerateRepoKeyForRepoServiceTest() 55 gfp := services.NewGenericFederatedRepositoryParams() 56 gfp.Key = repoKey 57 setFederatedRepositoryBaseParams(&gfp.FederatedRepositoryBaseParams, false) 58 59 err := testsCreateFederatedRepositoryService.Generic(gfp) 60 if !assert.NoError(t, err, "Failed to create "+repoKey) { 61 return 62 } 63 defer deleteRepo(t, repoKey) 64 validateRepoConfig(t, repoKey, gfp) 65 66 err = testsFederationService.TriggerFederatedFullSyncAll(repoKey) 67 assert.NoError(t, err, "Failed to trigger full synchonisation "+repoKey) 68 } 69 70 func localTriggerFederatedFullSyncMirrorTest(t *testing.T) { 71 repoKey := GenerateRepoKeyForRepoServiceTest() 72 gfp := services.NewGenericFederatedRepositoryParams() 73 gfp.Key = repoKey 74 setFederatedRepositoryBaseParams(&gfp.FederatedRepositoryBaseParams, false) 75 76 err := testsCreateFederatedRepositoryService.Generic(gfp) 77 if !assert.NoError(t, err, "Failed to create "+repoKey) { 78 return 79 } 80 defer deleteRepo(t, repoKey) 81 validateRepoConfig(t, repoKey, gfp) 82 83 mirror := gfp.Members[0].Url 84 err = testsFederationService.TriggerFederatedFullSyncMirror(repoKey, mirror) 85 assert.NoError(t, err, "Failed to trigger synchonisation "+repoKey+" for "+mirror) 86 }