diff --git a/src/armnnTfLiteParser/test/ResizeNearestNeighbor.cpp b/src/armnnTfLiteParser/test/ResizeNearestNeighbor.cpp
new file mode 100644
index 0000000..fada810
--- /dev/null
+++ b/src/armnnTfLiteParser/test/ResizeNearestNeighbor.cpp
@@ -0,0 +1,111 @@
+//
+// Copyright © 2019 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include <boost/test/unit_test.hpp>
+#include "ParserFlatbuffersFixture.hpp"
+#include "../TfLiteParser.hpp"
+
+#include <string>
+#include <iostream>
+
+using armnnTfLiteParser::TfLiteParser;
+
+BOOST_AUTO_TEST_SUITE(TensorflowLiteParser)
+
+struct ResizeNearestNeighborFixture : public ParserFlatbuffersFixture
+{
+    explicit ResizeNearestNeighborFixture(const std::string & inputShape,
+                                          const std::string & outputShape,
+                                          const std::string & sizeShape,
+                                          const std::string & sizeData)
+    {
+        m_JsonString = R"(
+            {
+                "version": 3,
+                "operator_codes": [ { "builtin_code": "RESIZE_NEAREST_NEIGHBOR" } ],
+                "subgraphs": [ {
+                    "tensors": [
+                        {
+                            "shape": )" + sizeShape + R"( ,
+                            "type": "INT32",
+                            "buffer": 0,
+                            "name": "sizeTensor",
+                            "quantization": {
+                                "min": [ 0.0 ],
+                                "max": [ 255.0 ],
+                                "scale": [ 1.0 ],
+                                "zero_point": [ 0 ],
+                            }
+                        },
+                        {
+                            "shape": )" + inputShape + R"(,
+                            "type": "FLOAT32",
+                            "buffer": 1,
+                            "name": "InputTensor",
+                            "quantization": {
+                                "min": [ 0.0 ],
+                                "max": [ 255.0 ],
+                                "scale": [ 1.0 ],
+                                "zero_point": [ 0 ],
+                            }
+                        },
+                        {
+                            "shape": )" + outputShape + R"( ,
+                            "type": "FLOAT32",
+                            "buffer": 2,
+                            "name": "OutputTensor",
+                            "quantization": {
+                                "min": [ 0.0 ],
+                                "max": [ 255.0 ],
+                                "scale": [ 1.0 ],
+                                "zero_point": [ 0 ],
+                            }
+                        }
+                    ],
+                "inputs": [ 1 ],
+                "outputs": [ 2 ],
+                "operators": [
+                    {
+                        "opcode_index": 0,
+                        "inputs": [ 1, 0 ],
+                        "outputs": [ 2 ],
+                        "builtin_options_type": "ResizeNearestNeighborOptions",
+                        "builtin_options": {
+                        },
+                        "custom_options_format": "FLEXBUFFERS"
+                    }
+                ],
+              } ],
+              "buffers" : [
+                  { "data": )" + sizeData + R"(, },
+                  { },
+                  { },
+              ]
+            }
+      )";
+      Setup();
+    }
+};
+
+
+struct SimpleResizeNearestNeighborFixture : ResizeNearestNeighborFixture
+{
+    SimpleResizeNearestNeighborFixture()
+        : ResizeNearestNeighborFixture("[ 1, 2, 2, 1 ]",         // inputShape
+                                       "[ 1, 1, 1, 1 ]",         // outputShape
+                                       "[ 2 ]",                  // sizeShape
+                                       "[ 1,0,0,0, 1,0,0,0 ]")   // sizeData
+    {}
+};
+
+BOOST_FIXTURE_TEST_CASE(ParseResizeNearestNeighbor, SimpleResizeNearestNeighborFixture)
+{
+    RunTest<4, armnn::DataType::Float32>(
+                0,
+                {{"InputTensor", {  1.0f, 2.0f, 3.0f, 4.0f }}},
+                {{"OutputTensor", {  1.0f }}});
+}
+
+BOOST_AUTO_TEST_SUITE_END()
