From 60405244f30b4504346458b49107ad4c931ae2f7 Mon Sep 17 00:00:00 2001 From: John DeRegnaucourt Date: Sun, 4 Feb 2024 21:22:28 -0500 Subject: [PATCH] Year conversion tests completed. Updated test harness to support running a single test. Fixed the extractSingleKey MapConversion. --- .../util/convert/MapConversions.java | 2 +- .../util/convert/ConverterEverythingTest.java | 25 ++++++++++++------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/cedarsoftware/util/convert/MapConversions.java b/src/main/java/com/cedarsoftware/util/convert/MapConversions.java index 07f0ad12..ea178f3b 100644 --- a/src/main/java/com/cedarsoftware/util/convert/MapConversions.java +++ b/src/main/java/com/cedarsoftware/util/convert/MapConversions.java @@ -348,7 +348,7 @@ private static T fromSingleKey(final Object from, final Converter converter, Map map = asMap(from); if (map.containsKey(key)) { - return converter.convert(key, type, options); + return converter.convert(map.get(key), type, options); } return extractValue(map, converter, options, type, key); diff --git a/src/test/java/com/cedarsoftware/util/convert/ConverterEverythingTest.java b/src/test/java/com/cedarsoftware/util/convert/ConverterEverythingTest.java index e5a24e5c..24602b2f 100644 --- a/src/test/java/com/cedarsoftware/util/convert/ConverterEverythingTest.java +++ b/src/test/java/com/cedarsoftware/util/convert/ConverterEverythingTest.java @@ -332,15 +332,12 @@ class ConverterEverythingTest TEST_FACTORY.put(pair(Map.class, Year.class), new Object[][] { { mapOf("_v", "1984"), Year.of(1984) }, { mapOf("value", 1984L), Year.of(1984) }, -// { mapOf("year", 1992), Year.of(1992) }, -// { mapOf("year", mapOf("_v", (short)2024)), Year.of(2024) }, // recursion - }); -// DEFAULT_FACTORY.put(pair(Void.class, Year.class), VoidConversions::toNull); -// DEFAULT_FACTORY.put(pair(Year.class, Year.class), Converter::identity); -// DEFAULT_FACTORY.put(pair(Byte.class, Year.class), UNSUPPORTED); -// DEFAULT_FACTORY.put(pair(Number.class, Year.class), NumberConversions::toYear); -// DEFAULT_FACTORY.put(pair(String.class, Year.class), StringConversions::toYear); -// DEFAULT_FACTORY.put(pair(Map.class, Year.class), MapConversions::toYear); + { mapOf("year", 1492), Year.of(1492) }, + { mapOf("year", mapOf("_v", (short)2024)), Year.of(2024) }, // recursion + }); + TEST_FACTORY.put(pair(Number.class, Year.class), new Object[][] { + { (byte)101, new IllegalArgumentException("Unsupported conversion, source type [Byte (101)] target type 'Year'") }, + }); } @BeforeEach @@ -355,6 +352,10 @@ void testEverything() { Map, Set>> map = converter.allSupportedConversions(); int neededTests = 0; int count = 0; + boolean runOnlyOneTest = false; + Class singleSource = Number.class; + Class singleTarget = Year.class; + int singleIndex = 0; for (Map.Entry, Set>> entry : map.entrySet()) { Class sourceClass = entry.getKey(); @@ -372,6 +373,12 @@ void testEverything() { } for (int i=0; i < testData.length; i++) { + if (runOnlyOneTest) { + if (!sourceClass.equals(singleSource) || !targetClass.equals(singleTarget) || singleIndex != i) { + continue; + } + } + Object[] testPair = testData[i]; try { verifyTestPair(sourceClass, targetClass, testPair);