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  }