-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnested_query_test.go
136 lines (111 loc) · 3.21 KB
/
nested_query_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package es_test
import (
"testing"
ScoreMode "github.com/Trendyol/es-query-builder/es/enums/score-mode"
"github.com/Trendyol/es-query-builder/es"
"github.com/Trendyol/es-query-builder/test/assert"
)
//// Nested ////
func Test_Nested_should_exist_on_es_package(t *testing.T) {
t.Parallel()
// Given When Then
assert.NotNil(t, es.Nested[any])
}
func Test_Nested_method_should_create_nestedType(t *testing.T) {
t.Parallel()
// Given
n := es.Nested("path", es.Object{})
// Then
assert.NotNil(t, n)
assert.IsTypeString(t, "es.nestedType", n)
}
func Test_Nested_should_create_query_json_with_nested_field_inside(t *testing.T) {
t.Parallel()
// Given
query := es.NewQuery(
es.Nested("nested.path",
es.Object{},
),
)
// When Then
assert.NotNil(t, query)
bodyJSON := assert.MarshalWithoutError(t, query)
assert.Equal(t, "{\"query\":{\"nested\":{\"path\":\"nested.path\",\"query\":{}}}}", bodyJSON)
}
func Test_Nested_should_have_InnerHits_method(t *testing.T) {
t.Parallel()
// Given
n := es.Nested("path", es.Object{})
// When Then
assert.NotNil(t, n.InnerHits)
}
func Test_InnerHits_should_add_inner_hits_field_into_Nested(t *testing.T) {
t.Parallel()
// Given
query := es.NewQuery(
es.Nested("nested.path", es.Object{}).
InnerHits(
es.InnerHits().
Size(1_000).
From(5_000),
),
)
// When Then
assert.NotNil(t, query)
bodyJSON := assert.MarshalWithoutError(t, query)
assert.Equal(t, "{\"query\":{\"nested\":{\"inner_hits\":{\"from\":5000,\"size\":1000},\"path\":\"nested.path\",\"query\":{}}}}", bodyJSON)
}
func Test_Nested_should_have_ScoreMode_method(t *testing.T) {
t.Parallel()
// Given
n := es.Nested("path", es.Object{})
// When Then
assert.NotNil(t, n.ScoreMode)
}
func Test_ScoreMod_should_add_score_mode_field_into_Nested(t *testing.T) {
t.Parallel()
// Given
query := es.NewQuery(
es.Nested("nested.path", es.Object{}).ScoreMode(ScoreMode.Sum),
)
// When Then
assert.NotNil(t, query)
bodyJSON := assert.MarshalWithoutError(t, query)
assert.Equal(t, "{\"query\":{\"nested\":{\"path\":\"nested.path\",\"query\":{},\"score_mode\":\"sum\"}}}", bodyJSON)
}
func Test_Nested_should_have_Boost_method(t *testing.T) {
t.Parallel()
// Given
n := es.Nested("path", es.Object{})
// When Then
assert.NotNil(t, n.Boost)
}
func Test_Boost_should_add_boost_field_into_Nested(t *testing.T) {
t.Parallel()
// Given
query := es.NewQuery(
es.Nested("nested.path", es.Object{}).Boost(5.56),
)
// When Then
assert.NotNil(t, query)
bodyJSON := assert.MarshalWithoutError(t, query)
assert.Equal(t, "{\"query\":{\"nested\":{\"boost\":5.56,\"path\":\"nested.path\",\"query\":{}}}}", bodyJSON)
}
func Test_Nested_should_have_IgnoreUnmapped_method(t *testing.T) {
t.Parallel()
// Given
n := es.Nested("path", es.Object{})
// When Then
assert.NotNil(t, n.IgnoreUnmapped)
}
func Test_IgnoreUnmapped_should_add_ignore_unmapped_field_into_Nested(t *testing.T) {
t.Parallel()
// Given
query := es.NewQuery(
es.Nested("nested.path", es.Object{}).IgnoreUnmapped(true),
)
// When Then
assert.NotNil(t, query)
bodyJSON := assert.MarshalWithoutError(t, query)
assert.Equal(t, "{\"query\":{\"nested\":{\"ignore_unmapped\":true,\"path\":\"nested.path\",\"query\":{}}}}", bodyJSON)
}