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  }