func TestFilters(t *testing.T) {
	query := types.NewInsightsV3Query()

	Convey("QueryFilters", t, func() {
		Convey("Add a filter group", func() {
			query.AddFilters(types.NewInsightsV3FilterGroup())
			So(len(query.Filters), ShouldEqual, 1)

			query.AddFilters(types.NewInsightsV3FilterGroup())
			So(len(query.Filters), ShouldEqual, 2)
		})
	})
}
func TestFilterGroup(t *testing.T) {
	group := types.NewInsightsV3FilterGroup()

	Convey("TestFilterGroup", t, func() {
		Convey("Test add filter", func() {
			So(len(group.Filters), ShouldEqual, 0)
			filter := types.NewInsightsV3Filter()
			filter.Field = "Custom Fields"
			filter.Type = "Include"

			group.Add(filter)
			So(len(group.Filters), ShouldEqual, 1)

			j, err := group.MarshalJSON()

			So(err, ShouldBeNil)
			So(j, ShouldNotBeNil)

			json := string(j)
			So(json, ShouldContainSubstring, "Custom Fields")
			So(json, ShouldContainSubstring, "Include")
		})
	})
}