package global

import (
	"encoding/json"
	"testing"
	"time"

	. "github.com/onsi/gomega"
)

func TestCoverage(t *testing.T) {
	g := NewGomegaWithT(t)
	trueAnser := `{"labels":{},"amount":0.000574231177675254,"unit":"","cost":0.000011,"resource_type":"","data_version":"","service_name":"Cloud Storage","description":"","location":"","start_time":"","end_time":""}`

	addr := &Item{}
	in := map[string]interface{}{"amount": 0.000574231177675254, "service_name": "Cloud Storage", "cost": 1.1e-05}
	err := Coverage(in, addr)
	g.Expect(err).To(BeNil())
	jsonStr, err := json.Marshal(addr)
	g.Expect(err).To(BeNil())
	g.Expect(trueAnser).To(Equal(string(jsonStr)))
}

func TestTimeFormatCheck(t *testing.T) {
	g := NewGomegaWithT(t)
	_, err := time.Parse(TIME_TEMPLATE, "2022-01-11 19:00:00")
	g.Expect(err).To(BeNil())

	_, err = time.Parse(TIME_TEMPLATE, "2022-01-11 19:00:00 UTC")
	g.Expect(err).NotTo(BeNil())
	t.Log(err)

	_, err = time.Parse(TIME_TEMPLATE, "2022-01-11Z19:00:00 UTC")
	g.Expect(err).NotTo(BeNil())
	t.Log(err)
}
