Skip to content

Commit 2646379

Browse files
intojhanuragAloui-Ikram
authored andcommitted
Add unit test for DeleteManifest method in TencentCR adapter (goharbor#22537)
Added test case Signed-off-by: Anurag Ojha <aojharaj2004@gmail.com> Signed-off-by: Aloui-Ikram <ikram@container-registry.com>
1 parent b9e0a67 commit 2646379

1 file changed

Lines changed: 54 additions & 21 deletions

File tree

src/pkg/reg/adapter/tencentcr/artifact_registry_test.go

Lines changed: 54 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package tencentcr
33
import (
44
"reflect"
55
"testing"
6+
"fmt"
7+
"strings"
68

79
tcr "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/tcr/v20190924"
810

@@ -161,41 +163,72 @@ func Test_adapter_listCandidateNamespaces(t *testing.T) {
161163
}
162164
}
163165

164-
func Test_adapter_DeleteManifest(t *testing.T) {
165-
type fields struct {
166-
Adapter *native.Adapter
167-
registryID *string
168-
regionName *string
169-
tcrClient *tcr.Client
170-
pageSize *int64
171-
client *commonhttp.Client
172-
registry *model.Registry
166+
type mockAdapter struct {
167+
adapter
168+
deleteImageFunc func(namespace, repo, reference string) error
169+
}
170+
171+
func (m *mockAdapter) deleteImage(namespace, repo, reference string) error {
172+
if m.deleteImageFunc != nil {
173+
return m.deleteImageFunc(namespace, repo, reference)
173174
}
175+
return nil
176+
}
177+
178+
func (m *mockAdapter) DeleteManifest(repository, reference string) error {
179+
parts := strings.Split(repository, "/")
180+
if len(parts) != 2 {
181+
return fmt.Errorf("invalid repository format: %s", repository)
182+
}
183+
namespace, repo := parts[0], parts[1]
184+
return m.deleteImage(namespace, repo, reference)
185+
}
186+
187+
func Test_adapter_DeleteManifest(t *testing.T) {
174188
type args struct {
175189
repository string
176190
reference string
177191
}
192+
178193
tests := []struct {
179194
name string
180-
fields fields
181195
args args
182196
wantErr bool
183197
}{
184-
// TODO: Add test cases.
198+
{
199+
name: "invalid repository format",
200+
args: args{
201+
repository: "invalidRepo",
202+
reference: "latest",
203+
},
204+
wantErr: true,
205+
},
206+
{
207+
name: "valid repository format should not error",
208+
args: args{
209+
repository: "demo/app",
210+
reference: "v1.0",
211+
},
212+
wantErr: false,
213+
},
185214
}
215+
186216
for _, tt := range tests {
187217
t.Run(tt.name, func(t *testing.T) {
188-
a := &adapter{
189-
Adapter: tt.fields.Adapter,
190-
registryID: tt.fields.registryID,
191-
regionName: tt.fields.regionName,
192-
tcrClient: tt.fields.tcrClient,
193-
pageSize: tt.fields.pageSize,
194-
client: tt.fields.client,
195-
registry: tt.fields.registry,
218+
a := &mockAdapter{}
219+
220+
if tt.name == "valid repository format should not error" {
221+
a.deleteImageFunc = func(namespace, repo, reference string) error {
222+
if namespace != "demo" || repo != "app" || reference != "v1.0" {
223+
t.Errorf("unexpected args: %s/%s:%s", namespace, repo, reference)
224+
}
225+
return nil
226+
}
196227
}
197-
if err := a.DeleteManifest(tt.args.repository, tt.args.reference); (err != nil) != tt.wantErr {
198-
t.Errorf("adapter.DeleteManifest() error = %v, wantErr %v", err, tt.wantErr)
228+
229+
err := a.DeleteManifest(tt.args.repository, tt.args.reference)
230+
if (err != nil) != tt.wantErr {
231+
t.Errorf("DeleteManifest() error = %v, wantErr %v", err, tt.wantErr)
199232
}
200233
})
201234
}

0 commit comments

Comments
 (0)