This is an automated email from the ASF dual-hosted git repository.

nferraro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git


The following commit(s) were added to refs/heads/master by this push:
     new 26491cb  refactor(test): included all run command flag test
26491cb is described below

commit 26491cb2ea13653802900525f6f2298a8ecb7c33
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Mon Jan 11 16:02:59 2021 +0100

    refactor(test): included all run command flag test
    
    * Added all run command flag test in run_test.go
    * Refactored root_test.go to use new methods in run_test.go
---
 pkg/cmd/root_test.go |  46 +-----
 pkg/cmd/run_test.go  | 423 ++++++++++++++++++++++++++++++++++++++++-----------
 2 files changed, 341 insertions(+), 128 deletions(-)

diff --git a/pkg/cmd/root_test.go b/pkg/cmd/root_test.go
index a050a5f..d7ee8d9 100644
--- a/pkg/cmd/root_test.go
+++ b/pkg/cmd/root_test.go
@@ -46,42 +46,16 @@ func kamelTestPreAddCommandInit() (*RootCmdOptions, 
*cobra.Command) {
        return &options, rootCmd
 }
 
-func TestLoadFromCommandLine(t *testing.T) {
-       options, rootCmd := kamelTestPreAddCommandInit()
-
-       runCmdOptions := addTestRunCmd(options, rootCmd)
-
-       kamelTestPostAddCommandInit(t, rootCmd)
-
-       const VAR2 = "VAR2=value2"
-       _, err := test.ExecuteCommand(rootCmd, "run", "route.java", "--env", 
"VAR1=value,othervalue", "--env", VAR2)
-       if err != nil {
-               t.Fatalf("Unexpected error: %v", err)
-       }
-
-       if len(runCmdOptions.EnvVars) != 2 {
-               t.Errorf("Properties expected to contain: \n %v 
elements\nGot:\n %v elemtns\n", 2, len(runCmdOptions.EnvVars))
-       }
-       if runCmdOptions.EnvVars[0] != "VAR1=value,othervalue" || 
runCmdOptions.EnvVars[1] != VAR2 {
-               t.Errorf("EnvVars expected to be: \n %v\nGot:\n %v\n", 
"[VAR1=value,othervalue VAR=value2]", runCmdOptions.EnvVars)
-       }
-}
-
 func TestLoadFromEnvVar(t *testing.T) {
        //shows how to include a "," character inside an env value see VAR1 
value
        os.Setenv("KAMEL_RUN_ENVS", 
"\"VAR1=value,\"\"othervalue\"\"\",VAR2=value2")
 
-       options, rootCmd := kamelTestPreAddCommandInit()
-
-       runCmdOptions := addTestRunCmd(options, rootCmd)
-
-       kamelTestPostAddCommandInit(t, rootCmd)
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
 
        _, err := test.ExecuteCommand(rootCmd, "run", "route.java")
        if err != nil {
                t.Fatalf("Unexpected error: %v", err)
        }
-
        if len(runCmdOptions.EnvVars) != 2 {
                t.Fatalf("Properties expected to contain: \n %v 
elements\nGot:\n %v elemtns\n", 2, len(runCmdOptions.EnvVars))
        }
@@ -95,17 +69,13 @@ func TestLoadFromFile(t *testing.T) {
        var propertiesFile = []byte(`kamel.run.envs: 
"VAR1=value,""othervalue""",VAR2=value2`)
        viper.SetConfigType("properties")
        readViperConfigFromBytes(propertiesFile, t)
-       options, rootCmd := kamelTestPreAddCommandInit()
-
-       runCmdOptions := addTestRunCmd(options, rootCmd)
 
-       kamelTestPostAddCommandInit(t, rootCmd)
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
 
        _, err := test.ExecuteCommand(rootCmd, "run", "route.java")
        if err != nil {
                t.Fatalf("Unexpected error: %v", err)
        }
-
        if len(runCmdOptions.EnvVars) != 2 {
                t.Fatalf("Properties expected to contain: \n %v 
elements\nGot:\n %v elemtns\n", 2, len(runCmdOptions.EnvVars))
        }
@@ -119,17 +89,13 @@ func TestPrecedenceEnvVarOverFile(t *testing.T) {
        var propertiesFile = []byte(`kamel.run.envs: VAR2=file`)
        viper.SetConfigType("properties")
        readViperConfigFromBytes(propertiesFile, t)
-       options, rootCmd := kamelTestPreAddCommandInit()
-
-       runCmdOptions := addTestRunCmd(options, rootCmd)
 
-       kamelTestPostAddCommandInit(t, rootCmd)
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
 
        _, err := test.ExecuteCommand(rootCmd, "run", "route.java")
        if err != nil {
                t.Fatalf("Unexpected error: %v", err)
        }
-
        if len(runCmdOptions.EnvVars) != 1 {
                t.Fatalf("Properties expected to contain: \n %v 
elements\nGot:\n %v elements\n", 1, len(runCmdOptions.EnvVars))
        }
@@ -143,17 +109,13 @@ func TestPrecedenceCommandLineOverEverythingElse(t 
*testing.T) {
        var propertiesFile = []byte(`kamel.run.envs: VAR2=file`)
        viper.SetConfigType("properties")
        readViperConfigFromBytes(propertiesFile, t)
-       options, rootCmd := kamelTestPreAddCommandInit()
 
-       runCmdOptions := addTestRunCmd(options, rootCmd)
-
-       kamelTestPostAddCommandInit(t, rootCmd)
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
 
        _, err := test.ExecuteCommand(rootCmd, "run", "route.java", "--env", 
"VAR3=commandLine")
        if err != nil {
                t.Fatalf("Unexpected error: %v", err)
        }
-
        if len(runCmdOptions.EnvVars) != 1 {
                t.Fatalf("Properties expected to contain: \n %v 
elements\nGot:\n %v elements\n", 1, len(runCmdOptions.EnvVars))
        }
diff --git a/pkg/cmd/run_test.go b/pkg/cmd/run_test.go
index 0be892b..9db4193 100644
--- a/pkg/cmd/run_test.go
+++ b/pkg/cmd/run_test.go
@@ -29,123 +29,226 @@ import (
        "github.com/stretchr/testify/assert"
 )
 
-func addTestRunCmd(options *RootCmdOptions, rootCmd *cobra.Command) 
*runCmdOptions {
-       //add a testing version of run Command
-       runCmd, runCmdOptions := newCmdRun(options)
-       runCmd.RunE = func(c *cobra.Command, args []string) error {
-               return nil
-       }
-       runCmd.Args = test.ArbitraryArgs
-       rootCmd.AddCommand(runCmd)
-       return runCmdOptions
-}
+const cmdRun = "run"
+const integrationSource = "example.js"
 
-func TestRunPropertyFlag(t *testing.T) {
+func initializeRunCmdOptions(t *testing.T) (*runCmdOptions, *cobra.Command, 
RootCmdOptions) {
        options, rootCmd := kamelTestPreAddCommandInit()
-
-       runCmdOptions := addTestRunCmd(options, rootCmd)
-
+       runCmdOptions := addTestRunCmd(*options, rootCmd)
        kamelTestPostAddCommandInit(t, rootCmd)
 
-       _, err := test.ExecuteCommand(rootCmd, "run", "route.java", 
"--property", "key1=value,othervalue", "--property", "key2=value2")
-       if err != nil {
-               t.Fatalf("Unexpected error: %v", err)
-       }
+       return runCmdOptions, rootCmd, *options
+}
 
-       if len(runCmdOptions.Properties) != 2 {
-               t.Fatalf("Properties expected to contain: \n %v 
elements\nGot:\n %v elements\n", 2, len(runCmdOptions.Properties))
+func addTestRunCmd(options RootCmdOptions, rootCmd *cobra.Command) 
*runCmdOptions {
+       //add a testing version of run Command
+       runCmd, runOptions := newCmdRun(&options)
+       runCmd.RunE = func(c *cobra.Command, args []string) error {
+               return nil
        }
-       if runCmdOptions.Properties[0] != "key1=value,othervalue" || 
runCmdOptions.Properties[1] != "key2=value2" {
-               t.Fatalf("Properties expected to be: \n %v\nGot:\n %v\n", 
"[key1=value,othervalue key2=value2]", runCmdOptions.Properties)
+       runCmd.PostRunE = func(c *cobra.Command, args []string) error {
+               return nil
        }
+       runCmd.Args = test.ArbitraryArgs
+       rootCmd.AddCommand(runCmd)
+       return runOptions
 }
 
-func TestRunWithAdditionalSourcesFlag(t *testing.T) {
-       options, rootCmd := kamelTestPreAddCommandInit()
-
-       runCmdOptions := addTestRunCmd(options, rootCmd)
-
-       kamelTestPostAddCommandInit(t, rootCmd)
-
-       _, err := test.ExecuteCommand(rootCmd, "run", "route.java", "--source", 
"additional-source1.java", "--source", "additional-source2.java")
-
+func TestRunNoFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, integrationSource)
        assert.Nil(t, err)
-       assert.Len(t, runCmdOptions.Sources, 2)
+       //Check default expected values
+       assert.Equal(t, false, runCmdOptions.Wait)
+       assert.Equal(t, false, runCmdOptions.Logs)
+       assert.Equal(t, false, runCmdOptions.Sync)
+       assert.Equal(t, false, runCmdOptions.Dev)
+       assert.Equal(t, true, runCmdOptions.UseFlows)
+       assert.Equal(t, false, runCmdOptions.Compression)
+       assert.Equal(t, true, runCmdOptions.CompressBinary)
+       assert.Equal(t, false, runCmdOptions.Save)
 }
 
-func TestRunWithTraitFlag(t *testing.T) {
-       options, rootCmd := kamelTestPreAddCommandInit()
-
-       runCmdOptions := addTestRunCmd(options, rootCmd)
-
-       kamelTestPostAddCommandInit(t, rootCmd)
+func TestRunNonExistingFlag(t *testing.T) {
+       _, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, "--nonExistingFlag", 
integrationSource)
+       assert.NotNil(t, err)
+}
 
-       _, err := test.ExecuteCommand(rootCmd, "run", "--trait", 
"sample.enabled=true", "example.js")
+func TestRunCompressBinaryFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, 
"--compress-binary=false", integrationSource)
+       assert.Nil(t, err)
+       assert.Equal(t, false, runCmdOptions.CompressBinary)
+}
 
+func TestRunCompressionFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, "--compression", 
integrationSource)
        assert.Nil(t, err)
-       assert.Equal(t, 1, len(runCmdOptions.Traits))
-       assert.Equal(t, "sample.enabled=true", runCmdOptions.Traits[0])
+       assert.Equal(t, true, runCmdOptions.CompressBinary)
 }
 
-func TestRunWithAdditionalTraitFlag(t *testing.T) {
-       options, rootCmd := kamelTestPreAddCommandInit()
+func TestRunConfigMapFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "--configmap", "configMap1",
+               "--configmap", "configMap2",
+               integrationSource)
+       assert.Nil(t, err)
+       assert.Len(t, runCmdOptions.ConfigMaps, 2)
+       assert.Equal(t, "configMap1", runCmdOptions.ConfigMaps[0])
+       assert.Equal(t, "configMap2", runCmdOptions.ConfigMaps[1])
+}
 
-       runCmdOptions := addTestRunCmd(options, rootCmd)
+func TestRunDependencyFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "--dependency", "dependency1",
+               "--dependency", "dependency2",
+               "--dependency", "dependency3",
+               integrationSource)
+       assert.Nil(t, err)
+       assert.Len(t, runCmdOptions.Dependencies, 3)
+       assert.Equal(t, "dependency1", runCmdOptions.Dependencies[0])
+       assert.Equal(t, "dependency2", runCmdOptions.Dependencies[1])
+       assert.Equal(t, "dependency3", runCmdOptions.Dependencies[2])
+}
 
-       kamelTestPostAddCommandInit(t, rootCmd)
+func TestRunDevFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, "--dev", 
integrationSource)
+       assert.Nil(t, err)
+       assert.Equal(t, true, runCmdOptions.Dev)
+}
 
-       _, err := test.ExecuteCommand(rootCmd, "run", "--trait", 
"sample.enabled=true", "--trait", "sample.second=true", "example.js")
+func TestRunEnvFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "--env", "env1",
+               "--env", "env2",
+               integrationSource)
+       assert.Nil(t, err)
+       assert.Len(t, runCmdOptions.EnvVars, 2)
+       assert.Equal(t, "env1", runCmdOptions.EnvVars[0])
+       assert.Equal(t, "env2", runCmdOptions.EnvVars[1])
+}
 
+func TestRunKitFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, "--kit", "myKit", 
integrationSource)
        assert.Nil(t, err)
-       assert.Equal(t, 2, len(runCmdOptions.Traits))
-       assert.Equal(t, "sample.enabled=true", runCmdOptions.Traits[0])
-       assert.Equal(t, "sample.second=true", runCmdOptions.Traits[1])
+       assert.Equal(t, "myKit", runCmdOptions.IntegrationKit)
 }
 
-//
-// This test does work when running as single test but fails
-// otherwise as we are using a global viper instance
-//
+func TestRunLabelFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "--label", "label1=l1",
+               "--label", "label2=l2",
+               "--label", "label3=l3",
+               integrationSource)
+       assert.Nil(t, err)
+       assert.Len(t, runCmdOptions.Labels, 3)
+       assert.Equal(t, "label1=l1", runCmdOptions.Labels[0])
+       assert.Equal(t, "label2=l2", runCmdOptions.Labels[1])
+       assert.Equal(t, "label3=l3", runCmdOptions.Labels[2])
+}
 
-/*
-const TestKamelConfigContent = `
-kamel:
-  install:
-    olm: false
-  run:
-    integration:
-      route:
-        sources:
-        - examples/dns.js
-        - examples/Sample.java
-`
+func TestRunLabelWrongFormatFlag(t *testing.T) {
+       _, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, "--label", "label1", 
integrationSource)
+       assert.NotNil(t, err)
+}
 
-func TestRunWithSavedValues(t *testing.T) {
-       dir, err := ioutil.TempDir("", "run-")
+func TestRunLoggingLevelFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "--logging-level", "lev1",
+               "--logging-level", "lev2",
+               integrationSource)
        assert.Nil(t, err)
+       assert.Len(t, runCmdOptions.LoggingLevels, 2)
+       assert.Equal(t, "lev1", runCmdOptions.LoggingLevels[0])
+       assert.Equal(t, "lev2", runCmdOptions.LoggingLevels[1])
+}
 
-       defer func() {
-               _ = os.RemoveAll(dir)
-       }()
-
-       assert.Nil(t, os.Setenv("KAMEL_CONFIG_PATH", dir))
-       defer func() {
-               _ = os.Unsetenv("KAMEL_CONFIG_PATH")
-       }()
+func TestRunLogsFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, "--logs", 
integrationSource)
+       assert.Nil(t, err)
+       assert.Equal(t, true, runCmdOptions.Logs)
+}
 
-       assert.Nil(t, ioutil.WriteFile(path.Join(dir, "kamel-config.yaml"), 
[]byte(TestKamelConfigContent), 0644))
+func TestRunMavenRepositoryFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "--maven-repository", "repo1",
+               "--maven-repository", "repo2",
+               "--maven-repository", "repo3",
+               integrationSource)
+       assert.Nil(t, err)
+       assert.Len(t, runCmdOptions.Repositories, 3)
+       assert.Equal(t, "repo1", runCmdOptions.Repositories[0])
+       assert.Equal(t, "repo2", runCmdOptions.Repositories[1])
+       assert.Equal(t, "repo3", runCmdOptions.Repositories[2])
+}
 
-       options, rootCmd := kamelTestPreAddCommandInit()
+func TestRunNameFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, "--name", 
"myIntegration", integrationSource)
+       assert.Nil(t, err)
+       assert.Equal(t, "myIntegration", runCmdOptions.IntegrationName)
+}
 
-       runCmdOptions := addTestRunCmd(options, rootCmd)
+func TestRunOpenApiFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "--open-api", "oapi1",
+               "--open-api", "oapi2",
+               integrationSource)
+       assert.Nil(t, err)
+       assert.Len(t, runCmdOptions.OpenAPIs, 2)
+       assert.Equal(t, "oapi1", runCmdOptions.OpenAPIs[0])
+       assert.Equal(t, "oapi2", runCmdOptions.OpenAPIs[1])
+}
 
-       kamelTestPostAddCommandInit(t, rootCmd)
+func TestRunOutputFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, "-o", "yaml", 
integrationSource)
+       assert.Nil(t, err)
+       assert.Equal(t, "yaml", runCmdOptions.OutputFormat)
+}
 
-       _, err = test.ExecuteCommand(rootCmd, "run", "route.java")
+func TestRunProfileFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, "--profile", 
"myProfile", integrationSource)
+       assert.Nil(t, err)
+       assert.Equal(t, "myProfile", runCmdOptions.Profile)
+}
 
+func TestRunPropertyFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "--property", "property1",
+               "--property", "property2",
+               "--property", "property3",
+               integrationSource)
        assert.Nil(t, err)
-       assert.Len(t, runCmdOptions.Sources, 2)
-}*/
+       assert.Len(t, runCmdOptions.Properties, 3)
+       assert.Equal(t, "property1", runCmdOptions.Properties[0])
+       assert.Equal(t, "property2", runCmdOptions.Properties[1])
+       assert.Equal(t, "property3", runCmdOptions.Properties[2])
+}
+
+func TestRunPropertyFileFlagMissingFileExtension(t *testing.T) {
+       _, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "--property-file", "file1",
+               "--property-file", "file2",
+               integrationSource)
+       assert.NotNil(t, err)
+}
 
 const TestPropertyFileContent = `
 a=b
@@ -155,7 +258,7 @@ d=c\=e
 f=g\:h
 `
 
-func TestRunPropertyFileFlag(t *testing.T) {
+func TestAddPropertyFile(t *testing.T) {
        var tmpFile *os.File
        var err error
        if tmpFile, err = ioutil.TempFile("", "camel-k-"); err != nil {
@@ -174,10 +277,85 @@ func TestRunPropertyFileFlag(t *testing.T) {
        assert.Equal(t, `f=g\:h`, spec.Configuration[3].Value)
 }
 
+func TestRunPropertyFileFlag(t *testing.T) {
+       var tmpFile *os.File
+       var err error
+       if tmpFile, err = ioutil.TempFile("", "camel-k-*.properties"); err != 
nil {
+               t.Error(err)
+       }
+
+       assert.Nil(t, tmpFile.Close())
+       assert.Nil(t, ioutil.WriteFile(tmpFile.Name(), 
[]byte(TestPropertyFileContent), 0644))
+
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, errExecute := test.ExecuteCommand(rootCmd, cmdRun,
+               "--property-file", tmpFile.Name(),
+               integrationSource)
+       assert.Nil(t, errExecute)
+       assert.Len(t, runCmdOptions.PropertyFiles, 1)
+       assert.Equal(t, tmpFile.Name(), runCmdOptions.PropertyFiles[0])
+}
+
+func TestRunResourceFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "--resource", "res1",
+               "--resource", "res2",
+               integrationSource)
+       assert.Nil(t, err)
+       assert.Len(t, runCmdOptions.Resources, 2)
+       assert.Equal(t, "res1", runCmdOptions.Resources[0])
+       assert.Equal(t, "res2", runCmdOptions.Resources[1])
+}
+
+func TestRunSaveFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, "--save", 
integrationSource)
+       assert.Nil(t, err)
+       assert.Equal(t, true, runCmdOptions.Save)
+}
+
+func TestRunSecretFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "--secret", "secret1",
+               "--secret", "secret2",
+               integrationSource)
+       assert.Nil(t, err)
+       assert.Len(t, runCmdOptions.Secrets, 2)
+       assert.Equal(t, "secret1", runCmdOptions.Secrets[0])
+       assert.Equal(t, "secret2", runCmdOptions.Secrets[1])
+}
+
+func TestRunSourceFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, "--source", "source1", 
integrationSource)
+       assert.Nil(t, err)
+       assert.Len(t, runCmdOptions.Sources, 1)
+       assert.Equal(t, "source1", runCmdOptions.Sources[0])
+}
+
+func TestRunSyncFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, "--sync", 
integrationSource)
+       assert.Nil(t, err)
+       assert.Equal(t, true, runCmdOptions.Sync)
+}
+
+func TestRunTraitFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "--trait", "trait1",
+               "--trait", "trait2",
+               integrationSource)
+       assert.Nil(t, err)
+       assert.Len(t, runCmdOptions.Traits, 2)
+       assert.Equal(t, "trait1", runCmdOptions.Traits[0])
+       assert.Equal(t, "trait2", runCmdOptions.Traits[1])
+}
+
 func TestConfigureTraits(t *testing.T) {
-       options, rootCmd := kamelTestPreAddCommandInit()
-       runCmdOptions := addTestRunCmd(options, rootCmd)
-       kamelTestPostAddCommandInit(t, rootCmd)
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
        _, err := test.ExecuteCommand(rootCmd, "run",
                "--trait", "affinity.pod-affinity=false",
                "--trait", "container.probes-enabled=false",
@@ -209,3 +387,76 @@ func assertTraitConfiguration(t *testing.T, traits 
map[string]v1.TraitSpec, trai
        assert.Contains(t, traits, trait)
        assert.Equal(t, expected, 
string(traits[trait].Configuration.RawMessage))
 }
+
+func TestRunUseFlowsFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun, "--use-flows=false", 
integrationSource)
+       assert.Nil(t, err)
+       assert.Equal(t, false, runCmdOptions.UseFlows)
+}
+
+func TestRunVolumeFlag(t *testing.T) {
+       runCmdOptions, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "-v", "pvcname:/container1/path",
+               "-v", "pvcname:/container2/path",
+               integrationSource)
+       assert.Nil(t, err)
+       assert.Len(t, runCmdOptions.Volumes, 2)
+       assert.Equal(t, "pvcname:/container1/path", runCmdOptions.Volumes[0])
+       assert.Equal(t, "pvcname:/container2/path", runCmdOptions.Volumes[1])
+}
+
+func TestRunVolumeFlagWrongPVCFormat(t *testing.T) {
+       _, rootCmd, _ := initializeRunCmdOptions(t)
+       _, err := test.ExecuteCommand(rootCmd, cmdRun,
+               "-v", "pvcname",
+               "-v", "pvcname/container2/path",
+               integrationSource)
+       assert.NotNil(t, err)
+}
+
+//
+// This test does work when running as single test but fails
+// otherwise as we are using a global viper instance
+//
+
+/*
+const TestKamelConfigContent = `
+kamel:
+  install:
+    olm: false
+  run:
+    integration:
+      route:
+        sources:
+        - examples/dns.js
+        - examples/Sample.java
+`
+
+func TestRunWithSavedValues(t *testing.T) {
+       dir, err := ioutil.TempDir("", "run-")
+       assert.Nil(t, err)
+
+       defer func() {
+               _ = os.RemoveAll(dir)
+       }()
+
+       assert.Nil(t, os.Setenv("KAMEL_CONFIG_PATH", dir))
+       defer func() {
+               _ = os.Unsetenv("KAMEL_CONFIG_PATH")
+       }()
+
+       assert.Nil(t, ioutil.WriteFile(path.Join(dir, "kamel-config.yaml"), 
[]byte(TestKamelConfigContent), 0644))
+
+       options, rootCmd := kamelTestPreAddCommandInit()
+
+       runCmdOptions := addTestRunCmd(options, rootCmd)
+
+       kamelTestPostAddCommandInit(t, rootCmd)
+
+       _, err = test.ExecuteCommand(rootCmd, "run", "route.java")
+
+       assert.Nil(t, err)
+       assert.Len(t, runCmdOptions.Sources, 2)
+}*/

Reply via email to