add oldest and newest lease

This commit is contained in:
Hayden Parker
2016-07-17 13:24:32 -07:00
committed by Hayden
parent f1018eb8cc
commit 5420376339
2 changed files with 41 additions and 12 deletions

View File

@ -314,14 +314,15 @@ func (lease_set LeaseSet) Verify() error {
//
// Return the oldest date from all the Leases in the LeaseSet.
//
func (lease_set LeaseSet) LatestExpiration() (oldest Date, err error) {
func (lease_set LeaseSet) NewestExpiration() (oldest Date, err error) {
leases, err := lease_set.Leases()
if err != nil {
return
}
oldest = Date{0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
for _, lease := range leases {
date := lease.Date()
if Integer(oldest[:]) < Integer(date[:]) {
if date.Time().After(oldest.Time()) {
oldest = date
}
}
@ -331,15 +332,15 @@ func (lease_set LeaseSet) LatestExpiration() (oldest Date, err error) {
//
// Return the oldest date from all the Leases in the LeaseSet.
//
func (lease_set LeaseSet) EarliestExpiration() (earliest Date, err error) {
func (lease_set LeaseSet) OldestExpiration() (earliest Date, err error) {
leases, err := lease_set.Leases()
if err != nil {
return
}
earliest = Date{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
earliest = Date{0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
for _, lease := range leases {
date := lease.Date()
if Integer(earliest[:]) > Integer(date[:]) {
if date.Time().Before(earliest.Time()) {
earliest = date
}
}

View File

@ -32,10 +32,13 @@ func buildLease(n int) []byte {
data := make([]byte, 0)
for i := 0; i < n; i++ {
lease := make([]byte, LEASE_SIZE)
for i := range lease {
lease[i] = byte(i)
for p := range lease {
lease[p] = byte(i)
}
// set incrementing date
for q := LEASE_SIZE - 9; q < LEASE_SIZE-1; q++ {
lease[q] = 0x00
}
lease[LEASE_SIZE-1] = byte(i + 10)
data = append(data, lease...)
}
return data
@ -140,9 +143,13 @@ func TestLeasesHaveCorrectData(t *testing.T) {
if assert.Nil(err) {
for i := 0; i < count; i++ {
lease := make([]byte, LEASE_SIZE)
for i := range lease {
lease[i] = byte(i)
for p := range lease {
lease[p] = byte(i)
}
for q := LEASE_SIZE - 9; q < LEASE_SIZE-1; q++ {
lease[q] = 0x00
}
lease[LEASE_SIZE-1] = byte(i + 10)
assert.Equal(
0,
bytes.Compare(
@ -171,5 +178,26 @@ func TestSignatureIsCorrect(t *testing.T) {
}
}
func TestLatestExpirationIsCorrect(t *testing.T) {}
func TestEarliestExpirationIsCorrect(t *testing.T) {}
func TestNewestExpirationIsCorrect(t *testing.T) {
assert := assert.New(t)
lease_set := buildFullLeaseSet(5)
latest, err := lease_set.NewestExpiration()
assert.Nil(err)
assert.Equal(
Date{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, byte(4 + 10)},
latest,
)
}
func TestOldestExpirationIsCorrect(t *testing.T) {
assert := assert.New(t)
lease_set := buildFullLeaseSet(5)
latest, err := lease_set.OldestExpiration()
assert.Nil(err)
assert.Equal(
Date{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a},
latest,
)
}