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  }