| package oci |
| |
| import ( |
| "testing" |
| |
| "github.com/stretchr/testify/require" |
| ) |
| |
| func TestGetBundleDir(t *testing.T) { |
| type expected struct { |
| bundle string |
| isError bool |
| } |
| testCases := []struct { |
| argv []string |
| expected expected |
| }{ |
| { |
| argv: []string{}, |
| expected: expected{ |
| bundle: "", |
| }, |
| }, |
| { |
| argv: []string{"create"}, |
| expected: expected{ |
| bundle: "", |
| }, |
| }, |
| { |
| argv: []string{"--bundle"}, |
| expected: expected{ |
| isError: true, |
| }, |
| }, |
| { |
| argv: []string{"-b"}, |
| expected: expected{ |
| isError: true, |
| }, |
| }, |
| { |
| argv: []string{"--bundle", "/foo/bar"}, |
| expected: expected{ |
| bundle: "/foo/bar", |
| }, |
| }, |
| { |
| argv: []string{"--not-bundle", "/foo/bar"}, |
| expected: expected{ |
| bundle: "", |
| }, |
| }, |
| { |
| argv: []string{"--"}, |
| expected: expected{ |
| bundle: "", |
| }, |
| }, |
| { |
| argv: []string{"-bundle", "/foo/bar"}, |
| expected: expected{ |
| bundle: "/foo/bar", |
| }, |
| }, |
| { |
| argv: []string{"--bundle=/foo/bar"}, |
| expected: expected{ |
| bundle: "/foo/bar", |
| }, |
| }, |
| { |
| argv: []string{"-b=/foo/bar"}, |
| expected: expected{ |
| bundle: "/foo/bar", |
| }, |
| }, |
| { |
| argv: []string{"-b=/foo/=bar"}, |
| expected: expected{ |
| bundle: "/foo/=bar", |
| }, |
| }, |
| { |
| argv: []string{"-b", "/foo/bar"}, |
| expected: expected{ |
| bundle: "/foo/bar", |
| }, |
| }, |
| { |
| argv: []string{"create", "-b", "/foo/bar"}, |
| expected: expected{ |
| bundle: "/foo/bar", |
| }, |
| }, |
| { |
| argv: []string{"-b", "create", "create"}, |
| expected: expected{ |
| bundle: "create", |
| }, |
| }, |
| { |
| argv: []string{"-b=create", "create"}, |
| expected: expected{ |
| bundle: "create", |
| }, |
| }, |
| { |
| argv: []string{"-b", "create"}, |
| expected: expected{ |
| bundle: "create", |
| }, |
| }, |
| } |
| |
| for i, tc := range testCases { |
| bundle, err := GetBundleDir(tc.argv) |
| |
| if tc.expected.isError { |
| require.Errorf(t, err, "%d: %v", i, tc) |
| } else { |
| require.NoErrorf(t, err, "%d: %v", i, tc) |
| } |
| |
| require.Equalf(t, tc.expected.bundle, bundle, "%d: %v", i, tc) |
| } |
| } |
| |
| func TestGetSpecFilePathAppendsFilename(t *testing.T) { |
| testCases := []struct { |
| bundleDir string |
| expected string |
| }{ |
| { |
| bundleDir: "", |
| expected: "config.json", |
| }, |
| { |
| bundleDir: "/not/empty/", |
| expected: "/not/empty/config.json", |
| }, |
| { |
| bundleDir: "not/absolute", |
| expected: "not/absolute/config.json", |
| }, |
| } |
| |
| for i, tc := range testCases { |
| specPath := GetSpecFilePath(tc.bundleDir) |
| |
| require.Equalf(t, tc.expected, specPath, "%d: %v", i, tc) |
| } |
| } |
| |
| func TestHasCreateSubcommand(t *testing.T) { |
| testCases := []struct { |
| args []string |
| shouldModify bool |
| }{ |
| { |
| shouldModify: false, |
| }, |
| { |
| args: []string{"create"}, |
| shouldModify: true, |
| }, |
| { |
| args: []string{"--bundle=create"}, |
| shouldModify: false, |
| }, |
| { |
| args: []string{"--bundle", "create"}, |
| shouldModify: false, |
| }, |
| { |
| args: []string{"create"}, |
| shouldModify: true, |
| }, |
| } |
| |
| for i, tc := range testCases { |
| require.Equal(t, tc.shouldModify, HasCreateSubcommand(tc.args), "%d: %v", i, tc) |
| } |
| } |