From 889006f0069cebc351baf100784005818c57cd38 Mon Sep 17 00:00:00 2001
From: Niels Lohmann <mail@nlohmann.me>
Date: Sat, 17 Jun 2017 13:37:04 +0200
Subject: [PATCH] :white_check_mark: regression test for #600

---
 test/src/unit-regression.cpp | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index cd2374ff..0489e630 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -1166,6 +1166,41 @@ TEST_CASE("regression tests")
         CHECK_THROWS_AS(json::parse(vec), json::parse_error);
     }
 
+    SECTION("issue #600 - how does one convert a map in Json back to std::map?")
+    {
+        SECTION("example 1")
+        {
+            // create a map
+            std::map<std::string, int> m1 {{"key", 1}};
+
+            // create and print a JSON from the map
+            json j = m1;
+            std::cout << j << std::endl;
+
+            // get the map out of JSON
+            std::map<std::string, int> m2 = j;
+
+            // make sure the roundtrip succeeds
+            CHECK(m1 == m2);
+        }
+
+        SECTION("example 2")
+        {
+            // create a map
+            std::map<std::string, std::string> m1 {{"key", "val"}};
+
+            // create and print a JSON from the map
+            json j = m1;
+            std::cout << j << std::endl;
+
+            // get the map out of JSON
+            std::map<std::string, std::string> m2 = j;
+
+            // make sure the roundtrip succeeds
+            CHECK(m1 == m2);
+        }
+    }
+
     SECTION("issue #602 - BOM not skipped when using json:parse(iterator)")
     {
         std::string i = "\xef\xbb\xbf{\n   \"foo\": true\n}";