github.com/jfrog/jfrog-client-go@v1.40.2/distribution/services/utils/distributionutils_test.go (about)

     1  package utils
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/jfrog/jfrog-client-go/artifactory/services/utils"
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestCreateBundleBody(t *testing.T) {
    11  	releaseBundleParam := ReleaseBundleParams{
    12  		SignImmediately:    true,
    13  		StoringRepository:  "storing-repo",
    14  		Description:        "Release bundle description",
    15  		ReleaseNotes:       "Release notes",
    16  		ReleaseNotesSyntax: Asciidoc,
    17  	}
    18  
    19  	releaseBundleBody, err := CreateBundleBody(releaseBundleParam, true)
    20  	assert.NoError(t, err)
    21  	assert.NotNil(t, releaseBundleBody)
    22  	assert.Equal(t, true, releaseBundleBody.DryRun)
    23  	assert.Equal(t, true, *releaseBundleBody.SignImmediately)
    24  	assert.Equal(t, "storing-repo", releaseBundleBody.StoringRepository)
    25  	assert.Equal(t, "Release bundle description", releaseBundleBody.Description)
    26  	assert.Equal(t, "Release notes", releaseBundleBody.ReleaseNotes.Content)
    27  	assert.Equal(t, Asciidoc, releaseBundleBody.ReleaseNotes.Syntax)
    28  	assert.Len(t, releaseBundleBody.BundleSpec.Queries, 0)
    29  }
    30  
    31  func TestCreateBundleBodyQuery(t *testing.T) {
    32  	targetProps, err := utils.ParseProperties("a=b;c=d;c=e")
    33  	assert.NoError(t, err)
    34  
    35  	releaseBundleParam := ReleaseBundleParams{
    36  		SpecFiles: []*utils.CommonParams{{Pattern: "dist-repo/*", TargetProps: targetProps}},
    37  	}
    38  
    39  	releaseBundleBody, err := CreateBundleBody(releaseBundleParam, true)
    40  	assert.NoError(t, err)
    41  	assert.NotNil(t, releaseBundleBody)
    42  	assert.Len(t, releaseBundleBody.BundleSpec.Queries, 1)
    43  	query := releaseBundleBody.BundleSpec.Queries[0]
    44  	assert.Contains(t, query.Aql, "dist-repo")
    45  	props := query.AddedProps
    46  	assert.Len(t, props, 2)
    47  	for _, prop := range props {
    48  		switch prop.Key {
    49  		case "a":
    50  			assert.Equal(t, []string{"b"}, prop.Values)
    51  		case "c":
    52  			assert.ElementsMatch(t, []string{"d", "e"}, prop.Values)
    53  		default:
    54  			assert.Fail(t, "Unexpected key "+prop.Key)
    55  		}
    56  	}
    57  }