github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/karlseguin/ccache/item_test.go (about) 1 package ccache 2 3 import ( 4 . "github.com/karlseguin/expect" 5 "testing" 6 "time" 7 ) 8 9 type ItemTests struct{} 10 11 func Test_Item(t *testing.T) { 12 Expectify(new(ItemTests), t) 13 } 14 15 func (_ *ItemTests) Promotability() { 16 item := &Item{promotions: 4} 17 Expect(item.shouldPromote(5)).To.Equal(true) 18 Expect(item.shouldPromote(5)).To.Equal(false) 19 } 20 21 func (_ *ItemTests) Expired() { 22 now := time.Now().Unix() 23 item1 := &Item{expires: now + 1} 24 item2 := &Item{expires: now - 1} 25 Expect(item1.Expired()).To.Equal(false) 26 Expect(item2.Expired()).To.Equal(true) 27 } 28 29 func (_ *ItemTests) TTL() { 30 now := time.Now().Unix() 31 item1 := &Item{expires: now + 10} 32 item2 := &Item{expires: now - 10} 33 Expect(item1.TTL()).To.Equal(time.Second * 10) 34 Expect(item2.TTL()).To.Equal(time.Second * -10) 35 } 36 37 func (_ *ItemTests) Expires() { 38 now := time.Now().Unix() 39 item := &Item{expires: now + 10} 40 Expect(item.Expires().Unix()).To.Equal(now + 10) 41 } 42 43 func (_ *ItemTests) Extend() { 44 item := &Item{expires: time.Now().Unix() + 10} 45 item.Extend(time.Minute * 2) 46 Expect(item.Expires().Unix()).To.Equal(time.Now().Unix() + 120) 47 }