File: pointer_test.go

package info (click to toggle)
golang-go-flags 0.0~git20141007-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 344 kB
  • ctags: 394
  • sloc: sh: 13; makefile: 7
file content (81 lines) | stat: -rw-r--r-- 1,633 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package flags

import (
	"testing"
)

func TestPointerBool(t *testing.T) {
	var opts = struct {
		Value *bool `short:"v"`
	}{}

	ret := assertParseSuccess(t, &opts, "-v")

	assertStringArray(t, ret, []string{})

	if !*opts.Value {
		t.Errorf("Expected Value to be true")
	}
}

func TestPointerString(t *testing.T) {
	var opts = struct {
		Value *string `short:"v"`
	}{}

	ret := assertParseSuccess(t, &opts, "-v", "value")

	assertStringArray(t, ret, []string{})
	assertString(t, *opts.Value, "value")
}

func TestPointerSlice(t *testing.T) {
	var opts = struct {
		Value *[]string `short:"v"`
	}{}

	ret := assertParseSuccess(t, &opts, "-v", "value1", "-v", "value2")

	assertStringArray(t, ret, []string{})
	assertStringArray(t, *opts.Value, []string{"value1", "value2"})
}

func TestPointerMap(t *testing.T) {
	var opts = struct {
		Value *map[string]int `short:"v"`
	}{}

	ret := assertParseSuccess(t, &opts, "-v", "k1:2", "-v", "k2:-5")

	assertStringArray(t, ret, []string{})

	if v, ok := (*opts.Value)["k1"]; !ok {
		t.Errorf("Expected key \"k1\" to exist")
	} else if v != 2 {
		t.Errorf("Expected \"k1\" to be 2, but got %#v", v)
	}

	if v, ok := (*opts.Value)["k2"]; !ok {
		t.Errorf("Expected key \"k2\" to exist")
	} else if v != -5 {
		t.Errorf("Expected \"k2\" to be -5, but got %#v", v)
	}
}

type PointerGroup struct {
	Value bool `short:"v"`
}

func TestPointerGroup(t *testing.T) {
	var opts = struct {
		Group *PointerGroup `group:"Group Options"`
	}{}

	ret := assertParseSuccess(t, &opts, "-v")

	assertStringArray(t, ret, []string{})

	if !opts.Group.Value {
		t.Errorf("Expected Group.Value to be true")
	}
}