packer-cn/builder/amazon/common/access_config_test.go

68 lines
1.5 KiB
Go
Raw Normal View History

2013-07-29 19:42:35 -04:00
package common
import (
"testing"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
2013-07-29 19:42:35 -04:00
)
func testAccessConfig() *AccessConfig {
return &AccessConfig{}
}
func TestAccessConfigPrepare_Region(t *testing.T) {
c := testAccessConfig()
2018-09-10 18:43:01 -04:00
mockConn := &mockEC2Client{}
2013-07-29 19:42:35 -04:00
c.RawRegion = "us-east-12"
2018-10-16 18:01:13 -04:00
valid, _ := ValidateRegion(c.RawRegion, mockConn)
2018-09-10 18:43:01 -04:00
if valid {
t.Fatalf("should have region validation err: %s", c.RawRegion)
2013-07-29 19:42:35 -04:00
}
c.RawRegion = "us-east-1"
2018-10-16 18:01:13 -04:00
valid, _ = ValidateRegion(c.RawRegion, mockConn)
2018-09-10 18:43:01 -04:00
if !valid {
t.Fatalf("shouldn't have region validation err: %s", c.RawRegion)
2013-07-29 19:42:35 -04:00
}
c.RawRegion = "custom"
2018-10-16 18:01:13 -04:00
valid, _ = ValidateRegion(c.RawRegion, mockConn)
2018-09-10 18:43:01 -04:00
if valid {
t.Fatalf("should have region validation err: %s", c.RawRegion)
}
c.RawRegion = "custom"
c.SkipValidation = true
2018-09-10 18:43:01 -04:00
// testing whole prepare func here; this is checking that validation is
// skipped, so we don't need a mock connection
if err := c.Prepare(nil); err != nil {
t.Fatalf("shouldn't have err: %s", err)
}
2018-09-10 18:43:01 -04:00
c.SkipValidation = false
c.RawRegion = ""
if err := c.Prepare(nil); err != nil {
t.Fatalf("shouldn't have err: %s", err)
}
2013-07-29 19:42:35 -04:00
}
2018-03-13 23:20:51 -04:00
func TestAccessConfigPrepare_RegionRestricted(t *testing.T) {
c := testAccessConfig()
// Create a Session with a custom region
c.session = session.Must(session.NewSession(&aws.Config{
Region: aws.String("us-gov-west-1"),
}))
if err := c.Prepare(nil); err != nil {
t.Fatalf("shouldn't have err: %s", err)
}
if !c.IsGovCloud() {
t.Fatal("We should be in gov region.")
}
}