public void PASS_Create()
        {
            GlobalAggregate agg = new GlobalAggregate("name", new List<IAggregation>()
                {
                    new AverageAggregate("avg-name", "field")
                });

            Assert.IsNotNull(agg);
            Assert.AreEqual("name", agg.Name);
            Assert.AreEqual("avg-name", agg.SubAggregations.First().Name);
            Assert.AreEqual("field", (agg.SubAggregations.First() as AverageAggregate).Field);
        }
        public void PASS_Serialize()
        {
            GlobalAggregate agg = new GlobalAggregate("name", new List<IAggregation>()
                {
                    new AverageAggregate("avg-name", "field")
                });

            string json = JsonConvert.SerializeObject(agg);
            Assert.IsNotNull(json);

            string expectedJson = "{\"name\":{\"global\":{},\"aggregations\":{\"avg-name\":{\"avg\":{\"field\":\"field\"}}}}}";
            Assert.AreEqual(expectedJson, json);
        }
        public void PASS_Serialize_Avg_Sum()
        {
            GlobalAggregate agg = new GlobalAggregate("name", new List<IAggregation>()
                {
                    new AverageAggregate("avg-name", "field"),
                    new SumAggregate("sum-name", "field", new Script("scripttext")
                        {
                            Language = "python",
                            Parameters = new List<ScriptParameter>()
                            {
                                new ScriptParameter("name1", "value1"),
                                new ScriptParameter("name2", 2)
                            }
                        })
                });

            string json = JsonConvert.SerializeObject(agg);
            Assert.IsNotNull(json);

            string expectedJson = "{\"name\":{\"global\":{},\"aggregations\":{\"avg-name\":{\"avg\":{\"field\":\"field\"}},\"sum-name\":{\"sum\":{\"field\":\"field\",\"lang\":\"python\",\"script\":\"scripttext\",\"params\":{\"name1\":\"value1\",\"name2\":2}}}}}}";
            Assert.AreEqual(expectedJson, json);
        }