github.com/jfrog/jfrog-cli-core/v2@v2.51.0/artifactory/commands/transferfiles/filediff_test.go (about) 1 package transferfiles 2 3 import ( 4 "testing" 5 6 "github.com/jfrog/jfrog-cli-core/v2/artifactory/commands/transferfiles/api" 7 servicesUtils "github.com/jfrog/jfrog-client-go/artifactory/services/utils" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 var convertResultsToFileRepresentationTestCases = []struct { 12 input servicesUtils.ResultItem 13 expectedOutput api.FileRepresentation 14 }{ 15 { 16 servicesUtils.ResultItem{Repo: repo1Key, Path: "path-in-repo", Name: "file-name", Type: "file", Size: 100}, 17 api.FileRepresentation{Repo: repo1Key, Path: "path-in-repo", Name: "file-name", Size: 100}, 18 }, 19 { 20 servicesUtils.ResultItem{Repo: repo1Key, Path: "path-in-repo", Name: "folder-name", Type: "folder"}, 21 api.FileRepresentation{Repo: repo1Key, Path: "path-in-repo/folder-name"}, 22 }, 23 { 24 servicesUtils.ResultItem{Repo: repo1Key, Path: ".", Name: "folder-name", Type: "folder"}, 25 api.FileRepresentation{Repo: repo1Key, Path: "folder-name"}, 26 }, 27 } 28 29 func TestConvertResultsToFileRepresentation(t *testing.T) { 30 for _, testCase := range convertResultsToFileRepresentationTestCases { 31 files := convertResultsToFileRepresentation([]servicesUtils.ResultItem{testCase.input}) 32 assert.Equal(t, []api.FileRepresentation{testCase.expectedOutput}, files) 33 } 34 } 35 36 var generateDiffAqlQueryTestCases = []struct { 37 paginationOffset int 38 disabledDistinctiveAql bool 39 expectedAql string 40 }{ 41 {0, false, "items.find({\"$and\":[{\"modified\":{\"$gte\":\"1\"}},{\"modified\":{\"$lt\":\"2\"}},{\"repo\":\"repo1\",\"type\":\"any\"}]}).include(\"repo\",\"path\",\"name\",\"type\",\"modified\",\"size\").sort({\"$asc\":[\"name\",\"path\"]}).offset(0).limit(10000)"}, 42 {0, true, "items.find({\"$and\":[{\"modified\":{\"$gte\":\"1\"}},{\"modified\":{\"$lt\":\"2\"}},{\"repo\":\"repo1\",\"type\":\"any\"}]}).include(\"repo\",\"path\",\"name\",\"type\",\"modified\",\"size\").sort({\"$asc\":[\"name\",\"path\"]}).offset(0).limit(10000).distinct(false)"}, 43 {2, false, "items.find({\"$and\":[{\"modified\":{\"$gte\":\"1\"}},{\"modified\":{\"$lt\":\"2\"}},{\"repo\":\"repo1\",\"type\":\"any\"}]}).include(\"repo\",\"path\",\"name\",\"type\",\"modified\",\"size\").sort({\"$asc\":[\"name\",\"path\"]}).offset(20000).limit(10000)"}, 44 {2, true, "items.find({\"$and\":[{\"modified\":{\"$gte\":\"1\"}},{\"modified\":{\"$lt\":\"2\"}},{\"repo\":\"repo1\",\"type\":\"any\"}]}).include(\"repo\",\"path\",\"name\",\"type\",\"modified\",\"size\").sort({\"$asc\":[\"name\",\"path\"]}).offset(20000).limit(10000).distinct(false)"}, 45 } 46 47 func TestGenerateDiffAqlQuery(t *testing.T) { 48 for _, testCase := range generateDiffAqlQueryTestCases { 49 t.Run("", func(*testing.T) { 50 results := generateDiffAqlQuery(repo1Key, "1", "2", testCase.paginationOffset, testCase.disabledDistinctiveAql) 51 assert.Equal(t, testCase.expectedAql, results) 52 }) 53 } 54 } 55 56 var generateDockerManifestAqlQueryTestCases = []struct { 57 paginationOffset int 58 disabledDistinctiveAql bool 59 expectedAql string 60 }{ 61 {0, false, "items.find({\"$and\":[{\"repo\":\"repo1\"},{\"modified\":{\"$gte\":\"1\"}},{\"modified\":{\"$lt\":\"2\"}},{\"$or\":[{\"name\":\"manifest.json\"},{\"name\":\"list.manifest.json\"}]}]}).include(\"repo\",\"path\",\"name\",\"type\",\"modified\").sort({\"$asc\":[\"name\",\"path\"]}).offset(0).limit(10000)"}, 62 {0, true, "items.find({\"$and\":[{\"repo\":\"repo1\"},{\"modified\":{\"$gte\":\"1\"}},{\"modified\":{\"$lt\":\"2\"}},{\"$or\":[{\"name\":\"manifest.json\"},{\"name\":\"list.manifest.json\"}]}]}).include(\"repo\",\"path\",\"name\",\"type\",\"modified\").sort({\"$asc\":[\"name\",\"path\"]}).offset(0).limit(10000).distinct(false)"}, 63 {2, false, "items.find({\"$and\":[{\"repo\":\"repo1\"},{\"modified\":{\"$gte\":\"1\"}},{\"modified\":{\"$lt\":\"2\"}},{\"$or\":[{\"name\":\"manifest.json\"},{\"name\":\"list.manifest.json\"}]}]}).include(\"repo\",\"path\",\"name\",\"type\",\"modified\").sort({\"$asc\":[\"name\",\"path\"]}).offset(20000).limit(10000)"}, 64 {2, true, "items.find({\"$and\":[{\"repo\":\"repo1\"},{\"modified\":{\"$gte\":\"1\"}},{\"modified\":{\"$lt\":\"2\"}},{\"$or\":[{\"name\":\"manifest.json\"},{\"name\":\"list.manifest.json\"}]}]}).include(\"repo\",\"path\",\"name\",\"type\",\"modified\").sort({\"$asc\":[\"name\",\"path\"]}).offset(20000).limit(10000).distinct(false)"}, 65 } 66 67 func TestGenerateDockerManifestAqlQuery(t *testing.T) { 68 for _, testCase := range generateDockerManifestAqlQueryTestCases { 69 t.Run("", func(*testing.T) { 70 results := generateDockerManifestAqlQuery(repo1Key, "1", "2", testCase.paginationOffset, testCase.disabledDistinctiveAql) 71 assert.Equal(t, testCase.expectedAql, results) 72 }) 73 } 74 }