5 func TestRequireAllParamsUsedInClauses(t *testing.T) {
8 statements: []statement{
9 &verifyStatement{expr: varRef("foo")},
17 lockedAmount: varRef("10000"),
18 lockedAsset: varRef("baz"),
19 program: varRef("foo"),
24 statements: []statement{
25 &verifyStatement{expr: varRef("foo")},
29 right: varRef("plugh"),
33 lockedAmount: varRef("20000"),
34 lockedAsset: varRef("xyzzy"),
35 program: varRef("foo"),
47 name: "contract param used in both clauses",
48 params: []string{"foo"},
51 name: "contract param used in one clause",
52 params: []string{"bar"},
55 name: "contract param used in no clauses",
56 params: []string{"y2"},
57 want: "parameter \"y2\" is unused",
60 for _, c := range cases {
61 t.Run(c.name, func(t *testing.T) {
63 for _, p := range c.params {
64 params = append(params, &Param{Name: p})
66 err := requireAllParamsUsedInClauses(params, clauses)
67 if err == nil && c.want == "" {
71 t.Errorf("got err==nil, want %s", c.want)
74 if err.Error() != c.want {
75 t.Errorf("got %s, want %s", err, c.want)