diff --git a/src/armnnDeserializer/test/DeserializeArgMinMax.cpp b/src/armnnDeserializer/test/DeserializeArgMinMax.cpp
new file mode 100644
index 0000000..6358b53
--- /dev/null
+++ b/src/armnnDeserializer/test/DeserializeArgMinMax.cpp
@@ -0,0 +1,134 @@
+//
+// Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include <boost/test/unit_test.hpp>
+#include "ParserFlatbuffersSerializeFixture.hpp"
+#include "../Deserializer.hpp"
+
+#include <string>
+#include <iostream>
+
+BOOST_AUTO_TEST_SUITE(DeserializeParser)
+
+struct ArgMinMaxFixture : public ParserFlatbuffersSerializeFixture
+{
+    explicit ArgMinMaxFixture(const std::string& inputShape,
+                              const std::string& outputShape,
+                              const std::string& axis,
+                              const std::string& argMinMaxFunction)
+    {
+        m_JsonString = R"(
+        {
+          layers: [
+            {
+              layer_type: "InputLayer",
+              layer: {
+                base: {
+                  base: {
+                    layerName: "InputLayer",
+                    layerType: "Input",
+                    inputSlots: [
+
+                    ],
+                    outputSlots: [
+                      {
+                        tensorInfo: {
+                          dimensions: )" + inputShape + R"(,
+                          dataType: "Float32",
+                          quantizationScale: 0.0
+                        }
+                      }
+                    ]
+                  }
+                }
+              }
+            },
+            {
+              layer_type: "ArgMinMaxLayer",
+              layer: {
+                base: {
+                  index: 1,
+                  layerName: "ArgMinMaxLayer",
+                  layerType: "ArgMinMax",
+                  inputSlots: [
+                    {
+                      connection: {
+                        sourceLayerIndex: 0,
+                        outputSlotIndex: 0
+                      }
+                    }
+                  ],
+                  outputSlots: [
+                    {
+                      tensorInfo: {
+                        dimensions: )" + outputShape + R"(,
+                        dataType: "Signed64",
+                        quantizationScale: 0.0
+                      }
+                    }
+                  ]
+                },
+                descriptor: {
+                  axis: )" + axis + R"(,
+                  argMinMaxFunction: )" + argMinMaxFunction + R"(
+                }
+              }
+            },
+            {
+              layer_type: "OutputLayer",
+              layer: {
+                base: {
+                  base: {
+                    index: 2,
+                    layerName: "OutputLayer",
+                    layerType: "Output",
+                    inputSlots: [
+                      {
+                        connection: {
+                          sourceLayerIndex: 1,
+                          outputSlotIndex: 0
+                        }
+                      }
+                    ],
+                    outputSlots: [
+
+                    ]
+                  }
+                }
+              }
+            }
+          ],
+          inputIds: [
+            0
+          ],
+          outputIds: [
+            0
+          ],
+          featureVersions: {
+            bindingIdsScheme: 1
+          }
+        }
+    )";
+        Setup();
+    }
+};
+
+struct SimpleArgMinMaxFixture : public ArgMinMaxFixture
+{
+    SimpleArgMinMaxFixture() : ArgMinMaxFixture("[ 1, 1, 1, 5 ]",
+                                                "[ 1, 1, 1 ]",
+                                                "-1",
+                                                "Max") {}
+};
+
+BOOST_FIXTURE_TEST_CASE(ArgMinMax, SimpleArgMinMaxFixture)
+{
+    RunTest<3, armnn::DataType::Float32, armnn::DataType::Signed64>(
+            0,
+            {{"InputLayer", { 6.0f, 2.0f, 8.0f, 10.0f, 9.0f}}},
+            {{"OutputLayer",{ 3l }}});
+}
+
+BOOST_AUTO_TEST_SUITE_END()
