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