File: incremental_duration_test.go

package info (click to toggle)
receptor 1.5.5-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 2,772 kB
  • sloc: python: 1,643; makefile: 305; sh: 174
file content (84 lines) | stat: -rw-r--r-- 2,098 bytes parent folder | download | duplicates (2)
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
82
83
84
package utils_test

import (
	"testing"
	"time"

	"github.com/ansible/receptor/pkg/utils"
)

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

func TestNewIncrementalDuration(t *testing.T) {
	type args struct {
		Duration    time.Duration
		maxDuration time.Duration
		multiplier  float64
	}

	tests := []struct {
		name string
		args args
		want time.Duration
	}{
		{
			name: "NewIncrementalDuration1",
			args: args{
				Duration:    1 * time.Second,
				maxDuration: 10 * time.Second,
				multiplier:  2.0,
			},
			want: 1 * time.Second,
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			if got := utils.NewIncrementalDuration(tt.args.Duration, tt.args.maxDuration, tt.args.multiplier); got.Duration != tt.want {
				t.Errorf(newIncrementalDurationMessage, got, tt.want)
			}
		})
	}
}

func TestIncrementalDurationReset(t *testing.T) {
	delay := utils.NewIncrementalDuration(1*time.Second, 10*time.Second, 2.0)
	want1 := 1 * time.Second
	if delay.Duration != want1 {
		t.Errorf(newIncrementalDurationMessage, delay.Duration, want1)
	}
	<-delay.NextTimeout()

	want2 := 2 * time.Second
	if delay.Duration != want2 {
		t.Errorf(newIncrementalDurationMessage, delay.Duration, want2)
	}
	delay.Reset()
	if delay.Duration != want1 {
		t.Errorf("Reset() = %v, want %v", delay.Duration, want1)
	}
}

func TestIncrementalDurationincreaseDuration(t *testing.T) {
	delay := utils.NewIncrementalDuration(1*time.Second, 10*time.Second, 2.0)
	for i := 0; i <= 10; i++ {
		delay.IncreaseDuration()
	}
	want10 := 10 * time.Second
	if delay.Duration != want10 {
		t.Errorf("increaseDuration() = %v, want %v", delay.Duration, want10)
	}
}

func TestIncrementalDurationNextTimeout(t *testing.T) {
	delay := utils.NewIncrementalDuration(1*time.Second, 10*time.Second, 2.0)
	want1 := 1 * time.Second
	if delay.Duration != want1 {
		t.Errorf(newIncrementalDurationMessage, delay.Duration, want1)
	}
	<-delay.NextTimeout()

	want2 := 2 * time.Second
	if delay.Duration != want2 {
		t.Errorf("NextTimeout() = %v, want %v", delay.Duration, want2)
	}
}