本文整理汇总了Golang中github.com/GeoNet/weft/wefttest.Request类的典型用法代码示例。如果您正苦于以下问题:Golang Request类的具体用法?Golang Request怎么用?Golang Request使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Request类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestTagAll
// all tags as a protobuf
func TestTagAll(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/tag", Accept: "application/x-protobuf"}
var b []byte
var err error
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
var tr mtrpb.TagResult
if err = proto.Unmarshal(b, &tr); err != nil {
t.Error(err)
}
if len(tr.Result) != 6 {
t.Errorf("expected 6 tags got %d", len(tr.Result))
}
if tr.Result[0].Tag != "DAGG" {
t.Errorf("expected DAGG as the first tag got %s", tr.Result[0].Tag)
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:33,代码来源:routes_test.go
示例2: TestTag
// protobuf of field metrics and latencies for a single tag.
func TestTag(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/tag/TAUP", Accept: "application/x-protobuf"}
var b []byte
var err error
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
var tr mtrpb.TagSearchResult
if err = proto.Unmarshal(b, &tr); err != nil {
t.Error(err)
}
if tr.FieldMetric == nil {
t.Error("Got nil FieldMetric")
}
if tr.DataLatency == nil {
t.Error("Got nil DataLatency")
}
if tr.FieldState == nil {
t.Error("Got nil FieldState")
}
if tr.DataCompleteness == nil {
t.Error("Got nil DataCompleteness")
}
if tr.FieldMetric[0].DeviceID != "gps-taupoairport" {
t.Errorf("expected deviceID gps-taupoairport got %s", tr.FieldMetric[0].DeviceID)
}
if tr.DataLatency[0].SiteID != "TAUP" {
t.Errorf("expected siteID TAUP got %s", tr.DataLatency[0].SiteID)
}
if tr.FieldState[0].DeviceID != "gps-taupoairport" {
t.Errorf("expected deviceID gps-taupoairport got %s", tr.FieldState[0].DeviceID)
}
if tr.DataCompleteness[0].SiteID != "TAUP" {
t.Errorf("expected siteID TAUP got %s", tr.DataCompleteness[0].SiteID)
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:57,代码来源:routes_test.go
示例3: TestFieldMetricsThreshold
// protobuf of field metric threshold info.
func TestFieldMetricsThreshold(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/field/metric/threshold", Accept: "application/x-protobuf"}
var b []byte
var err error
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
var f mtrpb.FieldMetricThresholdResult
if err = proto.Unmarshal(b, &f); err != nil {
t.Error(err)
}
if f.Result == nil {
t.Error("got nil for /field/metric/threshold protobuf")
}
if len(f.Result) != 1 {
t.Error("expected 1 result.")
}
d := f.Result[0]
if d.DeviceID != "gps-taupoairport" {
t.Errorf("expected gps-taupoairport got %s", d.DeviceID)
}
if d.TypeID != "voltage" {
t.Errorf("expected voltage got %s", d.TypeID)
}
if d.Upper != 45000 {
t.Errorf("expected 45000 got %d", d.Upper)
}
if d.Lower != 12000 {
t.Errorf("expected 12000 got %d", d.Lower)
}
if d.Scale != 0.001 {
t.Errorf("expected 0.001 got %f", d.Scale)
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:55,代码来源:routes_test.go
示例4: TestDataSites
// protobuf of data sites.
func TestDataSites(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/data/site", Accept: "application/x-protobuf"}
var b []byte
var err error
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
var f mtrpb.DataSiteResult
if err = proto.Unmarshal(b, &f); err != nil {
t.Error(err)
}
if f.Result == nil {
t.Error("got nil for /data/site protobuf")
}
if len(f.Result) != 2 {
t.Error("expected 2 results.")
}
var found bool
for _, v := range f.Result {
if v.SiteID == "TAUP" {
found = true
if v.Latitude != -38.74270 {
t.Errorf("Data site TAUP got expected latitude -38.74270 got %f", v.Latitude)
}
if v.Longitude != 176.08100 {
t.Errorf("Data site TAUP got expected longitude 176.08100 got %f", v.Longitude)
}
}
}
if !found {
t.Error("Didn't find site TAUP")
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:53,代码来源:routes_test.go
示例5: TestFieldState
// protobuf for /field/state endpoint
func TestFieldState(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/field/state", Accept: "application/x-protobuf"}
var b []byte
var err error
// get the protobuf data back
if b, err = r.Do(testServer.URL); err != nil {
t.Fatal(err)
}
var dtr mtrpb.FieldStateResult
if err = proto.Unmarshal(b, &dtr); err != nil {
t.Fatal(err)
}
if dtr.Result == nil {
t.Fatal("got nil for /field/state protobuf")
}
if len(dtr.Result) != 1 {
t.Fatalf("expected 1 result, got %d.", len(dtr.Result))
}
res := dtr.Result[0]
if res.DeviceID != "gps-taupoairport" {
t.Errorf("expected gps-taupoairport got %s", res.DeviceID)
}
if res.TypeID != "mains" {
t.Errorf("expected mains got %s", res.TypeID)
}
if res.Seconds != 1431639630 {
t.Errorf("expected 1431639630 got %d", res.Seconds)
}
if res.Value != true {
t.Errorf("expected true got %s", res.Value)
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:52,代码来源:routes_test.go
示例6: TestFieldDevice
// protobuf of /model/device endpoint
func TestFieldDevice(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/field/device", Accept: "application/x-protobuf"}
var b []byte
var err error
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
var fdr mtrpb.FieldDeviceResult
if err = proto.Unmarshal(b, &fdr); err != nil {
t.Error(err)
}
// ftr.Result should be a slice of struct pointers
if fdr.Result == nil {
t.Error("got nil for /field/device protobuf")
}
if len(fdr.Result) != 1 {
t.Error("expected 1 result.")
}
d := fdr.Result[0]
if d.ModelID != "Trimble NetR9" {
t.Errorf("expected Trimble NetR9 got %s", d.ModelID)
}
if d.DeviceID != "gps-taupoairport" {
t.Errorf("expected gps-taupoairport got %s", d.DeviceID)
}
if d.Latitude != -38.7427 {
t.Errorf("expected -38.7427 got %s", d.Latitude)
}
if d.Longitude != 176.081 {
t.Errorf("expected 176.081 got %s", d.Longitude)
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:52,代码来源:routes_test.go
示例7: TestFieldStateTag
// protobuf for /field/state/tag endpoint
func TestFieldStateTag(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/field/state/tag", Method: "GET", Accept: "application/x-protobuf"}
var b []byte
var err error
// get the protobuf data back
if b, err = r.Do(testServer.URL); err != nil {
t.Fatal(err)
}
var tr mtrpb.FieldStateTagResult
if err = proto.Unmarshal(b, &tr); err != nil {
t.Fatal(err)
}
if tr.Result == nil {
t.Fatal("got nil for /field/state protobuf")
}
if len(tr.Result) != 1 {
t.Fatalf("expected 1 result, got %d.", len(tr.Result))
}
res := tr.Result[0]
if res.DeviceID != "gps-taupoairport" {
t.Errorf("expected gps-taupoairport got %s", res.DeviceID)
}
if res.TypeID != "mains" {
t.Errorf("expected mains got %s", res.TypeID)
}
if res.Tag != "TAUP" {
t.Errorf("expected TAUP got %s", res.Tag)
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:48,代码来源:routes_test.go
示例8: TestFieldMetricHistoryLog
// protobuf of metric history log info.
func TestFieldMetricHistoryLog(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/field/metric?deviceID=gps-taupoairport&typeID=voltage&resolution=minute", Accept: "application/x-protobuf"}
var b []byte
var err error
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
var f mtrpb.FieldMetricResult
if err = proto.Unmarshal(b, &f); err != nil {
t.Error(err)
}
if f.DeviceID != "gps-taupoairport" {
t.Errorf("expected gps-taupoairport got %s", f.DeviceID)
}
if f.TypeID != "voltage" {
t.Errorf("expected voltage got %s", f.TypeID)
}
if f.Upper != 45000 {
t.Errorf("expected 45000 got %d", f.Upper)
}
if f.Lower != 12000 {
t.Errorf("expected 12000 got %d", f.Lower)
}
if f.Scale != 0.001 {
t.Errorf("expected 12000 got %f", f.Scale)
}
// Not testing number of latency log
}
开发者ID:GeoNet,项目名称:mtr,代码行数:47,代码来源:routes_test.go
示例9: TestDataLatencyHistoryLog
// protobuf of latency history log info.
func TestDataLatencyHistoryLog(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/data/latency?siteID=TAUP&typeID=latency.strong&resolution=minute", Accept: "application/x-protobuf"}
var b []byte
var err error
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
var f mtrpb.DataLatencyResult
if err = proto.Unmarshal(b, &f); err != nil {
t.Error(err)
}
if f.SiteID != "TAUP" {
t.Errorf("expected TAUP got %s", f.SiteID)
}
if f.TypeID != "latency.strong" {
t.Errorf("expected latency.strong got %s", f.TypeID)
}
if f.Upper != 15000 {
t.Errorf("expected 15000 got %d", f.Upper)
}
if f.Lower != 12000 {
t.Errorf("expected 12000 got %d", f.Lower)
}
if f.Scale != 1.0 {
t.Errorf("expected 1.0 got %f", f.Scale)
}
// Not testing number of latency log
}
开发者ID:GeoNet,项目名称:mtr,代码行数:46,代码来源:routes_test.go
示例10: TestQuakesCount
func TestQuakesCount(t *testing.T) {
setup(t)
defer teardown()
//1. get all quakes
r := wt.Request{
Accept: CONTENT_TYPE_JSON,
URL: "/count?bbox=163.60840,-49.18170,182.98828,-32.28713",
}
b, err := r.Do(ts.URL)
if err != nil {
t.Error(err)
t.Error(string(b))
}
var qc QuakesCount
err = json.Unmarshal(b, &qc)
if err != nil {
log.Fatal(err)
}
if qc.Count != 3 {
t.Errorf("Found wrong number of quakes: %d", qc.Count)
}
//2. get only one quake
r = wt.Request{
Accept: CONTENT_TYPE_JSON,
URL: "/count?bbox=163.60840,-49.18170,182.98828,-32.28713&startdate=2010-1-1T00:00:00&enddate=2015-1-1T00:00:00",
}
b, err = r.Do(ts.URL)
if err != nil {
t.Error(err)
t.Error(string(b))
}
err = json.Unmarshal(b, &qc)
if err != nil {
t.Error(err)
}
if qc.Count != 1 {
t.Errorf("Found wrong number of quakes: %d", qc.Count)
}
//3. get 2 quakes
r = wt.Request{
Accept: CONTENT_TYPE_JSON,
URL: "/count?bbox=163.60840,-49.18170,182.98828,-32.28713&minmag=5",
}
b, err = r.Do(ts.URL)
if err != nil {
t.Error(err)
t.Error(string(b))
}
err = json.Unmarshal(b, &qc)
if err != nil {
t.Error(err)
}
if qc.Count != 2 {
t.Errorf("Found wrong number of quakes: %d", qc.Count)
}
}
开发者ID:GeoNet,项目名称:haz,代码行数:60,代码来源:quakes_test.go
示例11: TestQuakesGeoJson
func TestQuakesGeoJson(t *testing.T) {
setup(t)
defer teardown()
//1. get all quakes
r := wt.Request{URL: "/geojson?limit=100&bbox=163.60840,-49.18170,182.98828,-32.28713", Accept: CONTENT_TYPE_GeoJSON}
b, err := r.Do(ts.URL)
if err != nil {
t.Error(err)
t.Error(string(b))
}
var f GeoJsonFeatureCollection
err = json.Unmarshal(b, &f)
if err != nil {
log.Fatal(err)
}
if len(f.Features) != 3 {
t.Errorf("Found wrong number of features: %d", len(f.Features))
}
//2. get only one quake
r = wt.Request{URL: "/geojson?limit=100&bbox=163.60840,-49.18170,182.98828,-32.28713&startdate=2010-1-1T00:00:00&enddate=2015-1-1T00:00:00", Accept: CONTENT_TYPE_GeoJSON}
b, err = r.Do(ts.URL)
if err != nil {
t.Error(err)
t.Error(string(b))
}
err = json.Unmarshal(b, &f)
if err != nil {
log.Fatal(err)
}
if len(f.Features) != 1 {
t.Errorf("Found wrong number of features: %d", len(f.Features))
}
if f.Features[0].Properties.Publicid != "3366146" {
t.Errorf("Found wrong publicid: %s", f.Features[0].Properties.Publicid)
}
}
开发者ID:GeoNet,项目名称:haz,代码行数:42,代码来源:quakes_test.go
示例12: TestFieldType
// protobuf of /model/type endpoint
func TestFieldType(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/field/type", Accept: "application/x-protobuf"}
var b []byte
var err error
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
var ftr mtrpb.FieldTypeResult
if err = proto.Unmarshal(b, &ftr); err != nil {
t.Error(err)
}
// ftr.Result should be a slice of struct pointers
if ftr.Result == nil {
t.Error("got nil for /field/type protobuf")
}
if len(ftr.Result) != 12 {
t.Error("expected 12 results.")
}
if ftr.Result[0].TypeID != "centre" {
t.Errorf("expected centre got %s", ftr.Result[0].TypeID)
}
if ftr.Result[0].Display != "mV" {
t.Errorf("expected mV got %s", ftr.Result[0].Display)
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:42,代码来源:routes_test.go
示例13: TestGeoJSONFormat
func TestGeoJSONFormat(t *testing.T) {
setup(t)
defer teardown()
r := wt.Request{
ID: wt.L(),
Accept: CONTENT_TYPE_GeoJSON,
Content: CONTENT_TYPE_GeoJSON,
URL: "/geojson?limit=100&bbox=163.60840,-49.18170,182.98828,-32.28713&startdate=2000-1-1T00:00:00&enddate=2015-1-1T00:00:00",
}
b, err := r.Do(ts.URL)
if err != nil {
t.Error(err)
t.Error(string(b))
}
body := bytes.NewBuffer(b)
res, err := client.Post("http://geojsonlint.com/validate", "application/vnd.geo+json", body)
defer res.Body.Close()
if err != nil {
t.Errorf("Problem contacting geojsonlint for test %s", r.ID)
}
b, err = ioutil.ReadAll(res.Body)
if err != nil {
t.Errorf("Problem reading body from geojsonlint for test %s", r.ID)
}
var v valid
err = json.Unmarshal(b, &v)
if err != nil {
t.Errorf("Problem unmarshalling body from geojsonlint for test %s", r.ID)
}
if v.Status != "ok" {
t.Errorf("invalid geoJSON for test %s" + r.ID)
}
}
开发者ID:GeoNet,项目名称:haz,代码行数:40,代码来源:quakes_test.go
示例14: TestDataTypes
func TestDataTypes(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/data/type", Accept: "application/x-protobuf"}
var b []byte
var err error
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
var dtr mtrpb.DataTypeResult
if err = proto.Unmarshal(b, &dtr); err != nil {
t.Error(err)
}
if dtr.Result == nil {
t.Error("got nil for /data/type protobuf")
}
if len(dtr.Result) != 5 {
t.Errorf("expected 5 results, got %d.", len(dtr.Result))
}
if dtr.Result[0].TypeID != "latency.files.gnss" {
t.Errorf("expected latency.files.gnss got %s", dtr.Result[0].TypeID)
}
if dtr.Result[0].Display != "ms" {
t.Errorf("expected ms got %s", dtr.Result[0].Display)
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:40,代码来源:routes_test.go
示例15: TestFieldModel
// protobuf of /field/model endpoint
func TestFieldModel(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/field/model", Accept: "application/x-protobuf"}
var b []byte
var err error
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
var ftr mtrpb.FieldModelResult
if err = proto.Unmarshal(b, &ftr); err != nil {
t.Error(err)
}
// ftr.Result should be a slice of struct pointers
if ftr.Result == nil {
t.Error("got nil for /field/model protobuf")
}
if len(ftr.Result) != 1 {
t.Error("expected 1 result.")
}
m := ftr.Result[0]
if m.ModelID != "Trimble NetR9" {
t.Errorf("expected Trimble NetR9 got %s", m.ModelID)
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:40,代码来源:routes_test.go
示例16: TestDataCompletenessSummary
// protobuf of latency summary info.
func TestDataCompletenessSummary(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/data/completeness/summary", Accept: "application/x-protobuf"}
var b []byte
var err error
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
var f mtrpb.DataCompletenessSummaryResult
if err = proto.Unmarshal(b, &f); err != nil {
t.Error(err)
}
if len(f.Result) != 1 {
t.Error("expected 1 result.")
}
d := f.Result[0]
if d.SiteID != "TAUP" {
t.Errorf("expected TAUP got %s", d.SiteID)
}
if d.TypeID != "completeness.gnss.1hz" {
t.Errorf("expected gnss.1hz got %s", d.TypeID)
}
if d.Seconds == 0 {
t.Error("unexpected zero seconds")
}
r.URL = "/data/completeness/summary?typeID=completeness.gnss.1hz"
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
f.Reset()
if err = proto.Unmarshal(b, &f); err != nil {
t.Error(err)
}
if len(f.Result) != 1 {
t.Errorf("expected 1 result got %d results", len(f.Result))
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:59,代码来源:routes_test.go
示例17: TestAppIDs
// protobuf for /app endpoint
func TestAppIDs(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{ID: wt.L(), URL: "/app", Accept: "application/x-protobuf"}
var b []byte
var err error
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
var dtr mtrpb.AppIDSummaryResult
if err = proto.Unmarshal(b, &dtr); err != nil {
t.Error(err)
}
if dtr.Result == nil {
t.Error("got nil for /app protobuf")
}
if len(dtr.Result) != 1 {
t.Errorf("expected 1 result, got %d.", len(dtr.Result))
}
if dtr.Result[0].ApplicationID != "test-app" {
t.Errorf("expected test-app got %s", dtr.Result[0].ApplicationID)
}
}
开发者ID:GeoNet,项目名称:mtr,代码行数:37,代码来源:routes_test.go
示例18: TestDataLatencyCsv
func TestDataLatencyCsv(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{
User: userW,
Password: keyW,
Method: "PUT",
}
var err error
type latencyTest struct {
time time.Time
mean, fifty, ninety float32
}
utcNow := time.Now().UTC().Truncate(time.Second)
t0 := utcNow.Add(time.Second * -10)
latencyTestData := []latencyTest{
{time: t0, mean: 20, fifty: 30, ninety: 40},
// Can only have one value due to rate_limit.
// TODO: make the rate_limit value configurable so we can test properly
//{time: t0.Add(time.Second), mean: 21, fifty:31, ninety: 41},
//{time: t0.Add(time.Second * 2), mean: 22, fifty:32, ninety: 42},
//{time: t0.Add(time.Second * 3), mean: 23, fifty:33, ninety: 43},
}
expectedVals := [][]string{
{""}, // header line, ignored in test.
{latencyTestData[0].time.Format(DYGRAPH_TIME_FORMAT), fmt.Sprintf("%.2f", latencyTestData[0].mean), fmt.Sprintf("%.2f", latencyTestData[0].fifty), fmt.Sprintf("%.2f", latencyTestData[0].ninety)},
//{latencyTestData[1].time.Format(DYGRAPH_TIME_FORMAT), fmt.Sprintf("%.2f", latencyTestData[1].mean), fmt.Sprintf("%.2f", latencyTestData[1].fifty), fmt.Sprintf("%.2f", latencyTestData[1].ninety)},
//{latencyTestData[2].time.Format(DYGRAPH_TIME_FORMAT), fmt.Sprintf("%.2f", latencyTestData[2].mean), fmt.Sprintf("%.2f", latencyTestData[2].fifty), fmt.Sprintf("%.2f", latencyTestData[2].ninety)},
//{latencyTestData[3].time.Format(DYGRAPH_TIME_FORMAT), fmt.Sprintf("%.2f", latencyTestData[3].mean), fmt.Sprintf("%.2f", latencyTestData[3].fifty), fmt.Sprintf("%.2f", latencyTestData[3].ninety)},
}
// Add metrics
for _, lt := range latencyTestData {
r.URL = fmt.Sprintf("/data/latency?siteID=TAUP&typeID=latency.strong&time=%s&mean=%d&fifty=%d&ninety=%d",
lt.time.Format(time.RFC3339), int(lt.mean), int(lt.fifty), int(lt.ninety))
addData(r, t)
}
r = wt.Request{ID: wt.L(), URL: "/data/latency?siteID=TAUP&typeID=latency.strong&resolution=full", Method: "GET", Accept: "text/csv"}
var b []byte
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
compareCsvData(b, expectedVals, t)
// test for invalid siteID condition
r = wt.Request{ID: wt.L(), URL: "/data/latency?siteID=NOT_THERE&typeID=latency.strong&resolution=full", Method: "GET", Accept: "text/csv", Status: http.StatusNotFound}
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
// Test with a time range
start := latencyTestData[0].time.Add(time.Second * -1).UTC().Format(time.RFC3339)
end := latencyTestData[0].time.Add(time.Second).UTC().Format(time.RFC3339)
r = wt.Request{ID: wt.L(), URL: "/data/latency?siteID=TAUP&typeID=latency.strong&resolution=full&startDate=" + start + "&endDate=" + end, Method: "GET", Accept: "text/csv"}
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
compareCsvData(b, expectedVals, t)
}
开发者ID:GeoNet,项目名称:mtr,代码行数:74,代码来源:data_latency_test.go
示例19: TestAppMetricCounterCsv
func TestAppMetricCounterCsv(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
r := wt.Request{
User: userW,
Password: keyW,
Method: "PUT",
}
var err error
type testPoint struct {
typeID int
count float64
time time.Time
}
// Testing the "counter" group
utcNow := time.Now().UTC().Truncate(time.Second)
t0 := utcNow.Add(time.Second * -10)
testCounterData := []testPoint{
{typeID: http.StatusOK, count: 1.0, time: t0},
{typeID: http.StatusBadRequest, count: 2.0, time: t0}, // add a different typeID at the same time as previous typeID
{typeID: http.StatusNotFound, count: 1.0, time: t0.Add(time.Second * 2)},
{typeID: http.StatusBadRequest, count: 2.0, time: t0.Add(time.Second * 4)},
{typeID: http.StatusInternalServerError, count: 3.0, time: t0.Add(time.Second * 6)},
}
// the expected CSV data, ignoring the header fields on the first line
expectedVals := [][]string{
{""}, // header line, ignored in test. Should be time, statusOK, statusBadRequest, StatusNotFound, StatusInternalServerError
{testCounterData[0].time.Format(DYGRAPH_TIME_FORMAT), fmt.Sprintf("%.2f", testCounterData[0].count), fmt.Sprintf("%.2f", testCounterData[1].count), "", ""},
{testCounterData[2].time.Format(DYGRAPH_TIME_FORMAT), "", "", fmt.Sprintf("%.2f", testCounterData[2].count), ""},
{testCounterData[3].time.Format(DYGRAPH_TIME_FORMAT), "", fmt.Sprintf("%.2f", testCounterData[3].count), "", ""},
{testCounterData[4].time.Format(DYGRAPH_TIME_FORMAT), "", "", "", fmt.Sprintf("%.2f", testCounterData[4].count)},
}
for _, td := range testCounterData {
r.URL = fmt.Sprintf("/application/counter?applicationID=test-app&instanceID=test-instance&typeID=%d&count=%d&time=%s",
td.typeID, int(td.count), td.time.Format(time.RFC3339))
addData(r, t)
}
r = wt.Request{ID: wt.L(), URL: "/app/metric?applicationID=test-app&group=counters&resolution=full", Method: "GET", Accept: "text/csv"}
var b []byte
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
compareCsvData(b, expectedVals, t)
// test with time range specified
expectedSubset := [][]string{
{""}, // header line, ignored in test. Should be time, statusOK, statusBadRequest
{testCounterData[0].time.Format(DYGRAPH_TIME_FORMAT), fmt.Sprintf("%.2f", testCounterData[0].count), fmt.Sprintf("%.2f", testCounterData[1].count)},
}
// time window so we only get the points at t0. RFC3339 has second precision.
start := t0.Add(time.Second * -1).Format(time.RFC3339)
end := t0.Add(time.Second).Format(time.RFC3339)
r = wt.Request{ID: wt.L(), URL: "/app/metric?applicationID=test-app&group=counters&resolution=full&startDate=" + start + "&endDate=" + end, Method: "GET", Accept: "text/csv"}
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
compareCsvData(b, expectedSubset, t)
}
开发者ID:GeoNet,项目名称:mtr,代码行数:74,代码来源:app_metric_test.go
示例20: TestAppMetricObjectsCsv
func TestAppMetricObjectsCsv(t *testing.T) {
setup(t)
defer teardown()
// Load test data.
if err := routes.DoAllStatusOk(testServer.URL); err != nil {
t.Error(err)
}
// Testing the "timers" group, could move to another testing function
r := wt.Request{
User: userW,
Password: keyW,
Method: "PUT",
}
type objectTest struct {
appId, instanceId string
typeId int
value float64
time time.Time
}
// handling objects and routines in the same test since it's the same method being exercised
utcNow := time.Now().UTC().Truncate(time.Second)
t0 := utcNow.Add(time.Second * -10)
objTestData := []objectTest{
{appId: "test-app", instanceId: "test-instance", typeId: int(internal.MemHeapObjects), value: 8, time: t0.Add(time.Second)},
{appId: "test-app", instanceId: "test-instance", typeId: int(internal.MemHeapObjects), value: 12, time: t0.Add(time.Second * 2)},
{appId: "test-app", instanceId: "test-instance", typeId: int(internal.Routines), value: 1, time: t0.Add(time.Second * 3)},
{appId: "test-app", instanceId: "test-instance", typeId: int(internal.Routines), value: 3, time: t0.Add(time.Second * 6)},
{appId: "test-app", instanceId: "test-instance", typeId: int(internal.MemSys), value: 10, time: t0.Add(time.Second * 7)},
{appId: "test-app", instanceId: "test-instance", typeId: int(internal.MemHeapAlloc), value: 9, time: t0.Add(time.Second * 8)},
{appId: "test-app", instanceId: "test-instance", typeId: int(internal.MemHeapSys), value: 7, time: t0.Add(time.Second * 9)},
}
// the expected CSV data, ignoring the header fields on the first line
expectedObjValues := [][]string{
{""}, // header line, ignored in test.
{objTestData[0].time.Format(DYGRAPH_TIME_FORMAT), fmt.Sprintf("%.2f", objTestData[0].value)},
{objTestData[1].time.Format(DYGRAPH_TIME_FORMAT), fmt.Sprintf("%.2f", objTestData[1].value)},
}
// Add timer values
for _, ov := range objTestData {
// /application/metric?applicationID=test-app&instanceID=test-instance&typeID=1000&value=10000&time=2015-05-14T21:40:30Z
r.URL = fmt.Sprintf("/application/metric?applicationID=%s&instanceID=%s&typeID=%d&value=%d&time=%s",
ov.appId, ov.instanceId, ov.typeId, int(ov.value), ov.time.Format(time.RFC3339))
addData(r, t)
}
r = wt.Request{ID: wt.L(), URL: "/app/metric?applicationID=test-app&group=objects&resolution=full", Method: "GET", Accept: "text/csv"}
var err error
var b []byte
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
compareCsvData(b, expectedObjValues, t)
// test again for number of goroutines
expectedRoutineValues := [][]string{
{""}, // header line, ignored in test.
{objTestData[2].time.Format(DYGRAPH_TIME_FORMAT), fmt.Sprintf("%.2f", objTestData[2].value)},
{objTestData[3].time.Format(DYGRAPH_TIME_FORMAT), fmt.Sprintf("%.2f", objTestData[3].value)},
}
r = wt.Request{ID: wt.L(), URL: "/app/metric?applicationID=test-app&group=routines&resolution=full", Method: "GET", Accept: "text/csv"}
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
compareCsvData(b, expectedRoutineValues, t)
// Also test for invalid applicationID, should give a 404
r = wt.Request{ID: wt.L(), URL: "/app/metric?applicationID=NOT_AN_APP&group=routines&resolution=full", Method: "GET", Accept: "text/csv", Status: http.StatusNotFound}
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
// Test again with time range
start := objTestData[3].time.Add(time.Second * -1).UTC().Format(time.RFC3339)
end := objTestData[3].time.Add(time.Second).UTC().Format(time.RFC3339)
r = wt.Request{ID: wt.L(), URL: "/app/metric?applicationID=test-app&group=routines&resolution=full&startDate=" + start + "&endDate=" + end, Method: "GET", Accept: "text/csv"}
if b, err = r.Do(testServer.URL); err != nil {
t.Error(err)
}
expectedRoutineSubset := [][]string{
{""}, // header line, ignored in test.
{objTestData[3].time.Format(DYGRAPH_TIME_FORMAT), fmt.Sprintf("%.2f", objTestData[3].value)},
}
compareCsvData(b, expectedRoutineSubset, t)
//.........这里部分代码省略.........
开发者ID:GeoNet,项目名称:mtr,代码行数:101,代码来源:app_metric_test.go
注:本文中的github.com/GeoNet/weft/wefttest.Request类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论