Skip to content

Commit

Permalink
testcase: Adds a new test case for resource alicloud_cen_bandwidth_pa…
Browse files Browse the repository at this point in the history
…ckage
  • Loading branch information
thisnihonglei committed Dec 30, 2021
1 parent 25ad25a commit 5074319
Show file tree
Hide file tree
Showing 3 changed files with 207 additions and 7 deletions.
18 changes: 11 additions & 7 deletions alicloud/resource_alicloud_cen_bandwidth_package.go
Original file line number Diff line number Diff line change
Expand Up @@ -229,13 +229,13 @@ func resourceAlicloudCenBandwidthPackageRead(d *schema.ResourceData, meta interf
d.Set("geographic_region_b_id", convertGeographicRegionBIdResponse(object.GeographicRegionBId))
d.Set("payment_type", convertPaymentTypeResponse(object.BandwidthPackageChargeType))
d.Set("charge_type", convertPaymentTypeResponse(object.BandwidthPackageChargeType))
//if convertPaymentTypeResponse(object.BandwidthPackageChargeType) == "PrePaid" {
// period, err := computePeriodByUnit(object.CreationTime, object.ExpiredTime, d.Get("period").(int), "Month")
// if err != nil {
// return WrapError(err)
// }
// d.Set("period", period)
//}
if convertPaymentTypeResponse(object.BandwidthPackageChargeType) == "PrePaid" {
period, err := computePeriodByUnit(object.CreationTime, object.ExpiredTime, d.Get("period").(int), "Month")
if err != nil {
return WrapError(err)
}
d.Set("period", period)
}
d.Set("expired_time", object.ExpiredTime)
d.Set("status", object.Status)
return nil
Expand Down Expand Up @@ -314,6 +314,10 @@ func resourceAlicloudCenBandwidthPackageUpdate(d *schema.ResourceData, meta inte
return resourceAlicloudCenBandwidthPackageRead(d, meta)
}
func resourceAlicloudCenBandwidthPackageDelete(d *schema.ResourceData, meta interface{}) error {
if d.Get("payment_type").(string) == "PrePaid" {
log.Printf("[WARN] Cannot destroy resource Alicloud Resource Cen BandwidthPackage. Terraform will remove this resource from the state file, however resources may remain.")
return nil
}
client := meta.(*connectivity.AliyunClient)
request := cbn.CreateDeleteCenBandwidthPackageRequest()
request.CenBandwidthPackageId = d.Id()
Expand Down
194 changes: 194 additions & 0 deletions alicloud/resource_alicloud_cen_bandwidth_package_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,200 @@ func TestAccAlicloudCenBandwidthPackage_upgrade(t *testing.T) {
})
}

func TestAccAlicloudCenBandwidthPackage_basic1(t *testing.T) {
var v cbn.CenBandwidthPackage
resourceId := "alicloud_cen_bandwidth_package.default"
ra := resourceAttrInit(resourceId, nil)
rc := resourceCheckInitWithDescribeMethod(resourceId, &v, func() interface{} {
return &CbnService{testAccProvider.Meta().(*connectivity.AliyunClient)}
}, "DescribeCenBandwidthPackage")
rac := resourceAttrCheckInit(rc, ra)
testAccCheck := rac.resourceAttrMapUpdateSet()
rand := acctest.RandIntRange(1000000, 9999999)
name := fmt.Sprintf("tf-testAccCen%sBandwidthPackage-%d", defaultRegionToTest, rand)
testAccConfig := resourceTestAccConfigFunc(resourceId, name, resourceCenBandwidthPackageConfigDependence_upgrade)
resource.Test(t, resource.TestCase{
PreCheck: func() {
testAccPreCheck(t)
testAccPreCheckWithTime(t, []int{1})
},

IDRefreshName: resourceId,
Providers: testAccProviders,
CheckDestroy: nil,
Steps: []resource.TestStep{
{
Config: testAccConfig(map[string]interface{}{
"bandwidth": "5",
"geographic_region_ids": []string{"China", "China"},
"cen_bandwidth_package_name": "${var.name}",
"payment_type": "PrePaid",
"period": "1",
}),
Check: resource.ComposeTestCheckFunc(
testAccCheck(map[string]string{
"bandwidth": "5",
"geographic_region_ids.#": "1",
"cen_bandwidth_package_name": name,
"payment_type": "PrePaid",
"period": "1",
}),
),
},
{
ResourceName: resourceId,
ImportState: true,
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{"period"},
},
},
})
}

func TestAccAlicloudCenBandwidthPackage_basic2(t *testing.T) {
var v cbn.CenBandwidthPackage
resourceId := "alicloud_cen_bandwidth_package.default"
ra := resourceAttrInit(resourceId, nil)
rc := resourceCheckInitWithDescribeMethod(resourceId, &v, func() interface{} {
return &CbnService{testAccProvider.Meta().(*connectivity.AliyunClient)}
}, "DescribeCenBandwidthPackage")
rac := resourceAttrCheckInit(rc, ra)
testAccCheck := rac.resourceAttrMapUpdateSet()
rand := acctest.RandIntRange(1000000, 9999999)
name := fmt.Sprintf("tf-testAccCen%sBandwidthPackage-%d", defaultRegionToTest, rand)
testAccConfig := resourceTestAccConfigFunc(resourceId, name, resourceCenBandwidthPackageConfigDependence_upgrade)
resource.Test(t, resource.TestCase{
PreCheck: func() {
testAccPreCheck(t)
testAccPreCheckWithTime(t, []int{1})
},

IDRefreshName: resourceId,
Providers: testAccProviders,
CheckDestroy: nil,
Steps: []resource.TestStep{
{
Config: testAccConfig(map[string]interface{}{
"bandwidth": "5",
"geographic_region_ids": []string{"China", "China"},
"name": "${var.name}",
"charge_type": "PrePaid",
"period": "1",
}),
Check: resource.ComposeTestCheckFunc(
testAccCheck(map[string]string{
"bandwidth": "5",
"geographic_region_ids.#": "1",
"name": name,
"charge_type": "PrePaid",
"period": "1",
}),
),
},
{
ResourceName: resourceId,
ImportState: true,
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{"period"},
},
},
})
}

func TestAccAlicloudCenBandwidthPackage_basic3(t *testing.T) {
var v cbn.CenBandwidthPackage
resourceId := "alicloud_cen_bandwidth_package.default"
ra := resourceAttrInit(resourceId, nil)
rc := resourceCheckInitWithDescribeMethod(resourceId, &v, func() interface{} {
return &CbnService{testAccProvider.Meta().(*connectivity.AliyunClient)}
}, "DescribeCenBandwidthPackage")
rac := resourceAttrCheckInit(rc, ra)
testAccCheck := rac.resourceAttrMapUpdateSet()
rand := acctest.RandIntRange(1000000, 9999999)
name := fmt.Sprintf("tf-testAccCen%sBandwidthPackage-%d", defaultRegionToTest, rand)
testAccConfig := resourceTestAccConfigFunc(resourceId, name, resourceCenBandwidthPackageConfigDependence_upgrade)
resource.Test(t, resource.TestCase{
PreCheck: func() {
testAccPreCheck(t)
},

IDRefreshName: resourceId,
Providers: testAccProviders,
CheckDestroy: nil,
Steps: []resource.TestStep{
{
Config: testAccConfig(map[string]interface{}{
"bandwidth": "5",
"geographic_region_ids": []string{"China", "China"},
"cen_bandwidth_package_name": "${var.name}",
"payment_type": "PostPaid",
}),
Check: resource.ComposeTestCheckFunc(
testAccCheck(map[string]string{
"bandwidth": "5",
"geographic_region_ids.#": "1",
"cen_bandwidth_package_name": name,
"payment_type": "PostPaid",
}),
),
},
{
ResourceName: resourceId,
ImportState: true,
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{"period"},
},
},
})
}

func TestAccAlicloudCenBandwidthPackage_basic4(t *testing.T) {
var v cbn.CenBandwidthPackage
resourceId := "alicloud_cen_bandwidth_package.default"
ra := resourceAttrInit(resourceId, nil)
rc := resourceCheckInitWithDescribeMethod(resourceId, &v, func() interface{} {
return &CbnService{testAccProvider.Meta().(*connectivity.AliyunClient)}
}, "DescribeCenBandwidthPackage")
rac := resourceAttrCheckInit(rc, ra)
testAccCheck := rac.resourceAttrMapUpdateSet()
rand := acctest.RandIntRange(1000000, 9999999)
name := fmt.Sprintf("tf-testAccCen%sBandwidthPackage-%d", defaultRegionToTest, rand)
testAccConfig := resourceTestAccConfigFunc(resourceId, name, resourceCenBandwidthPackageConfigDependence_upgrade)
resource.Test(t, resource.TestCase{
PreCheck: func() {
testAccPreCheck(t)
},

IDRefreshName: resourceId,
Providers: testAccProviders,
CheckDestroy: nil,
Steps: []resource.TestStep{
{
Config: testAccConfig(map[string]interface{}{
"bandwidth": "5",
"geographic_region_ids": []string{"China", "China"},
"name": "${var.name}",
"charge_type": "PostPaid",
}),
Check: resource.ComposeTestCheckFunc(
testAccCheck(map[string]string{
"bandwidth": "5",
"geographic_region_ids.#": "1",
"name": name,
"charge_type": "PostPaid",
}),
),
},
{
ResourceName: resourceId,
ImportState: true,
ImportStateVerify: true,
ImportStateVerifyIgnore: []string{"period"},
},
},
})
}

var cenBandwidthPackageBasicMap = map[string]string{
"bandwidth": "5",
}
Expand Down
2 changes: 2 additions & 0 deletions website/docs/r/cen_bandwidth_package.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ Provides a CEN bandwidth package resource. The CEN bandwidth package is an abstr

For information about CEN and how to use it, see [Manage bandwidth packages](https://www.alibabacloud.com/help/doc-detail/65982.htm).

-> **NOTE:** `PrePaid` CEN bandwidth package cannot be destroyed and provider will remove it from the state file.

## Example Usage

Basic Usage
Expand Down

0 comments on commit 5074319

Please sign in to comment.