Skip to content

Commit 1b44564

Browse files
authored
fixed resource type validation in ParseResourceType and correlated tests (#25517)
* omit whitespace parts in splitStringAndOmitEmpty; fixed tests for ParseResourceType * updated changelog
1 parent e566eec commit 1b44564

File tree

4 files changed

+12
-2
lines changed

4 files changed

+12
-2
lines changed

sdk/azcore/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
### Bugs Fixed
1212

1313
* Fixed potential panic when decoding base64 strings.
14+
* Fixed an issue in resource identifier parsing which prevented it from returning an error for malformed resource IDs.
1415

1516
### Other Changes
1617

sdk/azcore/arm/internal/resource/resource_identifier.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ func appendNext(parent *ResourceID, parts []string, id string) (*ResourceID, err
217217
func splitStringAndOmitEmpty(v, sep string) []string {
218218
r := make([]string, 0)
219219
for _, s := range strings.Split(v, sep) {
220+
s = strings.TrimSpace(s)
220221
if len(s) == 0 {
221222
continue
222223
}

sdk/azcore/arm/internal/resource/resource_identifier_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,8 @@ func TestParseResourceIdentifier(t *testing.T) {
291291
"/providers": nil,
292292
"": nil,
293293
" ": nil,
294+
"//": nil,
295+
"/ /": nil,
294296
"asdfghj": nil,
295297
"123456": nil,
296298
"!@#$%^&*/": nil,

sdk/azcore/arm/internal/resource/resource_type_test.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,20 @@ func TestParseResourceType(t *testing.T) {
6161
"/": {
6262
err: true,
6363
},
64+
"//": {
65+
err: true,
66+
},
67+
"/ /": {
68+
err: true,
69+
},
6470
}
6571
for input, expected := range resourceTypeData {
6672
resourceType, err := ParseResourceType(input)
6773
if err != nil && !expected.err {
6874
t.Fatalf("unexpected error: %+v", err)
6975
}
70-
if expected.err {
71-
continue
76+
if err == nil && expected.err {
77+
t.Fatalf("expected error for %q, but got result %v", input, resourceType)
7278
}
7379
if resourceType.Namespace != expected.namespace {
7480
t.Fatalf("expecting %s, but got %s", expected.namespace, resourceType.Namespace)

0 commit comments

Comments
 (0)