package tests

import (
	"testing"

	"github.com/pingcap/dbaas/billing2/config"
	"github.com/pingcap/dbaas/billing2/handler/cachehandler"
	"github.com/shopspring/decimal"
	"github.com/stretchr/testify/suite"
)

type RedisCacheTestSuite struct {
	suite.Suite
}

func TestRedisCacheSuite(t *testing.T) {
	suite.Run(t, new(RedisCacheTestSuite))
}

func (s *RedisCacheTestSuite) TestRedisSetAndGetCache() {
	s.T().Skip("ft test")
	config.Get().Set(config.RedisHost, "localhost:6379")
	cachehandler.Init()
	cache := cachehandler.Get()
	cache.Delete("test_cache", 0, "0")
	test_value := &decimal.Zero
	result := decimal.NewFromInt(1)

	found := cache.Get("test_cache", &result, 0, "0")

	s.False(found)

	cache.Set("test_cache", test_value, 0, "0")
	found = cache.Get("test_cache", &result, 0, "1")
	s.False(found)

	found = cache.Get("test_cache", &result, 0, "0")
	s.True(found)

	s.Zero(result.Cmp(decimal.Zero))

	cache.Delete("test_cache", 0, "0")
	found = cache.Get("test_cache", &result, 0, "0")
	s.False(found)
}
