@@ -0,0 +1,1407 @@
+package uk.hfox.morphix.transform;%0A%0Aimport org.junit.jupiter.api.Test;%0A%0Aimport static org.junit.jupiter.api.Assertions.assertNotNull;%0Aimport static org.junit.jupiter.api.Assertions.assertNull;%0A%0Aclass ConverterTest %7B%0A%0A    @Test%0A    void pullBasic() %7B%0A        BasicConverter converter = new BasicConverter();%0A        converter.pull(%22key%22, new Object());%0A        converter.pull(%22key%22, new Object(), null);%0A    %7D%0A%0A    @Test%0A    void pullValue() %7B%0A        ValueConverter converter = new ValueConverter();%0A        converter.pull(%22key%22, new Object());%0A        converter.pull(%22key%22, new Object(), null);%0A    %7D%0A%0A    private static class BasicConverter implements Converter%3CObject%3E %7B%0A%0A        @Override%0A        public Object pull(String key, Object entry) %7B%0A            assertNotNull(key);%0A            assertNotNull(entry);%0A            return null;%0A        %7D%0A%0A        @Override%0A        public void push(String key, Object entry, Object value) %7B%0A            // not interested%0A        %7D%0A    %7D%0A%0A    private static class ValueConverter implements Converter%3CObject%3E %7B%0A%0A        @Override%0A        public Object pull(String key, Object entry, Object value) %7B%0A            assertNotNull(key);%0A            assertNotNull(entry);%0A            assertNull(value);%0A            return null;%0A        %7D%0A%0A        @Override%0A        public void push(String key, Object entry, Object value) %7B%0A            // not interested%0A        %7D%0A    %7D%0A%0A%7D

Add test for default converter methods