@@ -12,87 +12,103 @@ type mockComparable struct {
12
12
value data.DataValue
13
13
}
14
14
15
- func (m mockComparable ) Key () string {
15
+ func (m * mockComparable ) Key () string {
16
16
return m .key
17
17
}
18
18
19
- func (m mockComparable ) Value () data.DataValue {
19
+ func (m * mockComparable ) Value () data.DataValue {
20
20
return m .value
21
21
}
22
22
23
+ func mockComparableToComparable (mc []* mockComparable ) []Comparable {
24
+ res := make ([]Comparable , 0 , len (mc ))
25
+ for i := range mc {
26
+ res = append (res , (* mockComparable )(mc [i ]))
27
+ }
28
+ return res
29
+ }
30
+
31
+ func comparableToMockComparable (c []Comparable ) []* mockComparable {
32
+ res := make ([]* mockComparable , 0 , len (c ))
33
+ for i := range c {
34
+ res = append (res , c [i ].(* mockComparable ))
35
+ }
36
+ return res
37
+ }
38
+
23
39
func TestCompareResources (t * testing.T ) {
24
40
tests := []struct {
25
41
name string
26
- existing []Comparable
27
- expected []Comparable
28
- wantChanged []Comparable
29
- wantStale []Comparable
42
+ existing []* mockComparable
43
+ expected []* mockComparable
44
+ wantChanged []* mockComparable
45
+ wantStale []* mockComparable
30
46
}{
31
47
{
32
48
name : "No changes" ,
33
- existing : []Comparable {
34
- mockComparable {key : "key1" , value : data .NewStringValue ("value1" )},
35
- mockComparable {key : "key2" , value : data .NewStringValue ("value2" )},
49
+ existing : []* mockComparable {
50
+ {key : "key1" , value : data .NewStringValue ("value1" )},
51
+ {key : "key2" , value : data .NewStringValue ("value2" )},
36
52
},
37
- expected : []Comparable {
38
- mockComparable {key : "key1" , value : data .NewStringValue ("value1" )},
39
- mockComparable {key : "key2" , value : data .NewStringValue ("value2" )},
53
+ expected : []* mockComparable {
54
+ {key : "key1" , value : data .NewStringValue ("value1" )},
55
+ {key : "key2" , value : data .NewStringValue ("value2" )},
40
56
},
41
- wantChanged : []Comparable {},
42
- wantStale : []Comparable {},
57
+ wantChanged : []* mockComparable {},
58
+ wantStale : []* mockComparable {},
43
59
},
44
60
{
45
61
name : "Changed resources" ,
46
- existing : []Comparable {
47
- mockComparable {key : "key1" , value : data .NewStringValue ("value1" )},
48
- mockComparable {key : "key2" , value : data .NewStringValue ("value2" )},
62
+ existing : []* mockComparable {
63
+ {key : "key1" , value : data .NewStringValue ("value1" )},
64
+ {key : "key2" , value : data .NewStringValue ("value2" )},
49
65
},
50
- expected : []Comparable {
51
- mockComparable {key : "key1" , value : data .NewStringValue ("value1" )},
52
- mockComparable {key : "key2" , value : data .NewStringValue ("value2_changed" )},
66
+ expected : []* mockComparable {
67
+ {key : "key1" , value : data .NewStringValue ("value1" )},
68
+ {key : "key2" , value : data .NewStringValue ("value2_changed" )},
53
69
},
54
- wantChanged : []Comparable {
55
- mockComparable {key : "key2" , value : data .NewStringValue ("value2_changed" )},
70
+ wantChanged : []* mockComparable {
71
+ {key : "key2" , value : data .NewStringValue ("value2_changed" )},
56
72
},
57
- wantStale : []Comparable {},
73
+ wantStale : []* mockComparable {},
58
74
},
59
75
{
60
76
name : "Stale resources" ,
61
- existing : []Comparable {
62
- mockComparable {key : "key1" , value : data .NewStringValue ("value1" )},
63
- mockComparable {key : "key2" , value : data .NewStringValue ("value2" )},
77
+ existing : []* mockComparable {
78
+ {key : "key1" , value : data .NewStringValue ("value1" )},
79
+ {key : "key2" , value : data .NewStringValue ("value2" )},
64
80
},
65
- expected : []Comparable {
66
- mockComparable {key : "key1" , value : data .NewStringValue ("value1" )},
81
+ expected : []* mockComparable {
82
+ {key : "key1" , value : data .NewStringValue ("value1" )},
67
83
},
68
- wantChanged : []Comparable {},
69
- wantStale : []Comparable {
70
- mockComparable {key : "key2" , value : data .NewStringValue ("value2" )},
84
+ wantChanged : []* mockComparable {},
85
+ wantStale : []* mockComparable {
86
+ {key : "key2" , value : data .NewStringValue ("value2" )},
71
87
},
72
88
},
73
89
{
74
90
name : "Changed and stale resources" ,
75
- existing : []Comparable {
76
- mockComparable {key : "key1" , value : data .NewStringValue ("value1" )},
77
- mockComparable {key : "key2" , value : data .NewStringValue ("value2" )},
91
+ existing : []* mockComparable {
92
+ {key : "key1" , value : data .NewStringValue ("value1" )},
93
+ {key : "key2" , value : data .NewStringValue ("value2" )},
78
94
},
79
- expected : []Comparable {
80
- mockComparable {key : "key1" , value : data .NewStringValue ("value1_changed" )},
95
+ expected : []* mockComparable {
96
+ {key : "key1" , value : data .NewStringValue ("value1_changed" )},
81
97
},
82
- wantChanged : []Comparable {
83
- mockComparable {key : "key1" , value : data .NewStringValue ("value1_changed" )},
98
+ wantChanged : []* mockComparable {
99
+ {key : "key1" , value : data .NewStringValue ("value1_changed" )},
84
100
},
85
- wantStale : []Comparable {
86
- mockComparable {key : "key2" , value : data .NewStringValue ("value2" )},
101
+ wantStale : []* mockComparable {
102
+ {key : "key2" , value : data .NewStringValue ("value2" )},
87
103
},
88
104
},
89
105
}
90
106
91
107
for _ , tt := range tests {
92
108
t .Run (tt .name , func (t * testing.T ) {
93
- gotChanged , gotStale := CompareResources (tt .existing , tt .expected )
94
- assert .Equal (t , tt .wantChanged , gotChanged )
95
- assert .Equal (t , tt .wantStale , gotStale )
109
+ gotChanged , gotStale := CompareResources (mockComparableToComparable ( tt .existing ), mockComparableToComparable ( tt .expected ) )
110
+ assert .Equal (t , tt .wantChanged , comparableToMockComparable ( gotChanged ) )
111
+ assert .Equal (t , tt .wantStale , comparableToMockComparable ( gotStale ) )
96
112
})
97
113
}
98
114
}
0 commit comments