github.com/bhameyie/otto@v0.2.1-0.20160406174117-16052efa52ec/helper/localaddr/ip_queue_test.go (about)

     1  package localaddr
     2  
     3  import (
     4  	"container/heap"
     5  	"net"
     6  	"testing"
     7  	"time"
     8  )
     9  
    10  func TestIPQueue_impl(t *testing.T) {
    11  	var _ heap.Interface = new(ipQueue)
    12  
    13  	now := time.Now().UTC()
    14  	q := ipQueue(make([]*ipEntry, 0))
    15  	q = append(q, &ipEntry{LeaseTime: now, Value: net.ParseIP("1.2.3.4")})
    16  	q = append(q, &ipEntry{LeaseTime: now.Add(-1 * time.Minute), Value: net.ParseIP("2.3.4.5")})
    17  	q = append(q, &ipEntry{LeaseTime: now.Add(-3 * time.Minute), Value: net.ParseIP("1.2.3.5")})
    18  	q = append(q, &ipEntry{LeaseTime: now.Add(-2 * time.Minute), Value: net.ParseIP("1.2.3.6")})
    19  
    20  	heap.Init(&q)
    21  	actual := heap.Pop(&q)
    22  	if actual.(*ipEntry).Value.String() != "1.2.3.5" {
    23  		t.Fatalf("bad: %s", actual)
    24  	}
    25  }