github.com/jfrog/jfrog-client-go@v1.40.2/tests/artifactoryaql_test.go (about)

     1  package tests
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  	"io"
     7  	"strings"
     8  	"testing"
     9  
    10  	"github.com/jfrog/jfrog-client-go/artifactory/services/utils"
    11  	"github.com/stretchr/testify/assert"
    12  )
    13  
    14  func TestCreateAqlQueryForBuildInfoJson(t *testing.T) {
    15  	initArtifactoryTest(t)
    16  
    17  	// Create a build
    18  	buildName := fmt.Sprintf("%s-%s", "a / \\ | \t * ? : ; \\ / %b", getRunId())
    19  	err := createDummyBuild(buildName)
    20  	assert.NoError(t, err)
    21  
    22  	// Run AQL to get the build from Artifactory
    23  	aqlQuery := utils.CreateAqlQueryForBuildInfoJson("", buildName, buildNumber, buildTimestamp)
    24  	stream, err := testsAqlService.ExecAql(aqlQuery)
    25  	assert.NoError(t, err)
    26  	defer func() {
    27  		assert.NoError(t, stream.Close())
    28  	}()
    29  
    30  	// Parse AQL results
    31  	aqlResults, err := io.ReadAll(stream)
    32  	assert.NoError(t, err)
    33  	parsedResult := new(utils.AqlSearchResult)
    34  	err = json.Unmarshal(aqlResults, parsedResult)
    35  	assert.NoError(t, err)
    36  	assert.Len(t, parsedResult.Results, 1)
    37  
    38  	// Verify build checksum exist
    39  	assert.NotEmpty(t, parsedResult.Results[0].Actual_Sha1)
    40  	assert.NotEmpty(t, parsedResult.Results[0].Actual_Md5)
    41  
    42  	// Delete build
    43  	encodedBuildName := strings.TrimSuffix(parsedResult.Results[0].Path, "-"+buildTimestamp+".json")
    44  	assert.NoError(t, deleteBuild(encodedBuildName))
    45  }