logical: lease tests
This commit is contained in:
parent
5eff7f1b57
commit
7139ad427e
|
@ -32,18 +32,22 @@ func (l *LeaseOptions) LeaseEnabled() bool {
|
|||
|
||||
// LeaseTotal is the total lease time including the grace period
|
||||
func (l *LeaseOptions) LeaseTotal() time.Duration {
|
||||
if l.Lease == 0 {
|
||||
if l.Lease <= 0 {
|
||||
return 0
|
||||
}
|
||||
|
||||
if l.LeaseGracePeriod < 0 {
|
||||
return l.Lease
|
||||
}
|
||||
|
||||
return l.Lease + l.LeaseGracePeriod
|
||||
}
|
||||
|
||||
// ExpirationTime computes the time until expiration including the grace period
|
||||
func (l *LeaseOptions) ExpirationTime() time.Time {
|
||||
var expireTime time.Time
|
||||
if l.Lease > 0 {
|
||||
leaseTotal := l.Lease + l.LeaseGracePeriod
|
||||
expireTime = l.LeaseIssue.UTC().Add(leaseTotal)
|
||||
if !l.LeaseIssue.IsZero() && l.Lease > 0 {
|
||||
expireTime = l.LeaseIssue.UTC().Add(l.LeaseTotal())
|
||||
}
|
||||
|
||||
return expireTime
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
package logical
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestLeaseOptionsLeaseTotal(t *testing.T) {
|
||||
var l LeaseOptions
|
||||
l.Lease = 1 * time.Hour
|
||||
|
||||
actual := l.LeaseTotal()
|
||||
expected := l.Lease
|
||||
if actual != expected {
|
||||
t.Fatalf("bad: %s", actual)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLeaseOptionsLeaseTotal_grace(t *testing.T) {
|
||||
var l LeaseOptions
|
||||
l.Lease = 1 * time.Hour
|
||||
l.LeaseGracePeriod = 30 * time.Minute
|
||||
|
||||
actual := l.LeaseTotal()
|
||||
expected := l.Lease + l.LeaseGracePeriod
|
||||
if actual != expected {
|
||||
t.Fatalf("bad: %s", actual)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLeaseOptionsLeaseTotal_negLease(t *testing.T) {
|
||||
var l LeaseOptions
|
||||
l.Lease = -1 * 1 * time.Hour
|
||||
l.LeaseGracePeriod = 30 * time.Minute
|
||||
|
||||
actual := l.LeaseTotal()
|
||||
expected := time.Duration(0)
|
||||
if actual != expected {
|
||||
t.Fatalf("bad: %s", actual)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLeaseOptionsLeaseTotal_negGrace(t *testing.T) {
|
||||
var l LeaseOptions
|
||||
l.Lease = 1 * time.Hour
|
||||
l.LeaseGracePeriod = -1 * 30 * time.Minute
|
||||
|
||||
actual := l.LeaseTotal()
|
||||
expected := l.Lease
|
||||
if actual != expected {
|
||||
t.Fatalf("bad: %s", actual)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLeaseOptionsExpirationTime(t *testing.T) {
|
||||
var l LeaseOptions
|
||||
l.Lease = 1 * time.Hour
|
||||
l.LeaseIssue = time.Now().UTC()
|
||||
|
||||
actual := l.ExpirationTime()
|
||||
expected := l.LeaseIssue.Add(l.Lease)
|
||||
if !actual.Equal(expected) {
|
||||
t.Fatalf("bad: %s", actual)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLeaseOptionsExpirationTime_grace(t *testing.T) {
|
||||
var l LeaseOptions
|
||||
l.Lease = 1 * time.Hour
|
||||
l.LeaseGracePeriod = 30 * time.Minute
|
||||
l.LeaseIssue = time.Now().UTC()
|
||||
|
||||
actual := l.ExpirationTime()
|
||||
expected := l.LeaseIssue.Add(l.Lease + l.LeaseGracePeriod)
|
||||
if !actual.Equal(expected) {
|
||||
t.Fatalf("bad: %s", actual)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLeaseOptionsExpirationTime_graceNegative(t *testing.T) {
|
||||
var l LeaseOptions
|
||||
l.Lease = 1 * time.Hour
|
||||
l.LeaseGracePeriod = -1 * 30 * time.Minute
|
||||
l.LeaseIssue = time.Now().UTC()
|
||||
|
||||
actual := l.ExpirationTime()
|
||||
expected := l.LeaseIssue.Add(l.Lease)
|
||||
if !actual.Equal(expected) {
|
||||
t.Fatalf("bad: %s", actual)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLeaseOptionsExpirationTime_noLease(t *testing.T) {
|
||||
var l LeaseOptions
|
||||
if !l.ExpirationTime().IsZero() {
|
||||
t.Fatal("should be zero")
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue