91 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package cache
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/micro/go-micro/v3/store"
 | |
| 	"github.com/micro/go-micro/v3/store/memory"
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| )
 | |
| 
 | |
| func TestRead(t *testing.T) {
 | |
| 	cf := NewStore(memory.NewStore())
 | |
| 	cf.Init()
 | |
| 	cfInt := cf.(*cache)
 | |
| 
 | |
| 	_, err := cf.Read("key1")
 | |
| 	assert.Error(t, err, "Unexpected record")
 | |
| 	cfInt.b.Write(&store.Record{
 | |
| 		Key:   "key1",
 | |
| 		Value: []byte("foo"),
 | |
| 	})
 | |
| 	recs, err := cf.Read("key1")
 | |
| 	assert.NoError(t, err)
 | |
| 	assert.Len(t, recs, 1, "Expected a record to be pulled from file store")
 | |
| 	recs, err = cfInt.m.Read("key1")
 | |
| 	assert.NoError(t, err)
 | |
| 	assert.Len(t, recs, 1, "Expected a memory store to be populatedfrom file store")
 | |
| 
 | |
| }
 | |
| 
 | |
| func TestWrite(t *testing.T) {
 | |
| 	cf := NewStore(memory.NewStore())
 | |
| 	cf.Init()
 | |
| 	cfInt := cf.(*cache)
 | |
| 
 | |
| 	cf.Write(&store.Record{
 | |
| 		Key:   "key1",
 | |
| 		Value: []byte("foo"),
 | |
| 	})
 | |
| 	recs, _ := cfInt.m.Read("key1")
 | |
| 	assert.Len(t, recs, 1, "Expected a record in the memory store")
 | |
| 	recs, _ = cfInt.b.Read("key1")
 | |
| 	assert.Len(t, recs, 1, "Expected a record in the file store")
 | |
| 
 | |
| }
 | |
| 
 | |
| func TestDelete(t *testing.T) {
 | |
| 	cf := NewStore(memory.NewStore())
 | |
| 	cf.Init()
 | |
| 	cfInt := cf.(*cache)
 | |
| 
 | |
| 	cf.Write(&store.Record{
 | |
| 		Key:   "key1",
 | |
| 		Value: []byte("foo"),
 | |
| 	})
 | |
| 	recs, _ := cfInt.m.Read("key1")
 | |
| 	assert.Len(t, recs, 1, "Expected a record in the memory store")
 | |
| 	recs, _ = cfInt.b.Read("key1")
 | |
| 	assert.Len(t, recs, 1, "Expected a record in the file store")
 | |
| 	cf.Delete("key1")
 | |
| 
 | |
| 	_, err := cfInt.m.Read("key1")
 | |
| 	assert.Error(t, err, "Expected no records in memory store")
 | |
| 	_, err = cfInt.b.Read("key1")
 | |
| 	assert.Error(t, err, "Expected no records in file store")
 | |
| 
 | |
| }
 | |
| 
 | |
| func TestList(t *testing.T) {
 | |
| 	cf := NewStore(memory.NewStore())
 | |
| 	cf.Init()
 | |
| 	cfInt := cf.(*cache)
 | |
| 
 | |
| 	keys, err := cf.List()
 | |
| 	assert.NoError(t, err)
 | |
| 	assert.Len(t, keys, 0)
 | |
| 	cfInt.b.Write(&store.Record{
 | |
| 		Key:   "key1",
 | |
| 		Value: []byte("foo"),
 | |
| 	})
 | |
| 
 | |
| 	cfInt.b.Write(&store.Record{
 | |
| 		Key:   "key2",
 | |
| 		Value: []byte("foo"),
 | |
| 	})
 | |
| 	keys, err = cf.List()
 | |
| 	assert.NoError(t, err)
 | |
| 	assert.Len(t, keys, 2)
 | |
| 
 | |
| }
 |