|
| 1 | +package sls |
| 2 | + |
| 3 | +import ( |
| 4 | + "fmt" |
| 5 | + "github.com/stretchr/testify/suite" |
| 6 | + "os" |
| 7 | + "testing" |
| 8 | + "time" |
| 9 | +) |
| 10 | + |
| 11 | +func TestMetricStore(t *testing.T) { |
| 12 | + suite.Run(t, new(MetricStoreTestSuite)) |
| 13 | +} |
| 14 | + |
| 15 | +type MetricStoreTestSuite struct { |
| 16 | + suite.Suite |
| 17 | + endpoint string |
| 18 | + projectName string |
| 19 | + metricStoreName string |
| 20 | + accessKeyID string |
| 21 | + accessKeySecret string |
| 22 | + ttl int |
| 23 | + shardCnt int |
| 24 | + client *Client |
| 25 | +} |
| 26 | + |
| 27 | +func (m *MetricStoreTestSuite) SetupSuite() { |
| 28 | + m.endpoint = os.Getenv("LOG_TEST_ENDPOINT") |
| 29 | + m.accessKeyID = os.Getenv("LOG_TEST_ACCESS_KEY_ID") |
| 30 | + m.accessKeySecret = os.Getenv("LOG_TEST_ACCESS_KEY_SECRET") |
| 31 | + suffix := time.Now().Unix() |
| 32 | + m.projectName = fmt.Sprintf("test-metric-store-%d", suffix) |
| 33 | + m.metricStoreName = "test" |
| 34 | + m.ttl = 30 |
| 35 | + m.shardCnt = 2 |
| 36 | + m.client = &Client{ |
| 37 | + Endpoint: m.endpoint, |
| 38 | + AccessKeyID: m.accessKeyID, |
| 39 | + AccessKeySecret: m.accessKeySecret, |
| 40 | + } |
| 41 | + _, err := m.client.CreateProject(m.projectName, "test metric store") |
| 42 | + m.Require().Nil(err) |
| 43 | + time.Sleep(time.Minute) |
| 44 | +} |
| 45 | + |
| 46 | +func (m *MetricStoreTestSuite) TearDownSuite() { |
| 47 | + err := m.client.DeleteProject(m.projectName) |
| 48 | + m.Require().Nil(err) |
| 49 | +} |
| 50 | + |
| 51 | +func (m *MetricStoreTestSuite) TestClient_CreateAndDeleteMetricStore() { |
| 52 | + ce := m.client.CreateMetricStore(m.projectName, m.metricStoreName, m.ttl, m.shardCnt) |
| 53 | + m.Require().Nil(ce) |
| 54 | + de := m.client.DeleteMetricStore(m.projectName, m.metricStoreName) |
| 55 | + m.Require().Nil(de) |
| 56 | +} |
| 57 | + |
| 58 | +func (m *MetricStoreTestSuite) TestClient_UpdateAndGetMetricStore() { |
| 59 | + ce := m.client.CreateMetricStore(m.projectName, m.metricStoreName, m.ttl, m.shardCnt) |
| 60 | + m.Require().Nil(ce) |
| 61 | + metricStore, ge := m.client.GetMetricStore(m.projectName, m.metricStoreName) |
| 62 | + m.Require().Nil(ge) |
| 63 | + m.Require().Equal(m.metricStoreName, metricStore.Name) |
| 64 | + m.Require().Equal(m.ttl, metricStore.TTL) |
| 65 | + m.Require().Equal(m.shardCnt, metricStore.ShardCount) |
| 66 | + m.Require().Equal("Metrics", metricStore.TelemetryType) |
| 67 | + |
| 68 | + ue := m.client.UpdateMetricStore(m.projectName, m.metricStoreName, 15) |
| 69 | + m.Require().Nil(ue) |
| 70 | + metricStore2, ge2 := m.client.GetMetricStore(m.projectName, m.metricStoreName) |
| 71 | + m.Require().Nil(ge2) |
| 72 | + m.Require().Equal(m.metricStoreName, metricStore2.Name) |
| 73 | + m.Require().Equal(15, metricStore2.TTL) |
| 74 | + m.Require().Equal("Metrics", metricStore.TelemetryType) |
| 75 | + de := m.client.DeleteMetricStore(m.projectName, m.metricStoreName) |
| 76 | + m.Require().Nil(de) |
| 77 | +} |
0 commit comments