github.com/fitzoh/maven-push-plugin@v0.4.0/args_test.go (about) 1 package main 2 3 import ( 4 "os" 5 "reflect" 6 "testing" 7 ) 8 9 func TestParseArgs(t *testing.T) { 10 //move to testdata dir so that manifest validation works 11 os.Chdir("testdata") 12 tests := []struct { 13 name string 14 args []string 15 want string 16 wantErr bool 17 }{ 18 {name: "no args", args: []string{"maven-push"}, want: "manifest.yml", wantErr: false}, 19 {name: "proxy args only", args: []string{"maven-push", "-i", "2"}, want: "manifest.yml", wantErr: false}, 20 {name: "manifest and proxy args", args: []string{"maven-push", "--no-route", "-f", "simple-manifest.yml", "-i", "2"}, want: "simple-manifest.yml", wantErr: false}, 21 {name: "manifest and proxy args and boolean", args: []string{"maven-push", "--no-route", "-f", "simple-manifest.yml", "-i", "2"}, want: "simple-manifest.yml", wantErr: false}, 22 23 {name: "app name no args", args: []string{"maven-push", "my-app"}, want: "manifest.yml", wantErr: false}, 24 {name: "app name proxy args only", args: []string{"maven-push", "my-app", "-i", "2"}, want: "manifest.yml", wantErr: false}, 25 {name: "app name manifest and proxy args", args: []string{"maven-push", "my-app", "-f", "simple-manifest.yml", "-i", "2"}, want: "simple-manifest.yml", wantErr: false}, 26 {name: "app name manifest and proxy args and boolean", args: []string{"maven-push", "my-app", "--no-route", "-f", "simple-manifest.yml", "-i", "2"}, want: "simple-manifest.yml", wantErr: false}, 27 } 28 for _, tt := range tests { 29 t.Run(tt.name, func(t *testing.T) { 30 got, err := ParseArgs(tt.args) 31 if (err != nil) != tt.wantErr { 32 t.Errorf("ParseArgs() error = %v, wantErr %v", err, tt.wantErr) 33 return 34 } 35 if !reflect.DeepEqual(got.ManifestPath(), tt.want) { 36 t.Errorf("ParseArgs() = %v, want %v", got, tt.want) 37 } 38 }) 39 } 40 //back to root dir so we don't mess up other tests 41 os.Chdir("..") 42 } 43 44 func TestRemoveMavenArgs(t *testing.T) { 45 tests := []struct { 46 name string 47 args []string 48 want []string 49 }{ 50 {name: "empty", args: []string{}, want: []string{}}, 51 52 {name: "space", args: []string{"--maven-thing", "thing"}, want: []string{}}, 53 {name: "equals", args: []string{"--maven-thing=thing"}, want: []string{}}, 54 55 {name: "space with neighbors", args: []string{"keep1", "--maven-thing", "thing", "keep2"}, want: []string{"keep1", "keep2"}}, 56 {name: "equals with neighbors", args: []string{"keep1", "--maven-thing=thing", "keep2"}, want: []string{"keep1", "keep2"}}, 57 } 58 for _, tt := range tests { 59 t.Run(tt.name, func(t *testing.T) { 60 if got := RemoveMavenArgs(tt.args); !reflect.DeepEqual(got, tt.want) { 61 t.Errorf("RemoveMavenArgs() = %v, want %v", got, tt.want) 62 } 63 }) 64 } 65 }