...

Source file src/github.com/launchdarkly/ccache/bucket_test.go

Documentation: github.com/launchdarkly/ccache

     1  package ccache
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	. "github.com/karlseguin/expect"
     8  )
     9  
    10  type BucketTests struct {
    11  }
    12  
    13  func Test_Bucket(t *testing.T) {
    14  	Expectify(new(BucketTests), t)
    15  }
    16  
    17  func (_ *BucketTests) GetMissFromBucket() {
    18  	bucket := testBucket()
    19  	Expect(bucket.get("invalid")).To.Equal(nil)
    20  }
    21  
    22  func (_ *BucketTests) GetHitFromBucket() {
    23  	bucket := testBucket()
    24  	item := bucket.get("power")
    25  	assertValue(item, "9000")
    26  }
    27  
    28  func (_ *BucketTests) DeleteItemFromBucket() {
    29  	bucket := testBucket()
    30  	bucket.delete("power")
    31  	Expect(bucket.get("power")).To.Equal(nil)
    32  }
    33  
    34  func (_ *BucketTests) SetsANewBucketItem() {
    35  	bucket := testBucket()
    36  	item, existing := bucket.set("spice", TestValue("flow"), time.Minute, false)
    37  	assertValue(item, "flow")
    38  	item = bucket.get("spice")
    39  	assertValue(item, "flow")
    40  	Expect(existing).To.Equal(nil)
    41  }
    42  
    43  func (_ *BucketTests) SetsAnExistingItem() {
    44  	bucket := testBucket()
    45  	item, existing := bucket.set("power", TestValue("9001"), time.Minute, false)
    46  	assertValue(item, "9001")
    47  	item = bucket.get("power")
    48  	assertValue(item, "9001")
    49  	assertValue(existing, "9000")
    50  }
    51  
    52  func testBucket() *bucket {
    53  	b := &bucket{lookup: make(map[string]*Item)}
    54  	b.lookup["power"] = &Item{
    55  		key:   "power",
    56  		value: TestValue("9000"),
    57  	}
    58  	return b
    59  }
    60  
    61  func assertValue(item *Item, expected string) {
    62  	value := item.value.(TestValue)
    63  	Expect(value).To.Equal(TestValue(expected))
    64  }
    65  
    66  type TestValue string
    67  
    68  func (v TestValue) Expires() time.Time {
    69  	return time.Now()
    70  }
    71  

View as plain text