diff --git a/tests/Integration/SearchTest.php b/tests/Integration/SearchTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..9573f57b3b1e6382a5f4918cd73189e87dccd812
--- /dev/null
+++ b/tests/Integration/SearchTest.php
@@ -0,0 +1,141 @@
+<?php
+
+/*
+ * This file is part of the ONGR package.
+ *
+ * (c) NFQ Technologies UAB <info@nfq.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace ONGR\ElasticsearchDSL\Tests\Aggregation\Integration;
+
+use ONGR\ElasticsearchDSL\Aggregation\FiltersAggregation;
+use ONGR\ElasticsearchDSL\Aggregation\HistogramAggregation;
+use ONGR\ElasticsearchDSL\Query\TermQuery;
+use ONGR\ElasticsearchDSL\Search;
+use PHPUnit_Framework_TestCase;
+
+/**
+ * Tests integration of examples from the documentation.
+ */
+class SearchTest extends PHPUnit_Framework_TestCase
+{
+    /**
+     * Tests integration of the FiltersAggregation named example from the documentation.
+     *
+     * @link https://github.com/ongr-io/ElasticsearchDSL/blob/master/docs/Aggregation/Filters.md#named-example
+     */
+    public function testFiltersAggregationNamedExample()
+    {
+        $errorTermFilter = new TermQuery('body', 'error');
+        $warningTermFilter = new TermQuery('body', 'warning');
+
+        $histogramAggregation = new HistogramAggregation('monthly', 'timestamp');
+        $histogramAggregation->setInterval('1M');
+
+        $filterAggregation = new FiltersAggregation(
+            'grades_stats',
+            [
+                'error' => $errorTermFilter,
+                'warning' => $warningTermFilter,
+            ]
+        );
+        $filterAggregation->addAggregation($histogramAggregation);
+
+        $search = new Search();
+        $search->addAggregation($filterAggregation);
+
+        $this->assertSame(
+            [
+                'aggregations' => [
+                    'grades_stats' => [
+                        'filters' => [
+                            'filters' => [
+                                'error' => [
+                                    'term' => [
+                                        'body' => 'error',
+                                    ],
+                                ],
+                                'warning' => [
+                                    'term' => [
+                                        'body' => 'warning',
+                                    ],
+                                ],
+                            ],
+                        ],
+                        'aggregations' => [
+                            'monthly' => [
+                                'histogram' => [
+                                    'field' => 'timestamp',
+                                    'interval' => '1M',
+                                ],
+                            ],
+                        ],
+                    ],
+                ],
+            ],
+            $search->toArray()
+        );
+    }
+
+    /**
+     * Tests integration of the FiltersAggregation anonymous example from the documentation.
+     *
+     * @link https://github.com/ongr-io/ElasticsearchDSL/blob/master/docs/Aggregation/Filters.md#anonymous-example
+     */
+    public function testFiltersAggregationAnonymousExample()
+    {
+        $errorTermFilter = new TermQuery('body', 'error');
+        $warningTermFilter = new TermQuery('body', 'warning');
+
+        $histogramAggregation = new HistogramAggregation('monthly', 'timestamp');
+        $histogramAggregation->setInterval('1M');
+
+        $filterAggregation = new FiltersAggregation(
+            'grades_stats',
+            [
+                'error' => $errorTermFilter,
+                'warning' => $warningTermFilter,
+            ],
+            true
+        );
+        $filterAggregation->addAggregation($histogramAggregation);
+
+        $search = new Search();
+        $search->addAggregation($filterAggregation);
+
+        $this->assertSame(
+            [
+                'aggregations' => [
+                    'grades_stats' => [
+                        'filters' => [
+                            'filters' => [
+                                [
+                                    'term' => [
+                                        'body' => 'error',
+                                    ],
+                                ],
+                                [
+                                    'term' => [
+                                        'body' => 'warning',
+                                    ],
+                                ],
+                            ],
+                        ],
+                        'aggregations' => [
+                            'monthly' => [
+                                'histogram' => [
+                                    'field' => 'timestamp',
+                                    'interval' => '1M',
+                                ],
+                            ],
+                        ],
+                    ],
+                ],
+            ],
+            $search->toArray()
+        );
+    }
+}