From 7a90b91bbea2f642ab02cc301caf85fb4d4f9933 Mon Sep 17 00:00:00 2001 From: SolarFactories Date: Sat, 2 May 2026 20:35:49 +0100 Subject: [PATCH 1/6] Add bindings for license and licenseGroup. Signed-off-by: SolarFactories --- license.go | 187 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 184 insertions(+), 3 deletions(-) diff --git a/license.go b/license.go index 9309dca..6152752 100644 --- a/license.go +++ b/license.go @@ -2,6 +2,7 @@ package dtrack import ( "context" + "fmt" "net/http" "github.com/google/uuid" @@ -21,21 +22,201 @@ type License struct { SeeAlso []string `json:"seeAlso"` } +type LicenseGroup struct { + UUID uuid.UUID `json:"uuid"` + Name string `json:"name"` + Licenses []License `json:"licenses,omitempty"` + RiskWeight int32 `json:"riskWeight,omitempty"` +} + type LicenseService struct { client *Client } -func (l LicenseService) GetAll(ctx context.Context, po PageOptions) (p Page[License], err error) { - req, err := l.client.newRequest(ctx, http.MethodGet, "api/v1/license", withPageOptions(po)) +func (ls LicenseService) GetAll(ctx context.Context, po PageOptions) (p Page[License], err error) { + req, err := ls.client.newRequest(ctx, http.MethodGet, "api/v1/license", withPageOptions(po)) + if err != nil { + return + } + + res, err := ls.client.doRequest(req, &p.Items) + if err != nil { + return + } + + p.TotalCount = res.TotalCount + return +} + +func (ls LicenseService) AddLicenseToGroup(ctx context.Context, groupUUID, licenseUUID uuid.UUID) (lg LicenseGroup, err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodPost, fmt.Sprintf("api/v1/licenseGroup/%s/license/%s", groupUUID, licenseUUID)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, &lg) + return +} + +func (ls LicenseService) RemoveLicenseFromGroup(ctx context.Context, groupUUID, licenseUUID uuid.UUID) (lg LicenseGroup, err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodDelete, fmt.Sprintf("api/v1/licenseGroup/%s/license/%s", groupUUID, licenseUUID)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, &lg) + return +} + +func (ls LicenseService) GetLicenseGroups(ctx context.Context, po PageOptions, so SortOptions) (p Page[LicenseGroup], err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") if err != nil { return } - res, err := l.client.doRequest(req, &p.Items) + req, err := ls.client.newRequest(ctx, http.MethodGet, "api/v1/licenseGroup") if err != nil { return } + res, err := ls.client.doRequest(req, &p.Items) + if err != nil { + return + } + p.TotalCount = res.TotalCount + return +} + +func (ls LicenseService) CreateLicenseGroup(ctx context.Context, group LicenseGroup) (lg LicenseGroup, err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodPut, "api/v1/licenseGroup", withBody(group)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, &lg) + return +} + +func (ls LicenseService) UpdateLicenseGroup(ctx context.Context, group LicenseGroup) (lg LicenseGroup, err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodPost, "api/v1/licenseGroup", withBody(group)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, &lg) + return +} + +func (ls LicenseService) GetLicenseGroup(ctx context.Context, groupUUID uuid.UUID) (lg LicenseGroup, err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodGet, fmt.Sprintf("api/v1/licenseGroup/%s", groupUUID)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, &lg) + return +} + +func (ls LicenseService) DeleteLicenseGroup(ctx context.Context, groupUUID uuid.UUID) (err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodDelete, fmt.Sprintf("api/v1/licenseGroup/%s", groupUUID)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, nil) + return +} + +func (ls LicenseService) Get(ctx context.Context, licenseSPDX string) (l License, err error) { + err = ls.client.assertServerVersionAtLeast("3.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodGet, fmt.Sprintf("api/v1/license/%s", licenseSPDX)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, &l) + return +} + +func (ls LicenseService) Create(ctx context.Context, license License) (l License, err error) { + err = ls.client.assertServerVersionAtLeast("4.7.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodPut, "api/v1/license", withBody(license)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, &l) + return +} + +func (ls LicenseService) Delete(ctx context.Context, licenseSPDX string) (err error) { + err = ls.client.assertServerVersionAtLeast("4.7.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodDelete, fmt.Sprintf("api/v1/license/%s", licenseSPDX)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, nil) + return +} + +func (ls LicenseService) GetConcise(ctx context.Context) (p Page[License], err error) { + err = ls.client.assertServerVersionAtLeast("3.4.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodGet, "api/v1/license/concise") + if err != nil { + return + } + + res, err := ls.client.doRequest(req, &p.Items) + if err != nil { + return + } p.TotalCount = res.TotalCount return } From cca1e8f6f9c15f3b87b847da22395285026158a8 Mon Sep 17 00:00:00 2001 From: SolarFactories Date: Sat, 2 May 2026 20:48:32 +0100 Subject: [PATCH 2/6] Moved LicenseGroup bindings into new LicenseGroupService. Signed-off-by: SolarFactories --- client.go | 2 + license.go | 117 ++---------------------------------------- license_group.go | 129 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 134 insertions(+), 114 deletions(-) create mode 100644 license_group.go diff --git a/client.go b/client.go index 4a75d7b..d1a31bd 100644 --- a/client.go +++ b/client.go @@ -46,6 +46,7 @@ type Client struct { Health HealthService LDAP LDAPService License LicenseService + LicenseGroup LicenseGroupService Metrics MetricsService OIDC OIDCService Permission PermissionService @@ -99,6 +100,7 @@ func NewClient(baseURL string, options ...ClientOption) (*Client, error) { client.Health = HealthService{client: &client} client.LDAP = LDAPService{client: &client} client.License = LicenseService{client: &client} + client.LicenseGroup = LicenseGroupService{client: &client} client.Metrics = MetricsService{client: &client} client.OIDC = OIDCService{client: &client} client.Permission = PermissionService{client: &client} diff --git a/license.go b/license.go index 6152752..296a1d8 100644 --- a/license.go +++ b/license.go @@ -22,69 +22,17 @@ type License struct { SeeAlso []string `json:"seeAlso"` } -type LicenseGroup struct { - UUID uuid.UUID `json:"uuid"` - Name string `json:"name"` - Licenses []License `json:"licenses,omitempty"` - RiskWeight int32 `json:"riskWeight,omitempty"` -} - type LicenseService struct { client *Client } func (ls LicenseService) GetAll(ctx context.Context, po PageOptions) (p Page[License], err error) { - req, err := ls.client.newRequest(ctx, http.MethodGet, "api/v1/license", withPageOptions(po)) - if err != nil { - return - } - - res, err := ls.client.doRequest(req, &p.Items) - if err != nil { - return - } - - p.TotalCount = res.TotalCount - return -} - -func (ls LicenseService) AddLicenseToGroup(ctx context.Context, groupUUID, licenseUUID uuid.UUID) (lg LicenseGroup, err error) { - err = ls.client.assertServerVersionAtLeast("4.0.0") - if err != nil { - return - } - - req, err := ls.client.newRequest(ctx, http.MethodPost, fmt.Sprintf("api/v1/licenseGroup/%s/license/%s", groupUUID, licenseUUID)) - if err != nil { - return - } - - _, err = ls.client.doRequest(req, &lg) - return -} - -func (ls LicenseService) RemoveLicenseFromGroup(ctx context.Context, groupUUID, licenseUUID uuid.UUID) (lg LicenseGroup, err error) { - err = ls.client.assertServerVersionAtLeast("4.0.0") - if err != nil { - return - } - - req, err := ls.client.newRequest(ctx, http.MethodDelete, fmt.Sprintf("api/v1/licenseGroup/%s/license/%s", groupUUID, licenseUUID)) - if err != nil { - return - } - - _, err = ls.client.doRequest(req, &lg) - return -} - -func (ls LicenseService) GetLicenseGroups(ctx context.Context, po PageOptions, so SortOptions) (p Page[LicenseGroup], err error) { - err = ls.client.assertServerVersionAtLeast("4.0.0") + err = ls.client.assertServerVersionAtLeast("3.0.0") if err != nil { return } - req, err := ls.client.newRequest(ctx, http.MethodGet, "api/v1/licenseGroup") + req, err := ls.client.newRequest(ctx, http.MethodGet, "api/v1/license", withPageOptions(po)) if err != nil { return } @@ -93,67 +41,8 @@ func (ls LicenseService) GetLicenseGroups(ctx context.Context, po PageOptions, s if err != nil { return } - p.TotalCount = res.TotalCount - return -} - -func (ls LicenseService) CreateLicenseGroup(ctx context.Context, group LicenseGroup) (lg LicenseGroup, err error) { - err = ls.client.assertServerVersionAtLeast("4.0.0") - if err != nil { - return - } - - req, err := ls.client.newRequest(ctx, http.MethodPut, "api/v1/licenseGroup", withBody(group)) - if err != nil { - return - } - - _, err = ls.client.doRequest(req, &lg) - return -} - -func (ls LicenseService) UpdateLicenseGroup(ctx context.Context, group LicenseGroup) (lg LicenseGroup, err error) { - err = ls.client.assertServerVersionAtLeast("4.0.0") - if err != nil { - return - } - - req, err := ls.client.newRequest(ctx, http.MethodPost, "api/v1/licenseGroup", withBody(group)) - if err != nil { - return - } - - _, err = ls.client.doRequest(req, &lg) - return -} -func (ls LicenseService) GetLicenseGroup(ctx context.Context, groupUUID uuid.UUID) (lg LicenseGroup, err error) { - err = ls.client.assertServerVersionAtLeast("4.0.0") - if err != nil { - return - } - - req, err := ls.client.newRequest(ctx, http.MethodGet, fmt.Sprintf("api/v1/licenseGroup/%s", groupUUID)) - if err != nil { - return - } - - _, err = ls.client.doRequest(req, &lg) - return -} - -func (ls LicenseService) DeleteLicenseGroup(ctx context.Context, groupUUID uuid.UUID) (err error) { - err = ls.client.assertServerVersionAtLeast("4.0.0") - if err != nil { - return - } - - req, err := ls.client.newRequest(ctx, http.MethodDelete, fmt.Sprintf("api/v1/licenseGroup/%s", groupUUID)) - if err != nil { - return - } - - _, err = ls.client.doRequest(req, nil) + p.TotalCount = res.TotalCount return } diff --git a/license_group.go b/license_group.go new file mode 100644 index 0000000..7e6157e --- /dev/null +++ b/license_group.go @@ -0,0 +1,129 @@ +package dtrack + +import ( + "context" + "fmt" + "net/http" + + "github.com/google/uuid" +) + +type LicenseGroup struct { + UUID uuid.UUID `json:"uuid"` + Name string `json:"name"` + Licenses []License `json:"licenses,omitempty"` + RiskWeight int32 `json:"riskWeight,omitempty"` +} + +type LicenseGroupService struct { + client *Client +} + +func (ls LicenseGroupService) AddLicense(ctx context.Context, groupUUID, licenseUUID uuid.UUID) (lg LicenseGroup, err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodPost, fmt.Sprintf("api/v1/licenseGroup/%s/license/%s", groupUUID, licenseUUID)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, &lg) + return +} + +func (ls LicenseGroupService) RemoveLicense(ctx context.Context, groupUUID, licenseUUID uuid.UUID) (lg LicenseGroup, err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodDelete, fmt.Sprintf("api/v1/licenseGroup/%s/license/%s", groupUUID, licenseUUID)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, &lg) + return +} + +func (ls LicenseGroupService) GetAll(ctx context.Context, po PageOptions, so SortOptions) (p Page[LicenseGroup], err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodGet, "api/v1/licenseGroup") + if err != nil { + return + } + + res, err := ls.client.doRequest(req, &p.Items) + if err != nil { + return + } + p.TotalCount = res.TotalCount + return +} + +func (ls LicenseGroupService) Create(ctx context.Context, group LicenseGroup) (lg LicenseGroup, err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodPut, "api/v1/licenseGroup", withBody(group)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, &lg) + return +} + +func (ls LicenseGroupService) Update(ctx context.Context, group LicenseGroup) (lg LicenseGroup, err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodPost, "api/v1/licenseGroup", withBody(group)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, &lg) + return +} + +func (ls LicenseGroupService) Get(ctx context.Context, groupUUID uuid.UUID) (lg LicenseGroup, err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodGet, fmt.Sprintf("api/v1/licenseGroup/%s", groupUUID)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, &lg) + return +} + +func (ls LicenseGroupService) Delete(ctx context.Context, groupUUID uuid.UUID) (err error) { + err = ls.client.assertServerVersionAtLeast("4.0.0") + if err != nil { + return + } + + req, err := ls.client.newRequest(ctx, http.MethodDelete, fmt.Sprintf("api/v1/licenseGroup/%s", groupUUID)) + if err != nil { + return + } + + _, err = ls.client.doRequest(req, nil) + return +} From 528b54786ef1bec38a17a1648deab5957041fe4e Mon Sep 17 00:00:00 2001 From: SolarFactories Date: Sat, 2 May 2026 21:54:39 +0100 Subject: [PATCH 3/6] Added tests for license bindings. Removed paginated response for GetConcise, as the response is not actually paginated, despite what generated docs claim. Signed-off-by: SolarFactories --- license.go | 8 ++---- license_test.go | 76 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 license_test.go diff --git a/license.go b/license.go index 296a1d8..656a138 100644 --- a/license.go +++ b/license.go @@ -91,7 +91,7 @@ func (ls LicenseService) Delete(ctx context.Context, licenseSPDX string) (err er return } -func (ls LicenseService) GetConcise(ctx context.Context) (p Page[License], err error) { +func (ls LicenseService) GetConcise(ctx context.Context) (licenses []License, err error) { err = ls.client.assertServerVersionAtLeast("3.4.0") if err != nil { return @@ -102,10 +102,6 @@ func (ls LicenseService) GetConcise(ctx context.Context) (p Page[License], err e return } - res, err := ls.client.doRequest(req, &p.Items) - if err != nil { - return - } - p.TotalCount = res.TotalCount + _, err = ls.client.doRequest(req, &licenses) return } diff --git a/license_test.go b/license_test.go new file mode 100644 index 0000000..0bb4b4d --- /dev/null +++ b/license_test.go @@ -0,0 +1,76 @@ +package dtrack + +import ( + "context" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestLicenseGetAll(t *testing.T) { + po := PageOptions{ + PageSize: 10, + PageNumber: 1, + } + client := setUpContainer(t, testContainerOptions{}) + + licenses, err := client.License.GetAll(context.Background(), po) + require.NoError(t, err) + require.Equal(t, len(licenses.Items), po.PageSize) + require.NotZero(t, licenses.TotalCount) +} + +func TestLicenseLifecycle(t *testing.T) { + client := setUpContainer(t, testContainerOptions{ + APIPermissions: []string{ + PermissionSystemConfiguration, + }, + }) + licenseSPDX := "DependencyTrack-ClientGo" + // Check absence + { + l, err := client.License.Get(context.Background(), licenseSPDX) + require.Error(t, err) + require.Zero(t, l) + } + // Create + license, err := client.License.Create(context.Background(), License{ + Name: "Client Go Test License", + LicenseID: licenseSPDX, + }) + { + require.NoError(t, err) + require.NotZero(t, license.UUID) + require.Equal(t, license.LicenseID, licenseSPDX) + require.Equal(t, license.Name, "Client Go Test License") + } + // Check presence + { + l, err := client.License.Get(context.Background(), licenseSPDX) + require.NoError(t, err) + require.Equal(t, l, license) + } + // Delete + { + err := client.License.Delete(context.Background(), licenseSPDX) + require.NoError(t, err) + } + // Check absence + { + l, err := client.License.Get(context.Background(), licenseSPDX) + require.Error(t, err) + require.Zero(t, l) + } +} + +func TestLicenseGetConcise(t *testing.T) { + client := setUpContainer(t, testContainerOptions{}) + licenses, err := client.License.GetConcise(context.Background()) + require.NoError(t, err) + require.NotEmpty(t, licenses) + for _, license := range licenses { + require.NotZero(t, license.UUID) + require.NotEmpty(t, license.Name) + require.NotEmpty(t, license.LicenseID) + } +} From aa19d542470ca7e45e6c033245d91e183d3d7164 Mon Sep 17 00:00:00 2001 From: SolarFactories Date: Sat, 2 May 2026 22:54:10 +0100 Subject: [PATCH 4/6] Added tests for license group bindings. Noting that riskWeight cannot be set on custom groups. Signed-off-by: SolarFactories --- license_group_test.go | 150 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 license_group_test.go diff --git a/license_group_test.go b/license_group_test.go new file mode 100644 index 0000000..11313ff --- /dev/null +++ b/license_group_test.go @@ -0,0 +1,150 @@ +package dtrack + +import ( + "context" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestLicenseGroupGetAll(t *testing.T) { + po := PageOptions{ + // DepedencyTrack is preloaded with 4 license groups. This need only be <= the number preloaded in DT. + PageSize: 4, + PageNumber: 1, + } + client := setUpContainer(t, testContainerOptions{}) + + groups, err := client.LicenseGroup.GetAll(context.Background(), po, SortOptions{}) + require.NoError(t, err) + require.Equal(t, len(groups.Items), po.PageSize) + require.NotZero(t, groups.TotalCount) + for _, group := range groups.Items { + require.NotZero(t, group.UUID) + require.NotEmpty(t, group.Name) + require.NotEmpty(t, group.Licenses) + } +} + +func TestLicenseGroupLifecycle(t *testing.T) { + po := PageOptions{ + PageNumber: 1, + PageSize: 10, + } + client := setUpContainer(t, testContainerOptions{ + APIPermissions: []string{ + PermissionPolicyManagement, + }, + }) + // Check absence + { + groups, err := client.LicenseGroup.GetAll(context.Background(), po, SortOptions{}) + require.NoError(t, err) + for _, group := range groups.Items { + require.NotEqual(t, group.Name, "TestLicenseGroupLifecycle") + } + } + // Create + group, err := client.LicenseGroup.Create(context.Background(), LicenseGroup{ + Name: "TestLicenseGroupLifecycle", + }) + { + require.NoError(t, err) + require.NotZero(t, group.UUID) + require.Equal(t, group.Name, "TestLicenseGroupLifecycle") + } + // Check presence + { + newGroup, err := client.LicenseGroup.Get(context.Background(), group.UUID) + require.NoError(t, err) + require.Equal(t, newGroup, group) + } + // Update + { + copyGroup := group + copyGroup.Name = "UpdatedName" + require.NotEqual(t, copyGroup.Name, group.Name) + + newGroup, err := client.LicenseGroup.Update(context.Background(), copyGroup) + require.NoError(t, err) + require.Equal(t, newGroup, copyGroup) + } + // Check update + { + newGroup, err := client.LicenseGroup.Get(context.Background(), group.UUID) + require.NoError(t, err) + require.Equal(t, newGroup.Name, "UpdatedName") + newGroup.Name = group.Name + require.Equal(t, newGroup, group) + } + // Delete + { + err := client.LicenseGroup.Delete(context.Background(), group.UUID) + require.NoError(t, err) + } + // Check absence + { + groups, err := client.LicenseGroup.GetAll(context.Background(), po, SortOptions{}) + require.NoError(t, err) + for _, check := range groups.Items { + require.NotEqual(t, check.UUID, group.UUID) + } + } +} + +func TestLicenseGroupLicense(t *testing.T) { + client := setUpContainer(t, testContainerOptions{ + APIPermissions: []string{ + PermissionSystemConfiguration, + PermissionPolicyManagement, + }, + }) + // Create License, License Group + group, err := client.LicenseGroup.Create(context.Background(), LicenseGroup{ + Name: "TestLicenseGroup", + }) + require.NoError(t, err) + license, err := client.License.Create(context.Background(), License{ + Name: "TestLicense", + LicenseID: "TestLicenseID", + }) + require.NoError(t, err) + // Add license + { + newGroup, err := client.LicenseGroup.AddLicense(context.Background(), group.UUID, license.UUID) + require.NoError(t, err) + require.Equal(t, newGroup.Licenses, []License{license}) + newGroup.Licenses = []License{} + require.Equal(t, newGroup, group) + } + // Check presence in group + { + newGroup, err := client.LicenseGroup.Get(context.Background(), group.UUID) + require.NoError(t, err) + require.Equal(t, newGroup.Licenses, []License{license}) + newGroup.Licenses = []License{} + require.Equal(t, newGroup, group) + } + // Remove license + { + newGroup, err := client.LicenseGroup.RemoveLicense(context.Background(), group.UUID, license.UUID) + require.NoError(t, err) + require.Empty(t, newGroup.Licenses) + require.Equal(t, newGroup, group) + } + // Check empty group + { + newGroup, err := client.LicenseGroup.Get(context.Background(), group.UUID) + require.NoError(t, err) + require.Empty(t, newGroup.Licenses) + require.Equal(t, newGroup, group) + } + // Cleanup + { + err := client.License.Delete(context.Background(), "TestLicenseID") + require.NoError(t, err) + + err = client.LicenseGroup.Delete(context.Background(), group.UUID) + require.NoError(t, err) + } +} From 455dc70a6830dd8de930ea3f1362d6d71ab0c382 Mon Sep 17 00:00:00 2001 From: SolarFactories Date: Sat, 2 May 2026 23:01:01 +0100 Subject: [PATCH 5/6] Minor improvement to testing for License.GetAll, for elements. Signed-off-by: SolarFactories --- license_test.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/license_test.go b/license_test.go index 0bb4b4d..ce698e2 100644 --- a/license_test.go +++ b/license_test.go @@ -18,6 +18,11 @@ func TestLicenseGetAll(t *testing.T) { require.NoError(t, err) require.Equal(t, len(licenses.Items), po.PageSize) require.NotZero(t, licenses.TotalCount) + for _, license := range licenses.Items { + require.NotZero(t, license.UUID) + require.NotEmpty(t, license.Name) + require.NotEmpty(t, license.LicenseID) + } } func TestLicenseLifecycle(t *testing.T) { From b0e1df857ba25651043cd9b2248b853510e86f41 Mon Sep 17 00:00:00 2001 From: SolarFactories Date: Mon, 4 May 2026 14:43:49 +0100 Subject: [PATCH 6/6] Added missing API permission for TestLicenseGroupGetAll. Signed-off-by: SolarFactories --- license_group_test.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/license_group_test.go b/license_group_test.go index 11313ff..3525bb3 100644 --- a/license_group_test.go +++ b/license_group_test.go @@ -13,7 +13,11 @@ func TestLicenseGroupGetAll(t *testing.T) { PageSize: 4, PageNumber: 1, } - client := setUpContainer(t, testContainerOptions{}) + client := setUpContainer(t, testContainerOptions{ + APIPermissions: []string{ + PermissionPolicyManagement, + }, + }) groups, err := client.LicenseGroup.GetAll(context.Background(), po, SortOptions{}) require.NoError(t, err)