How to use New method of got Package

Best Got code snippet using got.New

search_aggs_pipeline_test.go

Source:search_aggs_pipeline_test.go Github

copy

Full Screen

...67import "testing"89func TestAggsIntegrationAvgBucket(t *testing.T) {10 //client := setupTestClientAndCreateIndexAndAddDocs(t, SetTraceLog(log.New(os.Stdout, "", log.LstdFlags)))11 client := setupTestClientAndCreateIndexAndAddDocs(t)1213 esversion, err := client.ElasticsearchVersion(DefaultURL)14 if err != nil {15 t.Fatal(err)16 }1718 if esversion < "2.0" {19 t.Skipf("Elasticsearch %s does not have pipeline aggregations.", esversion)20 return21 }2223 // Match all should return all documents24 builder := client.Search().25 Index(testIndexName).26 Type("order").27 Query(NewMatchAllQuery()).28 Pretty(true)29 h := NewDateHistogramAggregation().Field("time").Interval("month")30 h = h.SubAggregation("sales", NewSumAggregation().Field("price"))31 builder = builder.Aggregation("sales_per_month", h)32 builder = builder.Aggregation("avg_monthly_sales", NewAvgBucketAggregation().BucketsPath("sales_per_month>sales"))3334 res, err := builder.Do()35 if err != nil {36 t.Fatal(err)37 }38 if res.Hits == nil {39 t.Errorf("expected Hits != nil; got: nil")40 }4142 aggs := res.Aggregations43 if aggs == nil {44 t.Fatal("expected aggregations != nil; got: nil")45 }4647 agg, found := aggs.AvgBucket("avg_monthly_sales")48 if !found {49 t.Fatal("expected avg_monthly_sales aggregation")50 }51 if agg == nil {52 t.Fatal("expected avg_monthly_sales aggregation")53 }54 if agg.Value == nil {55 t.Fatal("expected avg_monthly_sales.value != nil")56 }57 if got, want := *agg.Value, float64(939.2); got != want {58 t.Fatalf("expected avg_monthly_sales.value=%v; got: %v", want, got)59 }60}6162func TestAggsIntegrationDerivative(t *testing.T) {63 //client := setupTestClientAndCreateIndexAndAddDocs(t, SetTraceLog(log.New(os.Stdout, "", log.LstdFlags)))64 client := setupTestClientAndCreateIndexAndAddDocs(t)6566 esversion, err := client.ElasticsearchVersion(DefaultURL)67 if err != nil {68 t.Fatal(err)69 }7071 if esversion < "2.0" {72 t.Skipf("Elasticsearch %s does not have pipeline aggregations.", esversion)73 return74 }7576 // Match all should return all documents77 builder := client.Search().78 Index(testIndexName).79 Type("order").80 Query(NewMatchAllQuery()).81 Pretty(true)82 h := NewDateHistogramAggregation().Field("time").Interval("month")83 h = h.SubAggregation("sales", NewSumAggregation().Field("price"))84 h = h.SubAggregation("sales_deriv", NewDerivativeAggregation().BucketsPath("sales"))85 builder = builder.Aggregation("sales_per_month", h)8687 res, err := builder.Do()88 if err != nil {89 t.Fatal(err)90 }91 if res.Hits == nil {92 t.Errorf("expected Hits != nil; got: nil")93 }9495 aggs := res.Aggregations96 if aggs == nil {97 t.Fatal("expected aggregations != nil; got: nil")98 }99100 agg, found := aggs.DateHistogram("sales_per_month")101 if !found {102 t.Fatal("expected sales_per_month aggregation")103 }104 if agg == nil {105 t.Fatal("expected sales_per_month aggregation")106 }107 if got, want := len(agg.Buckets), 6; got != want {108 t.Fatalf("expected %d buckets; got: %d", want, got)109 }110111 if got, want := agg.Buckets[0].DocCount, int64(1); got != want {112 t.Fatalf("expected DocCount=%d; got: %d", want, got)113 }114 if got, want := agg.Buckets[1].DocCount, int64(0); got != want {115 t.Fatalf("expected DocCount=%d; got: %d", want, got)116 }117 if got, want := agg.Buckets[2].DocCount, int64(1); got != want {118 t.Fatalf("expected DocCount=%d; got: %d", want, got)119 }120 if got, want := agg.Buckets[3].DocCount, int64(3); got != want {121 t.Fatalf("expected DocCount=%d; got: %d", want, got)122 }123 if got, want := agg.Buckets[4].DocCount, int64(1); got != want {124 t.Fatalf("expected DocCount=%d; got: %d", want, got)125 }126 if got, want := agg.Buckets[5].DocCount, int64(2); got != want {127 t.Fatalf("expected DocCount=%d; got: %d", want, got)128 }129130 d, found := agg.Buckets[0].Derivative("sales_deriv")131 if found {132 t.Fatal("expected no sales_deriv aggregation")133 }134 if d != nil {135 t.Fatal("expected no sales_deriv aggregation")136 }137138 d, found = agg.Buckets[1].Derivative("sales_deriv")139 if !found {140 t.Fatal("expected sales_deriv aggregation")141 }142 if d == nil {143 t.Fatal("expected sales_deriv aggregation")144 }145 if d.Value != nil {146 t.Fatal("expected sales_deriv value == nil")147 }148149 d, found = agg.Buckets[2].Derivative("sales_deriv")150 if !found {151 t.Fatal("expected sales_deriv aggregation")152 }153 if d == nil {154 t.Fatal("expected sales_deriv aggregation")155 }156 if d.Value != nil {157 t.Fatal("expected sales_deriv value == nil")158 }159160 d, found = agg.Buckets[3].Derivative("sales_deriv")161 if !found {162 t.Fatal("expected sales_deriv aggregation")163 }164 if d == nil {165 t.Fatal("expected sales_deriv aggregation")166 }167 if d.Value == nil {168 t.Fatal("expected sales_deriv value != nil")169 }170 if got, want := *d.Value, float64(2348.0); got != want {171 t.Fatalf("expected sales_deriv.value=%v; got: %v", want, got)172 }173174 d, found = agg.Buckets[4].Derivative("sales_deriv")175 if !found {176 t.Fatal("expected sales_deriv aggregation")177 }178 if d == nil {179 t.Fatal("expected sales_deriv aggregation")180 }181 if d.Value == nil {182 t.Fatal("expected sales_deriv value != nil")183 }184 if got, want := *d.Value, float64(-1658.0); got != want {185 t.Fatalf("expected sales_deriv.value=%v; got: %v", want, got)186 }187188 d, found = agg.Buckets[5].Derivative("sales_deriv")189 if !found {190 t.Fatal("expected sales_deriv aggregation")191 }192 if d == nil {193 t.Fatal("expected sales_deriv aggregation")194 }195 if d.Value == nil {196 t.Fatal("expected sales_deriv value != nil")197 }198 if got, want := *d.Value, float64(-722.0); got != want {199 t.Fatalf("expected sales_deriv.value=%v; got: %v", want, got)200 }201}202203func TestAggsIntegrationMaxBucket(t *testing.T) {204 //client := setupTestClientAndCreateIndexAndAddDocs(t, SetTraceLog(log.New(os.Stdout, "", log.LstdFlags)))205 client := setupTestClientAndCreateIndexAndAddDocs(t)206207 esversion, err := client.ElasticsearchVersion(DefaultURL)208 if err != nil {209 t.Fatal(err)210 }211212 if esversion < "2.0" {213 t.Skipf("Elasticsearch %s does not have pipeline aggregations.", esversion)214 return215 }216217 // Match all should return all documents218 builder := client.Search().219 Index(testIndexName).220 Type("order").221 Query(NewMatchAllQuery()).222 Pretty(true)223 h := NewDateHistogramAggregation().Field("time").Interval("month")224 h = h.SubAggregation("sales", NewSumAggregation().Field("price"))225 builder = builder.Aggregation("sales_per_month", h)226 builder = builder.Aggregation("max_monthly_sales", NewMaxBucketAggregation().BucketsPath("sales_per_month>sales"))227228 res, err := builder.Do()229 if err != nil {230 t.Fatal(err)231 }232 if res.Hits == nil {233 t.Errorf("expected Hits != nil; got: nil")234 }235236 aggs := res.Aggregations237 if aggs == nil {238 t.Fatal("expected aggregations != nil; got: nil")239 }240241 agg, found := aggs.MaxBucket("max_monthly_sales")242 if !found {243 t.Fatal("expected max_monthly_sales aggregation")244 }245 if agg == nil {246 t.Fatal("expected max_monthly_sales aggregation")247 }248 if got, want := len(agg.Keys), 1; got != want {249 t.Fatalf("expected len(max_monthly_sales.keys)=%d; got: %d", want, got)250 }251 if got, want := agg.Keys[0], "2015-04-01"; got != want {252 t.Fatalf("expected max_monthly_sales.keys[0]=%v; got: %v", want, got)253 }254 if agg.Value == nil {255 t.Fatal("expected max_monthly_sales.value != nil")256 }257 if got, want := *agg.Value, float64(2448); got != want {258 t.Fatalf("expected max_monthly_sales.value=%v; got: %v", want, got)259 }260}261262func TestAggsIntegrationMinBucket(t *testing.T) {263 //client := setupTestClientAndCreateIndexAndAddDocs(t, SetTraceLog(log.New(os.Stdout, "", log.LstdFlags)))264 client := setupTestClientAndCreateIndexAndAddDocs(t)265266 esversion, err := client.ElasticsearchVersion(DefaultURL)267 if err != nil {268 t.Fatal(err)269 }270271 if esversion < "2.0" {272 t.Skipf("Elasticsearch %s does not have pipeline aggregations.", esversion)273 return274 }275276 // Match all should return all documents277 builder := client.Search().278 Index(testIndexName).279 Type("order").280 Query(NewMatchAllQuery()).281 Pretty(true)282 h := NewDateHistogramAggregation().Field("time").Interval("month")283 h = h.SubAggregation("sales", NewSumAggregation().Field("price"))284 builder = builder.Aggregation("sales_per_month", h)285 builder = builder.Aggregation("min_monthly_sales", NewMinBucketAggregation().BucketsPath("sales_per_month>sales"))286287 res, err := builder.Do()288 if err != nil {289 t.Fatal(err)290 }291 if res.Hits == nil {292 t.Errorf("expected Hits != nil; got: nil")293 }294295 aggs := res.Aggregations296 if aggs == nil {297 t.Fatal("expected aggregations != nil; got: nil")298 }299300 agg, found := aggs.MinBucket("min_monthly_sales")301 if !found {302 t.Fatal("expected min_monthly_sales aggregation")303 }304 if agg == nil {305 t.Fatal("expected min_monthly_sales aggregation")306 }307 if got, want := len(agg.Keys), 1; got != want {308 t.Fatalf("expected len(min_monthly_sales.keys)=%d; got: %d", want, got)309 }310 if got, want := agg.Keys[0], "2015-06-01"; got != want {311 t.Fatalf("expected min_monthly_sales.keys[0]=%v; got: %v", want, got)312 }313 if agg.Value == nil {314 t.Fatal("expected min_monthly_sales.value != nil")315 }316 if got, want := *agg.Value, float64(68); got != want {317 t.Fatalf("expected min_monthly_sales.value=%v; got: %v", want, got)318 }319}320321func TestAggsIntegrationSumBucket(t *testing.T) {322 //client := setupTestClientAndCreateIndexAndAddDocs(t, SetTraceLog(log.New(os.Stdout, "", log.LstdFlags)))323 client := setupTestClientAndCreateIndexAndAddDocs(t)324325 esversion, err := client.ElasticsearchVersion(DefaultURL)326 if err != nil {327 t.Fatal(err)328 }329330 if esversion < "2.0" {331 t.Skipf("Elasticsearch %s does not have pipeline aggregations.", esversion)332 return333 }334335 // Match all should return all documents336 builder := client.Search().337 Index(testIndexName).338 Type("order").339 Query(NewMatchAllQuery()).340 Pretty(true)341 h := NewDateHistogramAggregation().Field("time").Interval("month")342 h = h.SubAggregation("sales", NewSumAggregation().Field("price"))343 builder = builder.Aggregation("sales_per_month", h)344 builder = builder.Aggregation("sum_monthly_sales", NewSumBucketAggregation().BucketsPath("sales_per_month>sales"))345346 res, err := builder.Do()347 if err != nil {348 t.Fatal(err)349 }350 if res.Hits == nil {351 t.Errorf("expected Hits != nil; got: nil")352 }353354 aggs := res.Aggregations355 if aggs == nil {356 t.Fatal("expected aggregations != nil; got: nil")357 }358359 agg, found := aggs.SumBucket("sum_monthly_sales")360 if !found {361 t.Fatal("expected sum_monthly_sales aggregation")362 }363 if agg == nil {364 t.Fatal("expected sum_monthly_sales aggregation")365 }366 if agg.Value == nil {367 t.Fatal("expected sum_monthly_sales.value != nil")368 }369 if got, want := *agg.Value, float64(4696.0); got != want {370 t.Fatalf("expected sum_monthly_sales.value=%v; got: %v", want, got)371 }372}373374func TestAggsIntegrationMovAvg(t *testing.T) {375 //client := setupTestClientAndCreateIndexAndAddDocs(t, SetTraceLog(log.New(os.Stdout, "", log.LstdFlags)))376 client := setupTestClientAndCreateIndexAndAddDocs(t)377378 esversion, err := client.ElasticsearchVersion(DefaultURL)379 if err != nil {380 t.Fatal(err)381 }382383 if esversion < "2.0" {384 t.Skipf("Elasticsearch %s does not have pipeline aggregations.", esversion)385 return386 }387388 // Match all should return all documents389 builder := client.Search().390 Index(testIndexName).391 Type("order").392 Query(NewMatchAllQuery()).393 Pretty(true)394 h := NewDateHistogramAggregation().Field("time").Interval("month")395 h = h.SubAggregation("the_sum", NewSumAggregation().Field("price"))396 h = h.SubAggregation("the_movavg", NewMovAvgAggregation().BucketsPath("the_sum"))397 builder = builder.Aggregation("my_date_histo", h)398399 res, err := builder.Do()400 if err != nil {401 t.Fatal(err)402 }403 if res.Hits == nil {404 t.Errorf("expected Hits != nil; got: nil")405 }406407 aggs := res.Aggregations408 if aggs == nil {409 t.Fatal("expected aggregations != nil; got: nil")410 }411412 agg, found := aggs.DateHistogram("my_date_histo")413 if !found {414 t.Fatal("expected sum_monthly_sales aggregation")415 }416 if agg == nil {417 t.Fatal("expected sum_monthly_sales aggregation")418 }419 if got, want := len(agg.Buckets), 6; got != want {420 t.Fatalf("expected %d buckets; got: %d", want, got)421 }422423 d, found := agg.Buckets[0].MovAvg("the_movavg")424 if found {425 t.Fatal("expected no the_movavg aggregation")426 }427 if d != nil {428 t.Fatal("expected no the_movavg aggregation")429 }430431 d, found = agg.Buckets[1].MovAvg("the_movavg")432 if found {433 t.Fatal("expected no the_movavg aggregation")434 }435 if d != nil {436 t.Fatal("expected no the_movavg aggregation")437 }438439 d, found = agg.Buckets[2].MovAvg("the_movavg")440 if !found {441 t.Fatal("expected the_movavg aggregation")442 }443 if d == nil {444 t.Fatal("expected the_movavg aggregation")445 }446 if d.Value == nil {447 t.Fatal("expected the_movavg value")448 }449 if got, want := *d.Value, float64(1290.0); got != want {450 t.Fatalf("expected %v buckets; got: %v", want, got)451 }452453 d, found = agg.Buckets[3].MovAvg("the_movavg")454 if !found {455 t.Fatal("expected the_movavg aggregation")456 }457 if d == nil {458 t.Fatal("expected the_movavg aggregation")459 }460 if d.Value == nil {461 t.Fatal("expected the_movavg value")462 }463 if got, want := *d.Value, float64(695.0); got != want {464 t.Fatalf("expected %v buckets; got: %v", want, got)465 }466467 d, found = agg.Buckets[4].MovAvg("the_movavg")468 if !found {469 t.Fatal("expected the_movavg aggregation")470 }471 if d == nil {472 t.Fatal("expected the_movavg aggregation")473 }474 if d.Value == nil {475 t.Fatal("expected the_movavg value")476 }477 if got, want := *d.Value, float64(1279.3333333333333); got != want {478 t.Fatalf("expected %v buckets; got: %v", want, got)479 }480481 d, found = agg.Buckets[5].MovAvg("the_movavg")482 if !found {483 t.Fatal("expected the_movavg aggregation")484 }485 if d == nil {486 t.Fatal("expected the_movavg aggregation")487 }488 if d.Value == nil {489 t.Fatal("expected the_movavg value")490 }491 if got, want := *d.Value, float64(1157.0); got != want {492 t.Fatalf("expected %v buckets; got: %v", want, got)493 }494}495496func TestAggsIntegrationCumulativeSum(t *testing.T) {497 //client := setupTestClientAndCreateIndexAndAddDocs(t, SetTraceLog(log.New(os.Stdout, "", log.LstdFlags)))498 client := setupTestClientAndCreateIndexAndAddDocs(t)499500 esversion, err := client.ElasticsearchVersion(DefaultURL)501 if err != nil {502 t.Fatal(err)503 }504505 if esversion < "2.0" {506 t.Skipf("Elasticsearch %s does not have pipeline aggregations.", esversion)507 return508 }509510 // Match all should return all documents511 builder := client.Search().512 Index(testIndexName).513 Type("order").514 Query(NewMatchAllQuery()).515 Pretty(true)516 h := NewDateHistogramAggregation().Field("time").Interval("month")517 h = h.SubAggregation("sales", NewSumAggregation().Field("price"))518 h = h.SubAggregation("cumulative_sales", NewCumulativeSumAggregation().BucketsPath("sales"))519 builder = builder.Aggregation("sales_per_month", h)520521 res, err := builder.Do()522 if err != nil {523 t.Fatal(err)524 }525 if res.Hits == nil {526 t.Errorf("expected Hits != nil; got: nil")527 }528529 aggs := res.Aggregations530 if aggs == nil {531 t.Fatal("expected aggregations != nil; got: nil")532 }533534 agg, found := aggs.DateHistogram("sales_per_month")535 if !found {536 t.Fatal("expected sales_per_month aggregation")537 }538 if agg == nil {539 t.Fatal("expected sales_per_month aggregation")540 }541 if got, want := len(agg.Buckets), 6; got != want {542 t.Fatalf("expected %d buckets; got: %d", want, got)543 }544545 if got, want := agg.Buckets[0].DocCount, int64(1); got != want {546 t.Fatalf("expected DocCount=%d; got: %d", want, got)547 }548 if got, want := agg.Buckets[1].DocCount, int64(0); got != want {549 t.Fatalf("expected DocCount=%d; got: %d", want, got)550 }551 if got, want := agg.Buckets[2].DocCount, int64(1); got != want {552 t.Fatalf("expected DocCount=%d; got: %d", want, got)553 }554 if got, want := agg.Buckets[3].DocCount, int64(3); got != want {555 t.Fatalf("expected DocCount=%d; got: %d", want, got)556 }557 if got, want := agg.Buckets[4].DocCount, int64(1); got != want {558 t.Fatalf("expected DocCount=%d; got: %d", want, got)559 }560 if got, want := agg.Buckets[5].DocCount, int64(2); got != want {561 t.Fatalf("expected DocCount=%d; got: %d", want, got)562 }563564 d, found := agg.Buckets[0].CumulativeSum("cumulative_sales")565 if !found {566 t.Fatal("expected cumulative_sales aggregation")567 }568 if d == nil {569 t.Fatal("expected cumulative_sales aggregation")570 }571 if d.Value == nil {572 t.Fatal("expected cumulative_sales value != nil")573 }574 if got, want := *d.Value, float64(1290.0); got != want {575 t.Fatalf("expected cumulative_sales.value=%v; got: %v", want, got)576 }577578 d, found = agg.Buckets[1].CumulativeSum("cumulative_sales")579 if !found {580 t.Fatal("expected cumulative_sales aggregation")581 }582 if d == nil {583 t.Fatal("expected cumulative_sales aggregation")584 }585 if d.Value == nil {586 t.Fatal("expected cumulative_sales value != nil")587 }588 if got, want := *d.Value, float64(1290.0); got != want {589 t.Fatalf("expected cumulative_sales.value=%v; got: %v", want, got)590 }591592 d, found = agg.Buckets[2].CumulativeSum("cumulative_sales")593 if !found {594 t.Fatal("expected cumulative_sales aggregation")595 }596 if d == nil {597 t.Fatal("expected cumulative_sales aggregation")598 }599 if d.Value == nil {600 t.Fatal("expected cumulative_sales value != nil")601 }602 if got, want := *d.Value, float64(1390.0); got != want {603 t.Fatalf("expected cumulative_sales.value=%v; got: %v", want, got)604 }605606 d, found = agg.Buckets[3].CumulativeSum("cumulative_sales")607 if !found {608 t.Fatal("expected cumulative_sales aggregation")609 }610 if d == nil {611 t.Fatal("expected cumulative_sales aggregation")612 }613 if d.Value == nil {614 t.Fatal("expected cumulative_sales value != nil")615 }616 if got, want := *d.Value, float64(3838.0); got != want {617 t.Fatalf("expected cumulative_sales.value=%v; got: %v", want, got)618 }619620 d, found = agg.Buckets[4].CumulativeSum("cumulative_sales")621 if !found {622 t.Fatal("expected cumulative_sales aggregation")623 }624 if d == nil {625 t.Fatal("expected cumulative_sales aggregation")626 }627 if d.Value == nil {628 t.Fatal("expected cumulative_sales value != nil")629 }630 if got, want := *d.Value, float64(4628.0); got != want {631 t.Fatalf("expected cumulative_sales.value=%v; got: %v", want, got)632 }633634 d, found = agg.Buckets[5].CumulativeSum("cumulative_sales")635 if !found {636 t.Fatal("expected cumulative_sales aggregation")637 }638 if d == nil {639 t.Fatal("expected cumulative_sales aggregation")640 }641 if d.Value == nil {642 t.Fatal("expected cumulative_sales value != nil")643 }644 if got, want := *d.Value, float64(4696.0); got != want {645 t.Fatalf("expected cumulative_sales.value=%v; got: %v", want, got)646 }647}648649func TestAggsIntegrationBucketScript(t *testing.T) {650 //client := setupTestClientAndCreateIndexAndAddDocs(t, SetTraceLog(log.New(os.Stdout, "", log.LstdFlags)))651 client := setupTestClientAndCreateIndexAndAddDocs(t)652653 esversion, err := client.ElasticsearchVersion(DefaultURL)654 if err != nil {655 t.Fatal(err)656 }657658 if esversion < "2.0" {659 t.Skipf("Elasticsearch %s does not have pipeline aggregations.", esversion)660 return661 }662663 // Match all should return all documents664 builder := client.Search().665 Index(testIndexName).666 Type("order").667 Query(NewMatchAllQuery()).668 Pretty(true)669 h := NewDateHistogramAggregation().Field("time").Interval("month")670 h = h.SubAggregation("total_sales", NewSumAggregation().Field("price"))671 appleFilter := NewFilterAggregation().Filter(NewTermQuery("manufacturer", "Apple"))672 appleFilter = appleFilter.SubAggregation("sales", NewSumAggregation().Field("price"))673 h = h.SubAggregation("apple_sales", appleFilter)674 h = h.SubAggregation("apple_percentage",675 NewBucketScriptAggregation().676 GapPolicy("insert_zeros").677 AddBucketsPath("appleSales", "apple_sales>sales").678 AddBucketsPath("totalSales", "total_sales").679 Script(NewScript("appleSales / totalSales * 100")))680 builder = builder.Aggregation("sales_per_month", h)681682 res, err := builder.Do()683 if err != nil {684 t.Fatalf("%v (maybe scripting is disabled?)", err)685 }686 if res.Hits == nil {687 t.Errorf("expected Hits != nil; got: nil")688 }689690 aggs := res.Aggregations691 if aggs == nil {692 t.Fatal("expected aggregations != nil; got: nil")693 }694695 agg, found := aggs.DateHistogram("sales_per_month")696 if !found {697 t.Fatal("expected sales_per_month aggregation")698 }699 if agg == nil {700 t.Fatal("expected sales_per_month aggregation")701 }702 if got, want := len(agg.Buckets), 6; got != want {703 t.Fatalf("expected %d buckets; got: %d", want, got)704 }705706 if got, want := agg.Buckets[0].DocCount, int64(1); got != want {707 t.Fatalf("expected DocCount=%d; got: %d", want, got)708 }709 if got, want := agg.Buckets[1].DocCount, int64(0); got != want {710 t.Fatalf("expected DocCount=%d; got: %d", want, got)711 }712 if got, want := agg.Buckets[2].DocCount, int64(1); got != want {713 t.Fatalf("expected DocCount=%d; got: %d", want, got)714 }715 if got, want := agg.Buckets[3].DocCount, int64(3); got != want {716 t.Fatalf("expected DocCount=%d; got: %d", want, got)717 }718 if got, want := agg.Buckets[4].DocCount, int64(1); got != want {719 t.Fatalf("expected DocCount=%d; got: %d", want, got)720 }721 if got, want := agg.Buckets[5].DocCount, int64(2); got != want {722 t.Fatalf("expected DocCount=%d; got: %d", want, got)723 }724725 d, found := agg.Buckets[0].BucketScript("apple_percentage")726 if !found {727 t.Fatal("expected apple_percentage aggregation")728 }729 if d == nil {730 t.Fatal("expected apple_percentage aggregation")731 }732 if d.Value == nil {733 t.Fatal("expected apple_percentage value != nil")734 }735 if got, want := *d.Value, float64(100.0); got != want {736 t.Fatalf("expected apple_percentage.value=%v; got: %v", want, got)737 }738739 d, found = agg.Buckets[1].BucketScript("apple_percentage")740 if !found {741 t.Fatal("expected apple_percentage aggregation")742 }743 if d == nil {744 t.Fatal("expected apple_percentage aggregation")745 }746 if d.Value != nil {747 t.Fatal("expected apple_percentage value == nil")748 }749750 d, found = agg.Buckets[2].BucketScript("apple_percentage")751 if !found {752 t.Fatal("expected apple_percentage aggregation")753 }754 if d == nil {755 t.Fatal("expected apple_percentage aggregation")756 }757 if d.Value == nil {758 t.Fatal("expected apple_percentage value != nil")759 }760 if got, want := *d.Value, float64(0.0); got != want {761 t.Fatalf("expected apple_percentage.value=%v; got: %v", want, got)762 }763764 d, found = agg.Buckets[3].BucketScript("apple_percentage")765 if !found {766 t.Fatal("expected apple_percentage aggregation")767 }768 if d == nil {769 t.Fatal("expected apple_percentage aggregation")770 }771 if d.Value == nil {772 t.Fatal("expected apple_percentage value != nil")773 }774 if got, want := *d.Value, float64(34.64052287581699); got != want {775 t.Fatalf("expected apple_percentage.value=%v; got: %v", want, got)776 }777778 d, found = agg.Buckets[4].BucketScript("apple_percentage")779 if !found {780 t.Fatal("expected apple_percentage aggregation")781 }782 if d == nil {783 t.Fatal("expected apple_percentage aggregation")784 }785 if d.Value == nil {786 t.Fatal("expected apple_percentage value != nil")787 }788 if got, want := *d.Value, float64(0.0); got != want {789 t.Fatalf("expected apple_percentage.value=%v; got: %v", want, got)790 }791792 d, found = agg.Buckets[5].BucketScript("apple_percentage")793 if !found {794 t.Fatal("expected apple_percentage aggregation")795 }796 if d == nil {797 t.Fatal("expected apple_percentage aggregation")798 }799 if d.Value == nil {800 t.Fatal("expected apple_percentage value != nil")801 }802 if got, want := *d.Value, float64(0.0); got != want {803 t.Fatalf("expected apple_percentage.value=%v; got: %v", want, got)804 }805}806807func TestAggsIntegrationBucketSelector(t *testing.T) {808 //client := setupTestClientAndCreateIndexAndAddDocs(t, SetTraceLog(log.New(os.Stdout, "", log.LstdFlags)))809 client := setupTestClientAndCreateIndexAndAddDocs(t)810811 esversion, err := client.ElasticsearchVersion(DefaultURL)812 if err != nil {813 t.Fatal(err)814 }815816 if esversion < "2.0" {817 t.Skipf("Elasticsearch %s does not have pipeline aggregations.", esversion)818 return819 }820821 // Match all should return all documents822 builder := client.Search().823 Index(testIndexName).824 Type("order").825 Query(NewMatchAllQuery()).826 Pretty(true)827 h := NewDateHistogramAggregation().Field("time").Interval("month")828 h = h.SubAggregation("total_sales", NewSumAggregation().Field("price"))829 h = h.SubAggregation("sales_bucket_filter",830 NewBucketSelectorAggregation().831 AddBucketsPath("totalSales", "total_sales").832 Script(NewScript("totalSales <= 100")))833 builder = builder.Aggregation("sales_per_month", h)834835 res, err := builder.Do()836 if err != nil {837 t.Fatalf("%v (maybe scripting is disabled?)", err)838 }839 if res.Hits == nil {840 t.Errorf("expected Hits != nil; got: nil")841 }842843 aggs := res.Aggregations844 if aggs == nil {845 t.Fatal("expected aggregations != nil; got: nil")846 }847848 agg, found := aggs.DateHistogram("sales_per_month")849 if !found {850 t.Fatal("expected sales_per_month aggregation")851 }852 if agg == nil {853 t.Fatal("expected sales_per_month aggregation")854 }855 if got, want := len(agg.Buckets), 2; got != want {856 t.Fatalf("expected %d buckets; got: %d", want, got)857 }858859 if got, want := agg.Buckets[0].DocCount, int64(1); got != want {860 t.Fatalf("expected DocCount=%d; got: %d", want, got)861 }862 if got, want := agg.Buckets[1].DocCount, int64(2); got != want {863 t.Fatalf("expected DocCount=%d; got: %d", want, got)864 }865}866867func TestAggsIntegrationSerialDiff(t *testing.T) {868 //client := setupTestClientAndCreateIndexAndAddDocs(t, SetTraceLog(log.New(os.Stdout, "", log.LstdFlags)))869 client := setupTestClientAndCreateIndexAndAddDocs(t)870871 esversion, err := client.ElasticsearchVersion(DefaultURL)872 if err != nil {873 t.Fatal(err)874 }875876 if esversion < "2.0" {877 t.Skipf("Elasticsearch %s does not have pipeline aggregations.", esversion)878 return879 }880881 // Match all should return all documents882 builder := client.Search().883 Index(testIndexName).884 Type("order").885 Query(NewMatchAllQuery()).886 Pretty(true)887 h := NewDateHistogramAggregation().Field("time").Interval("month")888 h = h.SubAggregation("sales", NewSumAggregation().Field("price"))889 h = h.SubAggregation("the_diff", NewSerialDiffAggregation().BucketsPath("sales").Lag(1))890 builder = builder.Aggregation("sales_per_month", h)891892 res, err := builder.Do()893 if err != nil {894 t.Fatal(err)895 }896 if res.Hits == nil {897 t.Errorf("expected Hits != nil; got: nil")898 }899900 aggs := res.Aggregations901 if aggs == nil {902 t.Fatal("expected aggregations != nil; got: nil")903 } ...

Full Screen

Full Screen

cheque_test.go

Source:cheque_test.go Github

copy

Full Screen

...36 addr1 = crypto.PubkeyToAddress(key1.PublicKey)37 addr2 = crypto.PubkeyToAddress(key2.PublicKey)38)39func newTestBackend() *backends.SimulatedBackend {40 return backends.NewSimulatedBackend(core.GenesisAlloc{41 addr0: {Balance: big.NewInt(1000000000)},42 addr1: {Balance: big.NewInt(1000000000)},43 addr2: {Balance: big.NewInt(1000000000)},44 })45}46func deploy(prvKey *ecdsa.PrivateKey, amount *big.Int, backend *backends.SimulatedBackend) (common.Address, error) {47 deployTransactor := bind.NewKeyedTransactor(prvKey)48 deployTransactor.Value = amount49 addr, _, _, err := contract.DeployChequebook(deployTransactor, backend)50 if err != nil {51 return common.Address{}, err52 }53 backend.Commit()54 return addr, nil55}56func TestIssueAndReceive(t *testing.T) {57 path := filepath.Join(os.TempDir(), "chequebook-test.json")58 backend := newTestBackend()59 addr0, err := deploy(key0, big.NewInt(0), backend)60 if err != nil {61 t.Fatalf("deploy contract: expected no error, got %v", err)62 }63 chbook, err := NewChequebook(path, addr0, key0, backend)64 if err != nil {65 t.Fatalf("expected no error, got %v", err)66 }67 chbook.sent[addr1] = new(big.Int).SetUint64(42)68 amount := common.Big169 if _, err = chbook.Issue(addr1, amount); err == nil {70 t.Fatalf("expected insufficient funds error, got none")71 }72 chbook.balance = new(big.Int).Set(common.Big1)73 if chbook.Balance().Cmp(common.Big1) != 0 {74 t.Fatalf("expected: %v, got %v", "0", chbook.Balance())75 }76 ch, err := chbook.Issue(addr1, amount)77 if err != nil {78 t.Fatalf("expected no error, got %v", err)79 }80 if chbook.Balance().Sign() != 0 {81 t.Errorf("expected: %v, got %v", "0", chbook.Balance())82 }83 chbox, err := NewInbox(key1, addr0, addr1, &key0.PublicKey, backend)84 if err != nil {85 t.Fatalf("expected no error, got %v", err)86 }87 received, err := chbox.Receive(ch)88 if err != nil {89 t.Fatalf("expected no error, got %v", err)90 }91 if received.Cmp(big.NewInt(43)) != 0 {92 t.Errorf("expected: %v, got %v", "43", received)93 }94}95func TestCheckbookFile(t *testing.T) {96 path := filepath.Join(os.TempDir(), "chequebook-test.json")97 backend := newTestBackend()98 chbook, err := NewChequebook(path, addr0, key0, backend)99 if err != nil {100 t.Fatalf("expected no error, got %v", err)101 }102 chbook.sent[addr1] = new(big.Int).SetUint64(42)103 chbook.balance = new(big.Int).Set(common.Big1)104 chbook.Save()105 chbook, err = LoadChequebook(path, key0, backend, false)106 if err != nil {107 t.Fatalf("expected no error, got %v", err)108 }109 if chbook.Balance().Cmp(common.Big1) != 0 {110 t.Errorf("expected: %v, got %v", "0", chbook.Balance())111 }112 var ch *Cheque113 if ch, err = chbook.Issue(addr1, common.Big1); err != nil {114 t.Fatalf("expected no error, got %v", err)115 }116 if ch.Amount.Cmp(new(big.Int).SetUint64(43)) != 0 {117 t.Errorf("expected: %v, got %v", "0", ch.Amount)118 }119 err = chbook.Save()120 if err != nil {121 t.Fatalf("expected no error, got %v", err)122 }123}124func TestVerifyErrors(t *testing.T) {125 path0 := filepath.Join(os.TempDir(), "chequebook-test-0.json")126 backend := newTestBackend()127 contr0, err := deploy(key0, common.Big2, backend)128 if err != nil {129 t.Errorf("expected no error, got %v", err)130 }131 chbook0, err := NewChequebook(path0, contr0, key0, backend)132 if err != nil {133 t.Errorf("expected no error, got %v", err)134 }135 path1 := filepath.Join(os.TempDir(), "chequebook-test-1.json")136 contr1, _ := deploy(key1, common.Big2, backend)137 chbook1, err := NewChequebook(path1, contr1, key1, backend)138 if err != nil {139 t.Errorf("expected no error, got %v", err)140 }141 chbook0.sent[addr1] = new(big.Int).SetUint64(42)142 chbook0.balance = new(big.Int).Set(common.Big2)143 chbook1.balance = new(big.Int).Set(common.Big1)144 amount := common.Big1145 ch0, err := chbook0.Issue(addr1, amount)146 if err != nil {147 t.Fatalf("expected no error, got %v", err)148 }149 chbox, err := NewInbox(key1, contr0, addr1, &key0.PublicKey, backend)150 if err != nil {151 t.Fatalf("expected no error, got %v", err)152 }153 received, err := chbox.Receive(ch0)154 if err != nil {155 t.Fatalf("expected no error, got %v", err)156 }157 if received.Cmp(big.NewInt(43)) != 0 {158 t.Errorf("expected: %v, got %v", "43", received)159 }160 ch1, err := chbook0.Issue(addr2, amount)161 if err != nil {162 t.Fatalf("expected no error, got %v", err)163 }164 received, err = chbox.Receive(ch1)165 t.Logf("correct error: %v", err)166 if err == nil {167 t.Fatalf("expected receiver error, got none and value %v", received)168 }169 ch2, err := chbook1.Issue(addr1, amount)170 if err != nil {171 t.Fatalf("expected no error, got %v", err)172 }173 received, err = chbox.Receive(ch2)174 t.Logf("correct error: %v", err)175 if err == nil {176 t.Fatalf("expected sender error, got none and value %v", received)177 }178 _, err = chbook1.Issue(addr1, new(big.Int).SetInt64(-1))179 t.Logf("correct error: %v", err)180 if err == nil {181 t.Fatalf("expected incorrect amount error, got none")182 }183 received, err = chbox.Receive(ch0)184 t.Logf("correct error: %v", err)185 if err == nil {186 t.Fatalf("expected incorrect amount error, got none and value %v", received)187 }188}189func TestDeposit(t *testing.T) {190 path0 := filepath.Join(os.TempDir(), "chequebook-test-0.json")191 backend := newTestBackend()192 contr0, _ := deploy(key0, new(big.Int), backend)193 chbook, err := NewChequebook(path0, contr0, key0, backend)194 if err != nil {195 t.Errorf("expected no error, got %v", err)196 }197 balance := new(big.Int).SetUint64(42)198 chbook.Deposit(balance)199 backend.Commit()200 if chbook.Balance().Cmp(balance) != 0 {201 t.Fatalf("expected balance %v, got %v", balance, chbook.Balance())202 }203 amount := common.Big1204 _, err = chbook.Issue(addr1, amount)205 if err != nil {206 t.Fatalf("expected no error, got %v", err)207 }208 backend.Commit()209 exp := new(big.Int).SetUint64(41)210 if chbook.Balance().Cmp(exp) != 0 {211 t.Fatalf("expected balance %v, got %v", exp, chbook.Balance())212 }213 // autodeposit on each issue214 chbook.AutoDeposit(0, balance, balance)215 _, err = chbook.Issue(addr1, amount)216 if err != nil {217 t.Fatalf("expected no error, got %v", err)218 }219 backend.Commit()220 _, err = chbook.Issue(addr1, amount)221 if err != nil {222 t.Fatalf("expected no error, got %v", err)223 }224 backend.Commit()225 if chbook.Balance().Cmp(balance) != 0 {226 t.Fatalf("expected balance %v, got %v", balance, chbook.Balance())227 }228 // autodeposit off229 chbook.AutoDeposit(0, common.Big0, balance)230 _, err = chbook.Issue(addr1, amount)231 if err != nil {232 t.Fatalf("expected no error, got %v", err)233 }234 backend.Commit()235 _, err = chbook.Issue(addr1, amount)236 if err != nil {237 t.Fatalf("expected no error, got %v", err)238 }239 backend.Commit()240 exp = new(big.Int).SetUint64(40)241 if chbook.Balance().Cmp(exp) != 0 {242 t.Fatalf("expected balance %v, got %v", exp, chbook.Balance())243 }244 // autodeposit every 30ms if new cheque issued245 interval := 30 * time.Millisecond246 chbook.AutoDeposit(interval, common.Big1, balance)247 _, err = chbook.Issue(addr1, amount)248 if err != nil {249 t.Fatalf("expected no error, got %v", err)250 }251 backend.Commit()252 _, err = chbook.Issue(addr1, amount)253 if err != nil {254 t.Fatalf("expected no error, got %v", err)255 }256 backend.Commit()257 exp = new(big.Int).SetUint64(38)258 if chbook.Balance().Cmp(exp) != 0 {259 t.Fatalf("expected balance %v, got %v", exp, chbook.Balance())260 }261 time.Sleep(3 * interval)262 backend.Commit()263 if chbook.Balance().Cmp(balance) != 0 {264 t.Fatalf("expected balance %v, got %v", balance, chbook.Balance())265 }266 exp = new(big.Int).SetUint64(40)267 chbook.AutoDeposit(4*interval, exp, balance)268 _, err = chbook.Issue(addr1, amount)269 if err != nil {270 t.Fatalf("expected no error, got %v", err)271 }272 backend.Commit()273 _, err = chbook.Issue(addr1, amount)274 if err != nil {275 t.Fatalf("expected no error, got %v", err)276 }277 time.Sleep(3 * interval)278 backend.Commit()279 if chbook.Balance().Cmp(exp) != 0 {280 t.Fatalf("expected balance %v, got %v", exp, chbook.Balance())281 }282 _, err = chbook.Issue(addr1, amount)283 if err != nil {284 t.Fatalf("expected no error, got %v", err)285 }286 time.Sleep(1 * interval)287 backend.Commit()288 if chbook.Balance().Cmp(balance) != 0 {289 t.Fatalf("expected balance %v, got %v", balance, chbook.Balance())290 }291 chbook.AutoDeposit(1*interval, common.Big0, balance)292 chbook.Stop()293 _, err = chbook.Issue(addr1, common.Big1)294 if err != nil {295 t.Fatalf("expected no error, got %v", err)296 }297 backend.Commit()298 _, err = chbook.Issue(addr1, common.Big2)299 if err != nil {300 t.Fatalf("expected no error, got %v", err)301 }302 time.Sleep(1 * interval)303 backend.Commit()304 exp = new(big.Int).SetUint64(39)305 if chbook.Balance().Cmp(exp) != 0 {306 t.Fatalf("expected balance %v, got %v", exp, chbook.Balance())307 }308}309func TestCash(t *testing.T) {310 path := filepath.Join(os.TempDir(), "chequebook-test.json")311 backend := newTestBackend()312 contr0, _ := deploy(key0, common.Big2, backend)313 chbook, err := NewChequebook(path, contr0, key0, backend)314 if err != nil {315 t.Errorf("expected no error, got %v", err)316 }317 chbook.sent[addr1] = new(big.Int).SetUint64(42)318 amount := common.Big1319 chbook.balance = new(big.Int).Set(common.Big1)320 ch, err := chbook.Issue(addr1, amount)321 if err != nil {322 t.Fatalf("expected no error, got %v", err)323 }324 backend.Commit()325 chbox, err := NewInbox(key1, contr0, addr1, &key0.PublicKey, backend)326 if err != nil {327 t.Fatalf("expected no error, got %v", err)328 }329 // cashing latest cheque330 if _, err = chbox.Receive(ch); err != nil {331 t.Fatalf("expected no error, got %v", err)332 }333 if _, err = ch.Cash(chbook.session); err != nil {334 t.Fatal("Cash failed:", err)335 }336 backend.Commit()337 chbook.balance = new(big.Int).Set(common.Big3)338 ch0, err := chbook.Issue(addr1, amount)339 if err != nil {340 t.Fatalf("expected no error, got %v", err)341 }342 backend.Commit()343 ch1, err := chbook.Issue(addr1, amount)344 if err != nil {345 t.Fatalf("expected no error, got %v", err)346 }347 backend.Commit()348 interval := 10 * time.Millisecond349 // setting autocash with interval of 10ms350 chbox.AutoCash(interval, nil)351 _, err = chbox.Receive(ch0)352 if err != nil {353 t.Fatalf("expected no error, got %v", err)354 }355 _, err = chbox.Receive(ch1)356 if err != nil {357 t.Fatalf("expected no error, got %v", err)358 }359 backend.Commit()360 // after 3x interval time and 2 cheques received, exactly one cashing tx is sent361 time.Sleep(4 * interval)362 backend.Commit()363 // after stopping autocash no more tx are sent364 ch2, err := chbook.Issue(addr1, amount)365 if err != nil {366 t.Fatalf("expected no error, got %v", err)367 }368 chbox.Stop()369 _, err = chbox.Receive(ch2)370 if err != nil {371 t.Fatalf("expected no error, got %v", err)372 }373 time.Sleep(2 * interval)374 backend.Commit()375 // autocash below 1376 chbook.balance = big.NewInt(2)377 chbox.AutoCash(0, common.Big1)378 ch3, err := chbook.Issue(addr1, amount)379 if err != nil {380 t.Fatalf("expected no error, got %v", err)381 }382 backend.Commit()383 ch4, err := chbook.Issue(addr1, amount)384 if err != nil {385 t.Fatalf("expected no error, got %v", err)386 }387 backend.Commit()388 _, err = chbox.Receive(ch3)389 if err != nil {390 t.Fatalf("expected no error, got %v", err)...

Full Screen

Full Screen

search_source_test.go

Source:search_source_test.go Github

copy

Full Screen

...9 "testing"10)1112func TestSearchSourceMatchAllQuery(t *testing.T) {13 matchAllQ := NewMatchAllQuery()14 builder := NewSearchSource().Query(matchAllQ)15 src, err := builder.Source()16 if err != nil {17 t.Fatal(err)18 }19 data, err := json.Marshal(src)20 if err != nil {21 t.Fatalf("marshaling to JSON failed: %v", err)22 }23 got := string(data)24 expected := `{"query":{"match_all":{}}}`25 if got != expected {26 t.Errorf("expected\n%s\n,got:\n%s", expected, got)27 }28}2930func TestSearchSourceNoFields(t *testing.T) {31 matchAllQ := NewMatchAllQuery()32 builder := NewSearchSource().Query(matchAllQ).NoFields()33 src, err := builder.Source()34 if err != nil {35 t.Fatal(err)36 }37 data, err := json.Marshal(src)38 if err != nil {39 t.Fatalf("marshaling to JSON failed: %v", err)40 }41 got := string(data)42 expected := `{"fields":[],"query":{"match_all":{}}}`43 if got != expected {44 t.Errorf("expected\n%s\n,got:\n%s", expected, got)45 }46}4748func TestSearchSourceFields(t *testing.T) {49 matchAllQ := NewMatchAllQuery()50 builder := NewSearchSource().Query(matchAllQ).Fields("message", "tags")51 src, err := builder.Source()52 if err != nil {53 t.Fatal(err)54 }55 data, err := json.Marshal(src)56 if err != nil {57 t.Fatalf("marshaling to JSON failed: %v", err)58 }59 got := string(data)60 expected := `{"fields":["message","tags"],"query":{"match_all":{}}}`61 if got != expected {62 t.Errorf("expected\n%s\n,got:\n%s", expected, got)63 }64}6566func TestSearchSourceFetchSourceDisabled(t *testing.T) {67 matchAllQ := NewMatchAllQuery()68 builder := NewSearchSource().Query(matchAllQ).FetchSource(false)69 src, err := builder.Source()70 if err != nil {71 t.Fatal(err)72 }73 data, err := json.Marshal(src)74 if err != nil {75 t.Fatalf("marshaling to JSON failed: %v", err)76 }77 got := string(data)78 expected := `{"_source":false,"query":{"match_all":{}}}`79 if got != expected {80 t.Errorf("expected\n%s\n,got:\n%s", expected, got)81 }82}8384func TestSearchSourceFetchSourceByWildcards(t *testing.T) {85 matchAllQ := NewMatchAllQuery()86 fsc := NewFetchSourceContext(true).Include("obj1.*", "obj2.*").Exclude("*.description")87 builder := NewSearchSource().Query(matchAllQ).FetchSourceContext(fsc)88 src, err := builder.Source()89 if err != nil {90 t.Fatal(err)91 }92 data, err := json.Marshal(src)93 if err != nil {94 t.Fatalf("marshaling to JSON failed: %v", err)95 }96 got := string(data)97 expected := `{"_source":{"excludes":["*.description"],"includes":["obj1.*","obj2.*"]},"query":{"match_all":{}}}`98 if got != expected {99 t.Errorf("expected\n%s\n,got:\n%s", expected, got)100 }101}102103func TestSearchSourceFieldDataFields(t *testing.T) {104 matchAllQ := NewMatchAllQuery()105 builder := NewSearchSource().Query(matchAllQ).FieldDataFields("test1", "test2")106 src, err := builder.Source()107 if err != nil {108 t.Fatal(err)109 }110 data, err := json.Marshal(src)111 if err != nil {112 t.Fatalf("marshaling to JSON failed: %v", err)113 }114 got := string(data)115 expected := `{"fielddata_fields":["test1","test2"],"query":{"match_all":{}}}`116 if got != expected {117 t.Errorf("expected\n%s\n,got:\n%s", expected, got)118 }119}120121func TestSearchSourceScriptFields(t *testing.T) {122 matchAllQ := NewMatchAllQuery()123 sf1 := NewScriptField("test1", NewScript("doc['my_field_name'].value * 2"))124 sf2 := NewScriptField("test2", NewScript("doc['my_field_name'].value * factor").Param("factor", 3.1415927))125 builder := NewSearchSource().Query(matchAllQ).ScriptFields(sf1, sf2)126 src, err := builder.Source()127 if err != nil {128 t.Fatal(err)129 }130 data, err := json.Marshal(src)131 if err != nil {132 t.Fatalf("marshaling to JSON failed: %v", err)133 }134 got := string(data)135 expected := `{"query":{"match_all":{}},"script_fields":{"test1":{"script":"doc['my_field_name'].value * 2"},"test2":{"script":{"inline":"doc['my_field_name'].value * factor","params":{"factor":3.1415927}}}}}`136 if got != expected {137 t.Errorf("expected\n%s\n,got:\n%s", expected, got)138 }139}140141func TestSearchSourcePostFilter(t *testing.T) {142 matchAllQ := NewMatchAllQuery()143 pf := NewTermQuery("tag", "important")144 builder := NewSearchSource().Query(matchAllQ).PostFilter(pf)145 src, err := builder.Source()146 if err != nil {147 t.Fatal(err)148 }149 data, err := json.Marshal(src)150 if err != nil {151 t.Fatalf("marshaling to JSON failed: %v", err)152 }153 got := string(data)154 expected := `{"post_filter":{"term":{"tag":"important"}},"query":{"match_all":{}}}`155 if got != expected {156 t.Errorf("expected\n%s\n,got:\n%s", expected, got)157 }158}159160func TestSearchSourceHighlight(t *testing.T) {161 matchAllQ := NewMatchAllQuery()162 hl := NewHighlight().Field("content")163 builder := NewSearchSource().Query(matchAllQ).Highlight(hl)164 src, err := builder.Source()165 if err != nil {166 t.Fatal(err)167 }168 data, err := json.Marshal(src)169 if err != nil {170 t.Fatalf("marshaling to JSON failed: %v", err)171 }172 got := string(data)173 expected := `{"highlight":{"fields":{"content":{}}},"query":{"match_all":{}}}`174 if got != expected {175 t.Errorf("expected\n%s\n,got:\n%s", expected, got)176 }177}178179func TestSearchSourceRescoring(t *testing.T) {180 matchAllQ := NewMatchAllQuery()181 rescorerQuery := NewMatchQuery("field1", "the quick brown fox").Type("phrase").Slop(2)182 rescorer := NewQueryRescorer(rescorerQuery)183 rescorer = rescorer.QueryWeight(0.7)184 rescorer = rescorer.RescoreQueryWeight(1.2)185 rescore := NewRescore().WindowSize(50).Rescorer(rescorer)186 builder := NewSearchSource().Query(matchAllQ).Rescorer(rescore)187 src, err := builder.Source()188 if err != nil {189 t.Fatal(err)190 }191 data, err := json.Marshal(src)192 if err != nil {193 t.Fatalf("marshaling to JSON failed: %v", err)194 }195 got := string(data)196 expected := `{"query":{"match_all":{}},"rescore":{"query":{"query_weight":0.7,"rescore_query":{"match":{"field1":{"query":"the quick brown fox","slop":2,"type":"phrase"}}},"rescore_query_weight":1.2},"window_size":50}}`197 if got != expected {198 t.Errorf("expected\n%s\n,got:\n%s", expected, got)199 }200}201202func TestSearchSourceIndexBoost(t *testing.T) {203 matchAllQ := NewMatchAllQuery()204 builder := NewSearchSource().Query(matchAllQ).IndexBoost("index1", 1.4).IndexBoost("index2", 1.3)205 src, err := builder.Source()206 if err != nil {207 t.Fatal(err)208 }209 data, err := json.Marshal(src)210 if err != nil {211 t.Fatalf("marshaling to JSON failed: %v", err)212 }213 got := string(data)214 expected := `{"indices_boost":{"index1":1.4,"index2":1.3},"query":{"match_all":{}}}`215 if got != expected {216 t.Errorf("expected\n%s\n,got:\n%s", expected, got)217 }218}219220func TestSearchSourceMixDifferentSorters(t *testing.T) {221 matchAllQ := NewMatchAllQuery()222 builder := NewSearchSource().Query(matchAllQ).223 Sort("a", false).224 SortWithInfo(SortInfo{Field: "b", Ascending: true}).225 SortBy(NewScriptSort(NewScript("doc['field_name'].value * factor").Param("factor", 1.1), "number"))226 src, err := builder.Source()227 if err != nil {228 t.Fatal(err)229 }230 data, err := json.Marshal(src)231 if err != nil {232 t.Fatalf("marshaling to JSON failed: %v", err)233 }234 got := string(data)235 expected := `{"query":{"match_all":{}},"sort":[{"a":{"order":"desc"}},{"b":{"order":"asc"}},{"_script":{"script":{"inline":"doc['field_name'].value * factor","params":{"factor":1.1}},"type":"number"}}]}`236 if got != expected {237 t.Errorf("expected\n%s\n,got:\n%s", expected, got)238 }239}240241func TestSearchSourceInnerHits(t *testing.T) {242 matchAllQ := NewMatchAllQuery()243 builder := NewSearchSource().Query(matchAllQ).244 InnerHit("comments", NewInnerHit().Type("comment").Query(NewMatchQuery("user", "olivere"))).245 InnerHit("views", NewInnerHit().Path("view"))246 src, err := builder.Source()247 if err != nil {248 t.Fatal(err)249 }250 data, err := json.Marshal(src)251 if err != nil {252 t.Fatalf("marshaling to JSON failed: %v", err)253 }254 got := string(data)255 expected := `{"inner_hits":{"comments":{"type":{"comment":{"query":{"match":{"user":{"query":"olivere"}}}}}},"views":{"path":{"view":{}}}},"query":{"match_all":{}}}`256 if got != expected {257 t.Errorf("expected\n%s\n,got:\n%s", expected, got)258 }259} ...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful