Skip to content

Commit 32f05d6

Browse files
Change incremental_duration to use black box testing
1 parent 06b70d8 commit 32f05d6

File tree

2 files changed

+33
-31
lines changed

2 files changed

+33
-31
lines changed

pkg/utils/incremental_duration.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,35 @@ import (
77

88
// IncrementalDuration handles a time.Duration with max limits.
99
type IncrementalDuration struct {
10-
duration time.Duration
11-
initialDuration time.Duration
12-
maxDuration time.Duration
10+
Duration time.Duration
11+
InitialDuration time.Duration
12+
MaxDuration time.Duration
1313
multiplier float64
1414
}
1515

1616
// NewIncrementalDuration returns an IncrementalDuration object with initialized values.
1717
func NewIncrementalDuration(duration, maxDuration time.Duration, multiplier float64) *IncrementalDuration {
1818
return &IncrementalDuration{
19-
duration: duration,
20-
initialDuration: duration,
21-
maxDuration: maxDuration,
19+
Duration: duration,
20+
InitialDuration: duration,
21+
MaxDuration: maxDuration,
2222
multiplier: multiplier,
2323
}
2424
}
2525

2626
// Reset sets current duration to initial duration.
2727
func (id *IncrementalDuration) Reset() {
28-
id.duration = id.initialDuration
28+
id.Duration = id.InitialDuration
2929
}
3030

31-
func (id *IncrementalDuration) increaseDuration() {
32-
id.duration = time.Duration(math.Min(id.multiplier*float64(id.duration), float64(id.maxDuration)))
31+
func (id *IncrementalDuration) IncreaseDuration() {
32+
id.Duration = time.Duration(math.Min(id.multiplier*float64(id.Duration), float64(id.MaxDuration)))
3333
}
3434

3535
// NextTimeout returns a timeout channel based on current duration.
3636
func (id *IncrementalDuration) NextTimeout() <-chan time.Time {
37-
ch := time.After(id.duration)
38-
id.increaseDuration()
37+
ch := time.After(id.Duration)
38+
id.IncreaseDuration()
3939

4040
return ch
4141
}
Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
package utils
1+
package utils_test
22

33
import (
44
"testing"
55
"time"
6+
7+
"github.com/ansible/receptor/pkg/utils"
68
)
79

810
const newIncrementalDurationMessage string = "NewIncrementalDuration() = %v, want %v"
911

1012
func TestNewIncrementalDuration(t *testing.T) {
1113
type args struct {
12-
duration time.Duration
14+
Duration time.Duration
1315
maxDuration time.Duration
1416
multiplier float64
1517
}
@@ -22,7 +24,7 @@ func TestNewIncrementalDuration(t *testing.T) {
2224
{
2325
name: "NewIncrementalDuration1",
2426
args: args{
25-
duration: 1 * time.Second,
27+
Duration: 1 * time.Second,
2628
maxDuration: 10 * time.Second,
2729
multiplier: 2.0,
2830
},
@@ -31,52 +33,52 @@ func TestNewIncrementalDuration(t *testing.T) {
3133
}
3234
for _, tt := range tests {
3335
t.Run(tt.name, func(t *testing.T) {
34-
if got := NewIncrementalDuration(tt.args.duration, tt.args.maxDuration, tt.args.multiplier); got.duration != tt.want {
36+
if got := utils.NewIncrementalDuration(tt.args.Duration, tt.args.maxDuration, tt.args.multiplier); got.Duration != tt.want {
3537
t.Errorf(newIncrementalDurationMessage, got, tt.want)
3638
}
3739
})
3840
}
3941
}
4042

4143
func TestIncrementalDurationReset(t *testing.T) {
42-
delay := NewIncrementalDuration(1*time.Second, 10*time.Second, 2.0)
44+
delay := utils.NewIncrementalDuration(1*time.Second, 10*time.Second, 2.0)
4345
want1 := 1 * time.Second
44-
if delay.duration != want1 {
45-
t.Errorf(newIncrementalDurationMessage, delay.duration, want1)
46+
if delay.Duration != want1 {
47+
t.Errorf(newIncrementalDurationMessage, delay.Duration, want1)
4648
}
4749
<-delay.NextTimeout()
4850

4951
want2 := 2 * time.Second
50-
if delay.duration != want2 {
51-
t.Errorf(newIncrementalDurationMessage, delay.duration, want2)
52+
if delay.Duration != want2 {
53+
t.Errorf(newIncrementalDurationMessage, delay.Duration, want2)
5254
}
5355
delay.Reset()
54-
if delay.duration != want1 {
55-
t.Errorf("Reset() = %v, want %v", delay.duration, want1)
56+
if delay.Duration != want1 {
57+
t.Errorf("Reset() = %v, want %v", delay.Duration, want1)
5658
}
5759
}
5860

5961
func TestIncrementalDurationincreaseDuration(t *testing.T) {
60-
delay := NewIncrementalDuration(1*time.Second, 10*time.Second, 2.0)
62+
delay := utils.NewIncrementalDuration(1*time.Second, 10*time.Second, 2.0)
6163
for i := 0; i <= 10; i++ {
62-
delay.increaseDuration()
64+
delay.IncreaseDuration()
6365
}
6466
want10 := 10 * time.Second
65-
if delay.duration != want10 {
66-
t.Errorf("increaseDuration() = %v, want %v", delay.duration, want10)
67+
if delay.Duration != want10 {
68+
t.Errorf("increaseDuration() = %v, want %v", delay.Duration, want10)
6769
}
6870
}
6971

7072
func TestIncrementalDurationNextTimeout(t *testing.T) {
71-
delay := NewIncrementalDuration(1*time.Second, 10*time.Second, 2.0)
73+
delay := utils.NewIncrementalDuration(1*time.Second, 10*time.Second, 2.0)
7274
want1 := 1 * time.Second
73-
if delay.duration != want1 {
74-
t.Errorf(newIncrementalDurationMessage, delay.duration, want1)
75+
if delay.Duration != want1 {
76+
t.Errorf(newIncrementalDurationMessage, delay.Duration, want1)
7577
}
7678
<-delay.NextTimeout()
7779

7880
want2 := 2 * time.Second
79-
if delay.duration != want2 {
80-
t.Errorf("NextTimeout() = %v, want %v", delay.duration, want2)
81+
if delay.Duration != want2 {
82+
t.Errorf("NextTimeout() = %v, want %v", delay.Duration, want2)
8183
}
8284
}

0 commit comments

Comments
 (0)