diff --git a/src/armnnTfLiteParser/test/BatchMatMul.cpp b/src/armnnTfLiteParser/test/BatchMatMul.cpp
new file mode 100644
index 0000000..f4cdd67
--- /dev/null
+++ b/src/armnnTfLiteParser/test/BatchMatMul.cpp
@@ -0,0 +1,114 @@
+//
+// Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "ParserFlatbuffersFixture.hpp"
+
+TEST_SUITE("TensorflowLiteParser_BatchMatMul")
+{
+struct BatchMatMulFixture : public ParserFlatbuffersFixture
+{
+    explicit BatchMatMulFixture(const std::string &inputXShape,
+                                const std::string &inputYShape,
+                                const std::string &outputShape,
+                                const std::string &adjX,
+                                const std::string &adjY)
+    {
+        m_JsonString = R"(
+            {
+                "version": 3,
+                "operator_codes": [ { "builtin_code": "BATCH_MATMUL" } ],
+                "subgraphs": [
+                    {
+                        "tensors": [
+                            {
+                                "shape": )" + inputXShape + R"(,
+                                "type": "FLOAT32",
+                                "buffer": 0,
+                                "name": "inputXTensor",
+                                "quantization": {
+                                    "min": [ 0.0 ],
+                                    "max": [ 255.0 ],
+                                    "scale": [ 1.0 ],
+                                    "zero_point": [ 0 ],
+                                }
+                            },
+                            {
+                                "shape": )" + inputYShape + R"(,
+                                "type": "FLOAT32",
+                                "buffer": 1,
+                                "name": "inputYTensor",
+                                "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": [ 0, 1 ],
+                        "outputs": [ 2 ],
+                        "operators": [
+                            {
+                                "opcode_index": 0,
+                                "inputs": [ 0 , 1 ],
+                                "outputs": [ 2 ],
+                                "builtin_options_type": "BatchMatMulOptions",
+                                "builtin_options": {
+                                    adj_x: )" + adjX + R"(,
+                                    adj_y: )" + adjY + R"(,
+                                    "asymmetric_quantize_inputs": false
+                                },
+                                "custom_options_format": "FLEXBUFFERS"
+                            }
+                        ]
+                    }
+                ],
+                "buffers": [{},{}]
+            }
+        )";
+        Setup();
+    }
+};
+
+struct BatchMatMulParamsFixture : BatchMatMulFixture
+{
+    BatchMatMulParamsFixture()
+        : BatchMatMulFixture("[ 1, 3, 3 ]",
+                             "[ 1, 3, 3 ]",
+                             "[ 1, 3, 3 ]",
+                             "false",
+                             "true")
+    {}
+};
+
+TEST_CASE_FIXTURE(BatchMatMulParamsFixture, "ParseBatchMatMulParams")
+{
+    RunTest<3, armnn::DataType::Float32>(
+        0,
+        {{"inputXTensor", {2.0f, 3.0f, 5.0f,
+                           8.0f, 13.0f, 21.0f,
+                           34.0f, 55.0f, 89.0f}},
+         {"inputYTensor", {0.0f, 1.0f, 1.0f,
+                           1.0f, 0.0f, 1.0f,
+                           1.0f, 1.0f, 0.0f}}},
+        {{"outputTensor", {6.0f, 4.0f, 0.0f,
+                           26.0f, 16.0f, 0.0f,
+                           110.0f, 68.0f, 0.0f}}}
+        );
+}
+
+}
\ No newline at end of file
