@@ -47,4 +47,76 @@ public function testGetType()
4747 $ result = $ aggregation ->getType ();
4848 $ this ->assertEquals ('composite ' , $ result );
4949 }
50+
51+ public function testTermsSourceWithOrderParameter ()
52+ {
53+ $ compositeAgg = new CompositeAggregation ('composite_with_order ' );
54+ $ termsAgg = new TermsAggregation ('test_term_agg ' , 'test_field ' );
55+ $ termsAgg ->addParameter ('order ' , 'asc ' );
56+ $ compositeAgg ->addSource ($ termsAgg );
57+
58+ $ expectedResult = [
59+ 'composite ' => [
60+ 'sources ' => [
61+ [
62+ 'test_term_agg ' => [ 'terms ' => ['field ' => 'test_field ' , 'order ' => 'asc ' ] ],
63+ ]
64+ ]
65+ ],
66+ ];
67+
68+ $ this ->assertEquals ($ expectedResult , $ compositeAgg ->toArray ());
69+ }
70+
71+
72+ public function testTermsSourceWithDescOrderParameter ()
73+ {
74+ $ compositeAgg = new CompositeAggregation ('composite_with_order ' );
75+ $ termsAgg = new TermsAggregation ('test_term_agg ' , 'test_field ' );
76+ $ termsAgg ->addParameter ('order ' , 'desc ' );
77+ $ compositeAgg ->addSource ($ termsAgg );
78+
79+ $ expectedResult = [
80+ 'composite ' => [
81+ 'sources ' => [
82+ [
83+ 'test_term_agg ' => [ 'terms ' => ['field ' => 'test_field ' , 'order ' => 'desc ' ] ],
84+ ]
85+ ]
86+ ],
87+ ];
88+
89+ $ this ->assertEquals ($ expectedResult , $ compositeAgg ->toArray ());
90+ }
91+
92+
93+ public function testMultipleSourcesWithDifferentOrders ()
94+ {
95+ $ compositeAgg = new CompositeAggregation ('composite_with_order ' );
96+
97+ $ termsAgg = new TermsAggregation ('test_term_agg_1 ' , 'test_field ' );
98+ $ termsAgg ->addParameter ('order ' , 'desc ' );
99+ $ compositeAgg ->addSource ($ termsAgg );
100+
101+ $ termsAgg = new TermsAggregation ('test_term_agg_2 ' , 'test_field ' );
102+ $ termsAgg ->addParameter ('order ' , 'asc ' );
103+ $ compositeAgg ->addSource ($ termsAgg );
104+
105+ $ expectedResult = [
106+ 'composite ' => [
107+ 'sources ' => [
108+ [
109+ 'test_term_agg_1 ' => [ 'terms ' => ['field ' => 'test_field ' , 'order ' => 'desc ' ] ],
110+ ],
111+ [
112+ 'test_term_agg_2 ' => [ 'terms ' => ['field ' => 'test_field ' , 'order ' => 'asc ' ] ],
113+ ]
114+ ]
115+ ],
116+ ];
117+
118+ $ this ->assertEquals ($ expectedResult , $ compositeAgg ->toArray ());
119+ }
120+
121+
50122}
0 commit comments