From f1482d1f01c12f634b1b0adee047e96d701c5528 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= <theo@tanker.io>
Date: Sat, 14 Jan 2017 02:47:29 +0100
Subject: [PATCH] more tests in unit-udt

---
 test/src/unit-udt.cpp | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/test/src/unit-udt.cpp b/test/src/unit-udt.cpp
index 60b83957..10e8b71a 100644
--- a/test/src/unit-udt.cpp
+++ b/test/src/unit-udt.cpp
@@ -394,15 +394,22 @@ namespace nlohmann
 template <>
 struct adl_serializer<std::vector<float>>
 {
-    static void to_json(json& j, std::vector<float> const&)
+  using type = std::vector<float>;
+    static void to_json(json& j, type const&)
     {
       j = "hijacked!";
     }
 
-    static void from_json(json const&, std::vector<float>& opt)
+    static void from_json(json const&, type& opt)
     {
       opt = {42.0, 42.0, 42.0};
     }
+
+    // preferred version
+    static type from_json(json const&)
+    {
+      return {4.0, 5.0, 6.0};
+    }
 };
 }
 
@@ -411,7 +418,8 @@ TEST_CASE("even supported types can be specialized", "[udt]")
     json j = std::vector<float> {1.0, 2.0, 3.0};
     CHECK(j.dump() == R"("hijacked!")");
     auto f = j.get<std::vector<float>>();
-    CHECK((f == std::vector<float>{42.0, 42.0, 42.0}));
+    // the single argument from_json method is preferred
+    CHECK((f == std::vector<float>{4.0, 5.0, 6.0}));
 }
 
 namespace nlohmann