add opensearch test (#5050)

Signed-off-by: chengdehao <dehaocheng@kubesphere.io>

Co-authored-by: chengdehao <dehaocheng@kubesphere.io>
This commit is contained in:
Elon Cheng
2022-07-11 10:31:42 -05:00
committed by GitHub
parent 5e2f41f0b9
commit 7a41af7c0c
4 changed files with 404 additions and 0 deletions

View File

@@ -43,6 +43,10 @@ func TestNewClient(t *testing.T) {
fakeResp: "es7_detect_version_major_200.json",
expected: ElasticV7,
},
{
fakeResp: "opensearchv2_detect_version_major_200.json",
expected: OpenSearchV2,
},
}
for i, test := range tests {
@@ -107,6 +111,50 @@ func TestClient_Search(t *testing.T) {
}
}
func TestOpensearchClient_Search(t *testing.T) {
var tests = []struct {
fakeVersion string
fakeResp string
fakeCode int
expected string
expectedErr string
}{
{
fakeVersion: OpenSearchV2,
fakeResp: "opensearchv2_search_200.json",
fakeCode: http.StatusOK,
expected: "opensearchv2_search_200_result.json",
},
}
for i, test := range tests {
t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
var expected Response
err := JsonFromFile(test.expected, &expected)
if err != nil {
t.Fatal(err)
}
srv := mockElasticsearchService("/", test.fakeResp, test.fakeCode)
defer srv.Close()
c, err := NewClient(srv.URL, false, "", "", "ks-logstash", test.fakeVersion)
if err != nil {
t.Fatalf("create client error, %s", err)
}
result, err := c.Search(query.NewBuilder(), time.Time{}, time.Now(), false)
if test.expectedErr != "" {
if diff := cmp.Diff(fmt.Sprint(err), test.expectedErr); diff != "" {
t.Fatalf("%T differ (-got, +want): %s", test.expectedErr, diff)
}
}
if diff := cmp.Diff(result, &expected); diff != "" {
t.Fatalf("%T differ (-got, +want): %s", expected, diff)
}
})
}
}
func mockElasticsearchService(pattern, fakeResp string, fakeCode int) *httptest.Server {
mux := http.NewServeMux()
mux.HandleFunc(pattern, func(res http.ResponseWriter, req *http.Request) {