Skip to content

Commit 9d73134

Browse files
committed
tests: fix minor issues
1 parent 24f54cd commit 9d73134

5 files changed

+209
-321
lines changed

internal/services/web/app_service_certificate_resource.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package web
55

66
import (
7-
"encoding/base64"
87
"fmt"
98
"time"
109

@@ -172,11 +171,7 @@ func resourceAppServiceCertificateCreate(d *pluginsdk.ResourceData, meta interfa
172171
}
173172

174173
if v := d.Get("pfx_blob").(string); v != "" {
175-
decodedPfxBlob, err := base64.StdEncoding.DecodeString(v)
176-
if err != nil {
177-
return fmt.Errorf("decoding PFX blob: %+v", err)
178-
}
179-
certificate.Properties.PfxBlob = pointer.To(string(decodedPfxBlob))
174+
certificate.Properties.PfxBlob = pointer.To(v)
180175
}
181176

182177
if v := d.Get("key_vault_secret_id").(string); v != "" {
@@ -288,7 +283,7 @@ func resourceAppServiceCertificateRead(d *pluginsdk.ResourceData, meta interface
288283
if err != nil {
289284
return err
290285
}
291-
d.Set("server_farm_id", sfID.ID())
286+
d.Set("app_service_plan_id", sfID.ID())
292287
}
293288
}
294289
}

internal/services/web/app_service_certificate_resource_test.go

Lines changed: 76 additions & 191 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,20 @@ func TestAccAppServiceCertificate_KeyVaultIdVersionless(t *testing.T) {
9494
})
9595
}
9696

97-
// TODO: add test with `app_service_plan_id` set
97+
func TestAccAppServiceCertificate_AppServiceID(t *testing.T) {
98+
data := acceptance.BuildTestData(t, "azurerm_app_service_certificate", "test")
99+
r := AppServiceCertificateResource{}
100+
101+
data.ResourceTest(t, r, []acceptance.TestStep{
102+
{
103+
Config: r.pfxWithServicePlan(data),
104+
Check: acceptance.ComposeTestCheckFunc(
105+
check.That(data.ResourceName).ExistsInAzure(r),
106+
),
107+
},
108+
data.ImportStep("pfx_blob", "password", "app_service_plan_id"),
109+
})
110+
}
98111

99112
func (r AppServiceCertificateResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) {
100113
id, err := certificates.ParseCertificateID(state.ID)
@@ -115,137 +128,78 @@ provider "azurerm" {
115128
features {}
116129
}
117130
118-
resource "azurerm_resource_group" "test" {
119-
name = "acctestwebcert%[1]d"
120-
location = "%[2]s"
121-
}
131+
%[1]s
122132
123133
resource "azurerm_app_service_certificate" "test" {
124-
name = "acctest%[1]d"
134+
name = "acctest%[2]d"
125135
resource_group_name = azurerm_resource_group.test.name
126136
location = azurerm_resource_group.test.location
127137
pfx_blob = filebase64("testdata/app_service_certificate.pfx")
128138
password = "terraform"
129139
}
130-
`, data.RandomInteger, data.Locations.Primary)
140+
`, r.template(data), data.RandomInteger)
131141
}
132142

133-
func (r AppServiceCertificateResource) pfxNoPassword(data acceptance.TestData) string {
143+
func (r AppServiceCertificateResource) pfxWithServicePlan(data acceptance.TestData) string {
134144
return fmt.Sprintf(`
135145
provider "azurerm" {
136146
features {}
137147
}
138148
139-
resource "azurerm_resource_group" "test" {
140-
name = "acctestwebcert%[1]d"
141-
location = "%[2]s"
149+
%[1]s
150+
151+
resource "azurerm_service_plan" "test" {
152+
name = "acctest-SP-%[2]d"
153+
resource_group_name = azurerm_resource_group.test.name
154+
location = azurerm_resource_group.test.location
155+
sku_name = "B1"
156+
os_type = "Linux"
142157
}
143158
159+
144160
resource "azurerm_app_service_certificate" "test" {
145-
name = "acctest%[1]d"
161+
name = "acctest%[2]d"
146162
resource_group_name = azurerm_resource_group.test.name
147163
location = azurerm_resource_group.test.location
148-
pfx_blob = filebase64("testdata/app_service_certificate_nopassword.pfx")
164+
app_service_plan_id = azurerm_service_plan.test.id
165+
pfx_blob = filebase64("testdata/app_service_certificate.pfx")
166+
password = "terraform"
149167
}
150-
`, data.RandomInteger, data.Locations.Primary)
168+
`, r.template(data), data.RandomInteger)
151169
}
152170

153-
func (r AppServiceCertificateResource) keyVault(data acceptance.TestData) string {
171+
func (r AppServiceCertificateResource) pfxNoPassword(data acceptance.TestData) string {
154172
return fmt.Sprintf(`
155173
provider "azurerm" {
156174
features {}
157175
}
158176
159-
provider "azuread" {}
160-
161-
data "azurerm_client_config" "test" {}
177+
%[1]s
162178
163-
data "azuread_service_principal" "test" {
164-
display_name = "Microsoft Azure App Service"
179+
resource "azurerm_app_service_certificate" "test" {
180+
name = "acctest%[2]d"
181+
resource_group_name = azurerm_resource_group.test.name
182+
location = azurerm_resource_group.test.location
183+
pfx_blob = filebase64("testdata/app_service_certificate_nopassword.pfx")
165184
}
166-
167-
resource "azurerm_resource_group" "test" {
168-
name = "acctestwebcert%[1]d"
169-
location = "%[2]s"
185+
`, r.template(data), data.RandomInteger)
170186
}
171187

172-
resource "azurerm_key_vault" "test" {
173-
name = "acctest%[3]s"
174-
location = azurerm_resource_group.test.location
175-
resource_group_name = azurerm_resource_group.test.name
176-
177-
tenant_id = data.azurerm_client_config.test.tenant_id
178-
179-
sku_name = "standard"
180-
181-
access_policy {
182-
tenant_id = data.azurerm_client_config.test.tenant_id
183-
object_id = data.azurerm_client_config.test.object_id
184-
185-
secret_permissions = [
186-
"Delete",
187-
"Get",
188-
"Purge",
189-
"Set",
190-
]
191-
192-
certificate_permissions = [
193-
"Create",
194-
"Delete",
195-
"Get",
196-
"Purge",
197-
"Import",
198-
]
199-
}
200-
201-
access_policy {
202-
tenant_id = data.azurerm_client_config.test.tenant_id
203-
object_id = data.azuread_service_principal.test.object_id
204-
205-
secret_permissions = [
206-
"Get",
207-
]
208-
209-
certificate_permissions = [
210-
"Get",
211-
]
212-
}
188+
func (r AppServiceCertificateResource) keyVault(data acceptance.TestData) string {
189+
return fmt.Sprintf(`
190+
provider "azurerm" {
191+
features {}
213192
}
214193
215-
resource "azurerm_key_vault_certificate" "test" {
216-
name = "acctest%[1]d"
217-
key_vault_id = azurerm_key_vault.test.id
218-
219-
certificate {
220-
contents = filebase64("testdata/app_service_certificate.pfx")
221-
password = "terraform"
222-
}
223-
224-
certificate_policy {
225-
issuer_parameters {
226-
name = "Self"
227-
}
228-
229-
key_properties {
230-
exportable = true
231-
key_size = 2048
232-
key_type = "RSA"
233-
reuse_key = false
234-
}
235-
236-
secret_properties {
237-
content_type = "application/x-pkcs12"
238-
}
239-
}
240-
}
194+
%[1]s
241195
242196
resource "azurerm_app_service_certificate" "test" {
243-
name = "acctest%[1]d"
197+
name = "acctest%[2]d"
244198
resource_group_name = azurerm_resource_group.test.name
245199
location = azurerm_resource_group.test.location
246200
key_vault_secret_id = azurerm_key_vault_certificate.test.id
247201
}
248-
`, data.RandomInteger, data.Locations.Primary, data.RandomString)
202+
`, r.keyVaultTemplate(data), data.RandomInteger)
249203
}
250204

251205
func (r AppServiceCertificateResource) keyVaultId(data acceptance.TestData) string {
@@ -254,97 +208,16 @@ provider "azurerm" {
254208
features {}
255209
}
256210
257-
provider "azuread" {}
258-
259-
data "azurerm_client_config" "test" {}
260-
261-
data "azuread_service_principal" "test" {
262-
display_name = "Microsoft Azure App Service"
263-
}
264-
265-
resource "azurerm_resource_group" "test" {
266-
name = "acctestwebcert%[1]d"
267-
location = "%[2]s"
268-
}
269-
270-
resource "azurerm_key_vault" "test" {
271-
name = "acctest%[3]s"
272-
location = azurerm_resource_group.test.location
273-
resource_group_name = azurerm_resource_group.test.name
274-
275-
tenant_id = data.azurerm_client_config.test.tenant_id
276-
277-
sku_name = "standard"
278-
279-
access_policy {
280-
tenant_id = data.azurerm_client_config.test.tenant_id
281-
object_id = data.azurerm_client_config.test.object_id
282-
283-
secret_permissions = [
284-
"Delete",
285-
"Get",
286-
"Purge",
287-
"Set",
288-
]
289-
290-
certificate_permissions = [
291-
"Create",
292-
"Delete",
293-
"Get",
294-
"Purge",
295-
"Import",
296-
]
297-
}
298-
299-
access_policy {
300-
tenant_id = data.azurerm_client_config.test.tenant_id
301-
object_id = data.azuread_service_principal.test.object_id
302-
303-
secret_permissions = [
304-
"Get",
305-
]
306-
307-
certificate_permissions = [
308-
"Get",
309-
]
310-
}
311-
}
312-
313-
resource "azurerm_key_vault_certificate" "test" {
314-
name = "acctest%[1]d"
315-
key_vault_id = azurerm_key_vault.test.id
316-
317-
certificate {
318-
contents = filebase64("testdata/app_service_certificate.pfx")
319-
password = "terraform"
320-
}
321-
322-
certificate_policy {
323-
issuer_parameters {
324-
name = "Self"
325-
}
326-
327-
key_properties {
328-
exportable = true
329-
key_size = 2048
330-
key_type = "RSA"
331-
reuse_key = false
332-
}
333-
334-
secret_properties {
335-
content_type = "application/x-pkcs12"
336-
}
337-
}
338-
}
211+
%[1]s
339212
340213
resource "azurerm_app_service_certificate" "test" {
341-
name = "acctest%[1]d"
214+
name = "acctest%[2]d"
342215
resource_group_name = azurerm_resource_group.test.name
343216
location = azurerm_resource_group.test.location
344217
key_vault_id = azurerm_key_vault.test.id
345218
key_vault_secret_id = azurerm_key_vault_certificate.test.id
346219
}
347-
`, data.RandomInteger, data.Locations.Primary, data.RandomString)
220+
`, r.keyVaultTemplate(data), data.RandomInteger)
348221
}
349222

350223
func (r AppServiceCertificateResource) keyVaultIdVersionless(data acceptance.TestData) string {
@@ -353,21 +226,32 @@ provider "azurerm" {
353226
features {}
354227
}
355228
229+
%[1]s
230+
231+
resource "azurerm_app_service_certificate" "test" {
232+
name = "acctest%[2]d"
233+
resource_group_name = azurerm_resource_group.test.name
234+
location = azurerm_resource_group.test.location
235+
key_vault_id = azurerm_key_vault.test.id
236+
key_vault_secret_id = azurerm_key_vault_certificate.test.versionless_secret_id
237+
}
238+
`, r.keyVaultTemplate(data), data.RandomInteger)
239+
}
240+
241+
func (r AppServiceCertificateResource) keyVaultTemplate(data acceptance.TestData) string {
242+
return fmt.Sprintf(`
356243
provider "azuread" {}
357244
245+
%[1]s
246+
358247
data "azurerm_client_config" "test" {}
359248
360249
data "azuread_service_principal" "test" {
361250
display_name = "Microsoft Azure App Service"
362251
}
363252
364-
resource "azurerm_resource_group" "test" {
365-
name = "acctestwebcert%[1]d"
366-
location = "%[2]s"
367-
}
368-
369253
resource "azurerm_key_vault" "test" {
370-
name = "acctest%[3]s"
254+
name = "acctest%[2]s"
371255
location = azurerm_resource_group.test.location
372256
resource_group_name = azurerm_resource_group.test.name
373257
@@ -410,7 +294,7 @@ resource "azurerm_key_vault" "test" {
410294
}
411295
412296
resource "azurerm_key_vault_certificate" "test" {
413-
name = "acctest%[1]d"
297+
name = "acctest%[3]d"
414298
key_vault_id = azurerm_key_vault.test.id
415299
416300
certificate {
@@ -435,13 +319,14 @@ resource "azurerm_key_vault_certificate" "test" {
435319
}
436320
}
437321
}
322+
`, r.template(data), data.RandomString, data.RandomInteger)
323+
}
438324

439-
resource "azurerm_app_service_certificate" "test" {
440-
name = "acctest%[1]d"
441-
resource_group_name = azurerm_resource_group.test.name
442-
location = azurerm_resource_group.test.location
443-
key_vault_id = azurerm_key_vault.test.id
444-
key_vault_secret_id = azurerm_key_vault_certificate.test.versionless_secret_id
325+
func (r AppServiceCertificateResource) template(data acceptance.TestData) string {
326+
return fmt.Sprintf(`
327+
resource "azurerm_resource_group" "test" {
328+
name = "acctestwebcert%[1]d"
329+
location = "%[2]s"
445330
}
446-
`, data.RandomInteger, data.Locations.Primary, data.RandomString)
331+
`, data.RandomInteger, data.Locations.Primary)
447332
}

0 commit comments

Comments
 (0)