mirror of https://github.com/docker/compose.git
Introduce test to check CloudFormation conversion
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
parent
c0f1a8bf18
commit
e88b11bc26
|
@ -4,6 +4,12 @@ import (
|
|||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/awslabs/goformation/v4/cloudformation/ec2"
|
||||
|
||||
"github.com/awslabs/goformation/v4/cloudformation"
|
||||
"github.com/compose-spec/compose-go/loader"
|
||||
"github.com/compose-spec/compose-go/types"
|
||||
|
||||
"gotest.tools/assert"
|
||||
|
||||
"github.com/docker/ecs-plugin/pkg/compose"
|
||||
|
@ -24,6 +30,27 @@ func TestSimpleWithOverrides(t *testing.T) {
|
|||
golden.Assert(t, result, expected)
|
||||
}
|
||||
|
||||
func TestMapNetworksToSecurityGroups(t *testing.T) {
|
||||
template := convertYaml(t, `
|
||||
version: "3"
|
||||
services:
|
||||
test:
|
||||
image: hello_world
|
||||
networks:
|
||||
front-tier:
|
||||
name: public
|
||||
back-tier:
|
||||
internal: true
|
||||
`)
|
||||
assert.Check(t, template.Resources["TestPublicNetwork"] != nil)
|
||||
assert.Check(t, template.Resources["TestBacktierNetwork"] != nil)
|
||||
assert.Check(t, template.Resources["TestBacktierNetworkIngress"] != nil)
|
||||
ingress := template.Resources["TestPublicNetworkIngress"].(*ec2.SecurityGroupIngress)
|
||||
assert.Check(t, ingress != nil)
|
||||
assert.Check(t, ingress.SourceSecurityGroupId == cloudformation.Ref("TestPublicNetwork"))
|
||||
|
||||
}
|
||||
|
||||
func convertResultAsString(t *testing.T, project *compose.Project, clusterName string) string {
|
||||
client, err := NewClient("", clusterName, "")
|
||||
assert.NilError(t, err)
|
||||
|
@ -43,3 +70,22 @@ func load(t *testing.T, paths ...string) *compose.Project {
|
|||
assert.NilError(t, err)
|
||||
return project
|
||||
}
|
||||
|
||||
func convertYaml(t *testing.T, yaml string) *cloudformation.Template {
|
||||
dict, err := loader.ParseYAML([]byte(yaml))
|
||||
assert.NilError(t, err)
|
||||
model, err := loader.Load(types.ConfigDetails{
|
||||
ConfigFiles: []types.ConfigFile{
|
||||
{Config: dict},
|
||||
},
|
||||
})
|
||||
assert.NilError(t, err)
|
||||
err = compose.Normalize(model)
|
||||
assert.NilError(t, err)
|
||||
template, err := client{}.Convert(&compose.Project{
|
||||
Config: *model,
|
||||
Name: "test",
|
||||
})
|
||||
assert.NilError(t, err)
|
||||
return template
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue