...
1 package middleware
2
3 import (
4 "reflect"
5 "strings"
6 "testing"
7 )
8
9 func TestStackList(t *testing.T) {
10 s := NewStack("fooStack", func() interface{} { return struct{}{} })
11
12 s.Initialize.Add(mockInitializeMiddleware("first"), After)
13 s.Serialize.Add(mockSerializeMiddleware("second"), After)
14 s.Build.Add(mockBuildMiddleware("third"), After)
15 s.Finalize.Add(mockFinalizeMiddleware("fourth"), After)
16 s.Deserialize.Add(mockDeserializeMiddleware("fifth"), After)
17
18 actual := s.List()
19
20 expect := []string{
21 "fooStack",
22 (*InitializeStep)(nil).ID(),
23 "first",
24 (*SerializeStep)(nil).ID(),
25 "second",
26 (*BuildStep)(nil).ID(),
27 "third",
28 (*FinalizeStep)(nil).ID(),
29 "fourth",
30 (*DeserializeStep)(nil).ID(),
31 "fifth",
32 }
33
34 if !reflect.DeepEqual(expect, actual) {
35 t.Errorf("expect and actual stack list differ: %v != %v", expect, actual)
36 }
37 }
38
39 func TestStackString(t *testing.T) {
40 s := NewStack("fooStack", func() interface{} { return struct{}{} })
41
42 s.Initialize.Add(mockInitializeMiddleware("first"), After)
43 s.Serialize.Add(mockSerializeMiddleware("second"), After)
44 s.Build.Add(mockBuildMiddleware("third"), After)
45 s.Finalize.Add(mockFinalizeMiddleware("fourth"), After)
46 s.Deserialize.Add(mockDeserializeMiddleware("fifth"), After)
47
48 actual := s.String()
49
50 expect := strings.Join([]string{
51 "fooStack",
52 "\t" + (*InitializeStep)(nil).ID(),
53 "\t\t" + "first",
54 "\t" + (*SerializeStep)(nil).ID(),
55 "\t\t" + "second",
56 "\t" + (*BuildStep)(nil).ID(),
57 "\t\t" + "third",
58 "\t" + (*FinalizeStep)(nil).ID(),
59 "\t\t" + "fourth",
60 "\t" + (*DeserializeStep)(nil).ID(),
61 "\t\t" + "fifth",
62 "",
63 }, "\n")
64
65 if !reflect.DeepEqual(expect, actual) {
66 t.Errorf("expect and actual stack list differ: %v != %v", expect, actual)
67 }
68 }
69
View as plain text