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  }