@@ -0,0 +1,2694 @@
+package com.fasterxml.jackson.failing;%0A%0Aimport com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;%0Aimport com.fasterxml.jackson.annotation.PropertyAccessor;%0Aimport com.fasterxml.jackson.databind.*;%0Aimport com.fasterxml.jackson.databind.introspect.AnnotatedMember;%0Aimport com.fasterxml.jackson.databind.introspect.AnnotatedParameter;%0Aimport com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;%0A%0Apublic class MultiArgConstructorTest extends BaseMapTest%0A%7B%0A    static class MultiArgCtorBean%0A    %7B%0A        protected int a, b;%0A%0A        public MultiArgCtorBean(int a, int b) %7B%0A            this.a = a;%0A            this.b = b;%0A        %7D%0A    %7D%0A%0A    /* Before JDK8, we won't have parameter names available, so let's%0A     * fake it before that...%0A     */%0A    @SuppressWarnings(%22serial%22)%0A    static class MyParamIntrospector extends JacksonAnnotationIntrospector%0A    %7B%0A        @Override%0A        public String findImplicitPropertyName(AnnotatedMember param) %7B%0A            if (param instanceof AnnotatedParameter) %7B%0A                AnnotatedParameter ap = (AnnotatedParameter) param;%0A                switch (ap.getIndex()) %7B%0A                case 0: return %22a%22;%0A                case 1: return %22b%22;%0A                default:%0A                    return %22param%22+ap.getIndex();%0A                %7D%0A            %7D%0A            return super.findImplicitPropertyName(param);%0A        %7D%0A    %7D%0A    %0A    /*%0A    /********************************************************************** %0A    /* Test methods%0A    /********************************************************************** %0A     */%0A%0A    public void testMultiArgVisible() throws Exception%0A    %7B%0A        final ObjectMapper mapper = new ObjectMapper();%0A        mapper.setAnnotationIntrospector(new MyParamIntrospector());%0A        MultiArgCtorBean bean = mapper.readValue(aposToQuotes(%22%7B'b':13,  'a':-99%7D%22),%0A                MultiArgCtorBean.class);%0A        assertNotNull(bean);%0A        assertEquals(13, bean.b);%0A        assertEquals(-99, bean.a);%0A    %7D%0A%0A    // but let's also ensure that it is possible to prevent use of that constructor%0A    // with different visibility%0A    public void testMultiArgNotVisible() throws Exception%0A    %7B%0A        final ObjectMapper mapper = new ObjectMapper();%0A        mapper.setAnnotationIntrospector(new MyParamIntrospector());%0A        mapper.setVisibility(PropertyAccessor.CREATOR, Visibility.NONE);%0A        try %7B%0A            /*MultiArgCtorBean bean =*/ mapper.readValue(aposToQuotes(%22%7B'b':13,  'a':-99%7D%22),%0A                MultiArgCtorBean.class);%0A            fail(%22Should not have passed%22);%0A        %7D catch (JsonMappingException e) %7B%0A            verifyException(e, %22No suitable constructor%22);%0A        %7D%0A    %7D%0A%7D%0A

Add a (failing) test for implicit multi-arg-creator test, support to be added in 2.6