github.com/openshift/source-to-image@v1.4.1-0.20240516041539-bf52fc02204e/pkg/api/validation/validation_test.go (about) 1 package validation 2 3 import ( 4 "reflect" 5 "testing" 6 7 "github.com/openshift/source-to-image/pkg/api" 8 "github.com/openshift/source-to-image/pkg/scm/git" 9 ) 10 11 func TestValidation(t *testing.T) { 12 testCases := []struct { 13 value *api.Config 14 expected []Error 15 }{ 16 { 17 &api.Config{ 18 Source: git.MustParse("http://github.com/openshift/source"), 19 BuilderImage: "openshift/builder", 20 DockerConfig: &api.DockerConfig{Endpoint: "/var/run/docker.socket"}, 21 BuilderPullPolicy: api.DefaultBuilderPullPolicy, 22 }, 23 []Error{}, 24 }, 25 { 26 &api.Config{ 27 Source: git.MustParse("http://github.com/openshift/source"), 28 BuilderImage: "openshift/builder", 29 DockerConfig: &api.DockerConfig{Endpoint: "/var/run/docker.socket"}, 30 DockerNetworkMode: "foobar", 31 BuilderPullPolicy: api.DefaultBuilderPullPolicy, 32 }, 33 []Error{{Type: ErrorInvalidValue, Field: "dockerNetworkMode"}}, 34 }, 35 { 36 &api.Config{ 37 Source: git.MustParse("http://github.com/openshift/source"), 38 BuilderImage: "openshift/builder", 39 DockerConfig: &api.DockerConfig{Endpoint: "/var/run/docker.socket"}, 40 DockerNetworkMode: api.NewDockerNetworkModeContainer("8d873e496bc3e80a1cb22e67f7de7be5b0633e27916b1144978d1419c0abfcdb"), 41 BuilderPullPolicy: api.DefaultBuilderPullPolicy, 42 }, 43 []Error{}, 44 }, 45 { 46 &api.Config{ 47 Source: nil, 48 BuilderImage: "openshift/builder", 49 DockerConfig: &api.DockerConfig{Endpoint: "/var/run/docker.socket"}, 50 DockerNetworkMode: api.NewDockerNetworkModeContainer("8d873e496bc3e80a1cb22e67f7de7be5b0633e27916b1144978d1419c0abfcdb"), 51 BuilderPullPolicy: api.DefaultBuilderPullPolicy, 52 }, 53 []Error{}, 54 }, 55 { 56 &api.Config{ 57 Source: git.MustParse("http://github.com/openshift/source"), 58 BuilderImage: "openshift/builder", 59 DockerConfig: &api.DockerConfig{Endpoint: "/var/run/docker.socket"}, 60 BuilderPullPolicy: api.DefaultBuilderPullPolicy, 61 Labels: nil, 62 }, 63 []Error{}, 64 }, 65 { 66 &api.Config{ 67 Source: git.MustParse("http://github.com/openshift/source"), 68 BuilderImage: "openshift/builder", 69 DockerConfig: &api.DockerConfig{Endpoint: "/var/run/docker.socket"}, 70 BuilderPullPolicy: api.DefaultBuilderPullPolicy, 71 Labels: map[string]string{}, 72 }, 73 []Error{}, 74 }, 75 { 76 &api.Config{ 77 Source: git.MustParse("http://github.com/openshift/source"), 78 BuilderImage: "openshift/builder", 79 DockerConfig: &api.DockerConfig{Endpoint: "/var/run/docker.socket"}, 80 BuilderPullPolicy: api.DefaultBuilderPullPolicy, 81 Labels: map[string]string{"some": "thing", "other": "value"}, 82 }, 83 []Error{}, 84 }, 85 { 86 &api.Config{ 87 Source: git.MustParse("http://github.com/openshift/source"), 88 BuilderImage: "openshift/builder", 89 DockerConfig: &api.DockerConfig{Endpoint: "/var/run/docker.socket"}, 90 BuilderPullPolicy: api.DefaultBuilderPullPolicy, 91 Labels: map[string]string{"some": "thing", "": "emptykey"}, 92 }, 93 []Error{{Type: ErrorInvalidValue, Field: "labels"}}, 94 }, 95 } 96 for _, test := range testCases { 97 result := ValidateConfig(test.value) 98 if !reflect.DeepEqual(result, test.expected) { 99 t.Errorf("got %+v, expected %+v", result, test.expected) 100 } 101 } 102 }