Add Solr input plugin (#2019)
This commit is contained in:
committed by
Daniel Nelson
parent
47d013132a
commit
493af043d3
62
plugins/inputs/solr/solr_test.go
Normal file
62
plugins/inputs/solr/solr_test.go
Normal file
@@ -0,0 +1,62 @@
|
||||
package solr
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/influxdata/telegraf/testutil"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestGatherStats(t *testing.T) {
|
||||
ts := createMockServer()
|
||||
solr := NewSolr()
|
||||
solr.Servers = []string{ts.URL}
|
||||
var acc testutil.Accumulator
|
||||
require.NoError(t, solr.Gather(&acc))
|
||||
|
||||
acc.AssertContainsTaggedFields(t, "solr_admin",
|
||||
solrAdminMainCoreStatusExpected,
|
||||
map[string]string{"core": "main"})
|
||||
|
||||
acc.AssertContainsTaggedFields(t, "solr_admin",
|
||||
solrAdminCore1StatusExpected,
|
||||
map[string]string{"core": "core1"})
|
||||
|
||||
acc.AssertContainsTaggedFields(t, "solr_core",
|
||||
solrCoreExpected,
|
||||
map[string]string{"core": "main", "handler": "searcher"})
|
||||
|
||||
acc.AssertContainsTaggedFields(t, "solr_queryhandler",
|
||||
solrQueryHandlerExpected,
|
||||
map[string]string{"core": "main", "handler": "org.apache.solr.handler.component.SearchHandler"})
|
||||
|
||||
acc.AssertContainsTaggedFields(t, "solr_updatehandler",
|
||||
solrUpdateHandlerExpected,
|
||||
map[string]string{"core": "main", "handler": "updateHandler"})
|
||||
|
||||
acc.AssertContainsTaggedFields(t, "solr_cache",
|
||||
solrCacheExpected,
|
||||
map[string]string{"core": "main", "handler": "filterCache"})
|
||||
}
|
||||
|
||||
func createMockServer() *httptest.Server {
|
||||
return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
if strings.Contains(r.URL.Path, "/solr/admin/cores") {
|
||||
w.WriteHeader(http.StatusOK)
|
||||
fmt.Fprintln(w, statusResponse)
|
||||
} else if strings.Contains(r.URL.Path, "solr/main/admin") {
|
||||
w.WriteHeader(http.StatusOK)
|
||||
fmt.Fprintln(w, mBeansMainResponse)
|
||||
} else if strings.Contains(r.URL.Path, "solr/core1/admin") {
|
||||
w.WriteHeader(http.StatusOK)
|
||||
fmt.Fprintln(w, mBeansCore1Response)
|
||||
} else {
|
||||
w.WriteHeader(http.StatusNotFound)
|
||||
fmt.Fprintln(w, "nope")
|
||||
}
|
||||
}))
|
||||
}
|
||||
Reference in New Issue
Block a user