internal/common/testhelper.go (194 lines of code) (raw):

package common import ( "context" "net/http" "time" "github.com/Azure/acr-cli/acr" "github.com/Azure/go-autorest/autorest" ) var ( TestCtx = context.Background() TestLoginURL = "foo.azurecr.io" TestRepo = "bar" TagName = "latest" TagName1 = "jammy" TagName2 = "jammy-20240808" TagName3 = "jammy-20240627.1" TagName4 = "20.04" TagName1FloatingTag = "jammy-patched" TagName2FloatingTag = "jammy-20240808-patched" TagName3FloatingTag = "jammy-20240627.1-patched" TagName4FloatingTag = "20.04-patched" TagName1Incremental1 = "jammy-1" TagName2Incremental1 = "jammy-20240808-1" TagName3Incremental1 = "jammy-20240627.1-1" TagName4Incremental1 = "20.04-1" TagName1Incremental2 = "jammy-2" TagName2Incremental2 = "jammy-20240808-2" TagName3Incremental2 = "jammy-20240627.1-2" TagName4Incremental2 = "20.04-2" RepoName1 = "repo1" RepoName2 = "repo2" RepoName3 = "repo3" RepoName4 = "repo4" deleteEnabled = true lastUpdateTime = time.Now().Add(-15 * time.Minute).UTC().Format(time.RFC3339Nano) writeEnabled = true digest = "sha256:2830cc0fcddc1bc2bd4aeab0ed5ee7087dab29a49e65151c77553e46a7ed5283" //#nosec G101 multiArchDigest = "sha256:d88fb54ba4424dada7c928c6af332ed1c49065ad85eafefb6f26664695015119" //#nosec G101 NotFoundResponse = autorest.Response{ Response: &http.Response{ StatusCode: 404, }, } DeletedResponse = autorest.Response{ Response: &http.Response{ StatusCode: 200, }, } // Response for the GetAcrTags when the repository is not found. NotFoundTagResponse = &acr.RepositoryTagsType{ Response: NotFoundResponse, } // Response for the GetAcrTags when there are no tags on the testRepo. EmptyListTagsResult = &acr.RepositoryTagsType{ Registry: &TestLoginURL, ImageName: &TestRepo, TagsAttributes: nil, } // Response for the GetAcrTags when there is one tag on the testRepo. OneTagResult = &acr.RepositoryTagsType{ Response: autorest.Response{ Response: &http.Response{ StatusCode: 200, }, }, Registry: &TestLoginURL, ImageName: &TestRepo, TagsAttributes: &[]acr.TagAttributesBase{ { Name: &TagName, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, }, } FourTagsResult = &acr.RepositoryTagsType{ Response: autorest.Response{ Response: &http.Response{ StatusCode: 200, }, }, Registry: &TestLoginURL, ImageName: &TestRepo, TagsAttributes: &[]acr.TagAttributesBase{{ Name: &TagName1, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName2, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName3, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &multiArchDigest, }, { Name: &TagName4, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }}, } FourTagsResultWithPatchTags = &acr.RepositoryTagsType{ Response: autorest.Response{ Response: &http.Response{ StatusCode: 200, }, }, Registry: &TestLoginURL, ImageName: &TestRepo, TagsAttributes: &[]acr.TagAttributesBase{{ Name: &TagName1, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName1Incremental1, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName1Incremental2, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName1FloatingTag, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName2, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName2Incremental1, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName2Incremental2, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName2FloatingTag, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName3, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName3Incremental1, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName3Incremental2, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName3FloatingTag, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName4, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName4Incremental1, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName4Incremental2, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }, { Name: &TagName4FloatingTag, LastUpdateTime: &lastUpdateTime, ChangeableAttributes: &acr.ChangeableAttributes{DeleteEnabled: &deleteEnabled, WriteEnabled: &writeEnabled}, Digest: &digest, }}, } )