@@ -12,6 +12,7 @@ import (
12
12
. "github.com/onsi/gomega"
13
13
"github.com/sebdah/goldie/v2"
14
14
15
+ "github.com/Azure/azure-service-operator/v2/internal/set"
15
16
"github.com/Azure/azure-service-operator/v2/tools/generator/internal/astmodel"
16
17
"github.com/Azure/azure-service-operator/v2/tools/generator/internal/config"
17
18
"github.com/Azure/azure-service-operator/v2/tools/generator/internal/test"
@@ -95,3 +96,82 @@ func TestGolden_ReportAllResourceVersions(t *testing.T) {
95
96
96
97
gold .Assert (t , t .Name (), []byte (buffer .String ()))
97
98
}
99
+
100
+ func TestResourceVersionsReportGroupInfo_GivenGroup_ReturnsExpectedResult (t * testing.T ) {
101
+ t .Parallel ()
102
+
103
+ storagePkg := test .MakeLocalPackageReference ("storage" , "v20230101" )
104
+
105
+ storageAccount := ResourceVersionsReportResourceItem {
106
+ name : astmodel .MakeInternalTypeName (storagePkg , "StorageAccount" ),
107
+ armType : "Microsoft.Storage/storageAccounts" ,
108
+ armVersion : "2023-01-01" ,
109
+ supportedFrom : "v2.0.0" ,
110
+ }
111
+
112
+ alertsManagementPkg := test .MakeLocalPackageReference ("alertsmanagement" , "v20210401" )
113
+
114
+ smartDetector := ResourceVersionsReportResourceItem {
115
+ name : astmodel .MakeInternalTypeName (alertsManagementPkg , "SmartDetector" ),
116
+ armType : "microsoft.alertsManagement/smartDetectorAlertRules" ,
117
+ armVersion : "2021-04-01" ,
118
+ supportedFrom : "v2.11.0" ,
119
+ }
120
+
121
+ prometheusRuleGroup := ResourceVersionsReportResourceItem {
122
+ name : astmodel .MakeInternalTypeName (alertsManagementPkg , "PrometheusRuleGroup" ),
123
+ armType : "Microsoft.AlertsManagement/prometheusRuleGroups" ,
124
+ }
125
+
126
+ cases := map [string ]struct {
127
+ group string
128
+ items set.Set [ResourceVersionsReportResourceItem ]
129
+ expectedGroup string
130
+ expectedProvider string
131
+ expectedTitle string
132
+ }{
133
+ "StorageAccount" : {
134
+ group : "storage" ,
135
+ items : set .Make (storageAccount ),
136
+ expectedGroup : "storage" ,
137
+ expectedProvider : "Microsoft.Storage" ,
138
+ expectedTitle : "Storage" ,
139
+ },
140
+ "SmartDetector" : {
141
+ group : "alertsmanagement" ,
142
+ items : set .Make (smartDetector ),
143
+ expectedGroup : "alertsmanagement" ,
144
+ expectedProvider : "Microsoft.alertsManagement" ,
145
+ expectedTitle : "AlertsManagement" ,
146
+ },
147
+ "PrometheusRuleGroup" : {
148
+ group : "alertsmanagement" ,
149
+ items : set .Make (prometheusRuleGroup ),
150
+ expectedGroup : "alertsmanagement" ,
151
+ expectedProvider : "Microsoft.AlertsManagement" ,
152
+ expectedTitle : "AlertsManagement" ,
153
+ },
154
+ "Prefers Correct Case" : {
155
+ group : "alertsmanagement" ,
156
+ items : set .Make (smartDetector , prometheusRuleGroup ),
157
+ expectedGroup : "alertsmanagement" ,
158
+ expectedProvider : "Microsoft.AlertsManagement" ,
159
+ expectedTitle : "AlertsManagement" ,
160
+ },
161
+ }
162
+
163
+ for name , c := range cases {
164
+ t .Run (name , func (t * testing.T ) {
165
+ t .Parallel ()
166
+ g := NewGomegaWithT (t )
167
+
168
+ report := & ResourceVersionsReport {} // empty report
169
+
170
+ info := report .groupInfo (c .group , c .items )
171
+ g .Expect (info ).ToNot (BeNil ())
172
+ g .Expect (info .Group ).To (Equal (c .expectedGroup ))
173
+ g .Expect (info .Provider ).To (Equal (c .expectedProvider ))
174
+ g .Expect (info .Title ).To (Equal (c .expectedTitle ))
175
+ })
176
+ }
177
+ }
0 commit comments