67 lines
1.5 KiB
Go
67 lines
1.5 KiB
Go
package common
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/outscale/osc-go/oapi"
|
|
)
|
|
|
|
type mockOAPIClient struct {
|
|
oapi.OAPIClient
|
|
}
|
|
|
|
func testAccessConfig() *AccessConfig {
|
|
return &AccessConfig{
|
|
getOAPIConnection: func() oapi.OAPIClient {
|
|
return &mockOAPIClient{}
|
|
},
|
|
}
|
|
}
|
|
|
|
func (m *mockOAPIClient) POST_ReadRegions(oapi.ReadRegionsRequest) (*oapi.POST_ReadRegionsResponses, error) {
|
|
return &oapi.POST_ReadRegionsResponses{
|
|
OK: &oapi.ReadRegionsResponse{
|
|
Regions: []oapi.Region{
|
|
{RegionEndpoint: "us-west1", RegionName: "us-west1"},
|
|
{RegionEndpoint: "us-east-1", RegionName: "us-east-1"},
|
|
},
|
|
},
|
|
}, nil
|
|
}
|
|
|
|
func TestAccessConfigPrepare_Region(t *testing.T) {
|
|
c := testAccessConfig()
|
|
|
|
c.RawRegion = "us-east-12"
|
|
err := c.ValidateRegion(c.RawRegion)
|
|
if err == nil {
|
|
t.Fatalf("should have region validation err: %s", c.RawRegion)
|
|
}
|
|
|
|
c.RawRegion = "us-east-1"
|
|
err = c.ValidateRegion(c.RawRegion)
|
|
if err != nil {
|
|
t.Fatalf("shouldn't have region validation err: %s", c.RawRegion)
|
|
}
|
|
|
|
c.RawRegion = "custom"
|
|
err = c.ValidateRegion(c.RawRegion)
|
|
if err == nil {
|
|
t.Fatalf("should have region validation err: %s", c.RawRegion)
|
|
}
|
|
|
|
c.RawRegion = "custom"
|
|
c.SkipValidation = true
|
|
// 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)
|
|
}
|
|
|
|
c.SkipValidation = false
|
|
c.RawRegion = ""
|
|
if err := c.Prepare(nil); err != nil {
|
|
t.Fatalf("shouldn't have err: %s", err)
|
|
}
|
|
}
|