github.com/dahs81/otto@v0.2.1-0.20160126165905-6400716cf085/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 }