package cache

import (
	"testing"

	"github.com/onsi/gomega"

	_const "github.com/pingcap-inc/clinic/pkg/const"
)

func Test_Processed(t *testing.T) {
	g := gomega.NewWithT(t)

	// uuid := "Test_Processed"

	TaskStatusCache.Init(TaskID("Test_Processed", _const.MetricTask))

	totalSize := 0
	for i := 0; i < 100; i++ {
		TaskStatusCache.TotalIncr(TaskID("Test_Processed", _const.MetricTask), int64(i))
		totalSize += i
	}

	for i := 0; i < 10; i++ {
		TaskStatusCache.Done(TaskID("Test_Processed", _const.MetricTask), int64(100))
	}

	processed, ok := TaskStatusCache.Processed(TaskID("Test_Processed", _const.MetricTask))
	g.Expect(ok).To(gomega.BeTrue())
	g.Expect(processed).To(gomega.Equal(21))

	_, ok = TaskStatusCache.Processed(TaskID("Test_Processed", _const.LogTask))
	g.Expect(ok).To(gomega.BeFalse())
}
