diff --git a/Aggregation/ReverseNestedAggregationTest.php b/Aggregation/ReverseNestedAggregationTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..e4e8eeef0bee080d9466b7739f15ceeeabcc18b5
--- /dev/null
+++ b/Aggregation/ReverseNestedAggregationTest.php
@@ -0,0 +1,97 @@
+<?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\ElasticsearchBundle\Tests\Unit\DSL\Aggregation;
+
+use ONGR\ElasticsearchBundle\DSL\Aggregation\ReverseNestedAggregation;
+
+class ReverseNestedAggregationTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Test for reverse_nested aggregation toArray() method exception.
+     *
+     * @expectedException \LogicException
+     */
+    public function testToArrayException()
+    {
+        $aggregation = new ReverseNestedAggregation('test_agg');
+        $aggregation->setPath('test_path');
+
+        $expectedResult = [
+            'agg_test_agg' => [
+                'reverse_nested' => ['path' => 'test_path'],
+            ],
+        ];
+
+        $this->assertEquals($expectedResult, $aggregation->toArray());
+    }
+
+    /**
+     * Test for reverse_nested aggregation toArray() method exception.
+     */
+    public function testToArray()
+    {
+        $termMock = $this
+            ->getMockBuilder('ONGR\ElasticsearchBundle\DSL\Aggregation\TermsAggregation')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $termMock
+            ->expects($this->once())
+            ->method('toArray')
+            ->will($this->returnValue(['terms' => []]));
+
+        $aggregation = new ReverseNestedAggregation('test_nested_agg');
+        $aggregation->setPath('test_path');
+        $aggregation->addAggregation($termMock);
+
+        $expectedResult = [
+            'agg_test_nested_agg' => [
+                'reverse_nested' => ['path' => 'test_path'],
+                'aggregations' => [
+                    'terms' => [],
+                ],
+            ],
+        ];
+
+        $this->assertEquals($expectedResult, $aggregation->toArray());
+    }
+
+    /**
+     * Test for reverse_nested aggregation toArray() without path.
+     */
+    public function testToArrayNoPath()
+    {
+        $termMock = $this
+            ->getMockBuilder('ONGR\ElasticsearchBundle\DSL\Aggregation\TermsAggregation')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $termMock
+            ->expects($this->once())
+            ->method('toArray')
+            ->will($this->returnValue(['terms' => []]));
+
+        $aggregation = new ReverseNestedAggregation('test_nested_agg');
+        $aggregation->addAggregation($termMock);
+
+        $expectedResult = [
+            'agg_test_nested_agg' => [
+                'reverse_nested' => new \stdClass(),
+                'aggregations' => [
+                    'terms' => [],
+                ],
+            ],
+        ];
+
+        $this->assertEquals($expectedResult, $aggregation->toArray());
+    }
+}