@@ -0,0 +1,2900 @@
+/*%0A * See the NOTICE file distributed with this work for additional%0A * information regarding copyright ownership.%0A *%0A * This is free software; you can redistribute it and/or modify it%0A * under the terms of the GNU Lesser General Public License as%0A * published by the Free Software Foundation; either version 2.1 of%0A * the License, or (at your option) any later version.%0A *%0A * This software is distributed in the hope that it will be useful,%0A * but WITHOUT ANY WARRANTY; without even the implied warranty of%0A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU%0A * Lesser General Public License for more details.%0A *%0A * You should have received a copy of the GNU Lesser General Public%0A * License along with this software; if not, write to the Free%0A * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA%0A * 02110-1301 USA, or see the FSF site: http://www.fsf.org.%0A */%0Apackage org.xwiki.url.internal;%0A%0Aimport java.net.MalformedURLException;%0Aimport java.net.URL;%0Aimport java.util.Arrays;%0A%0Aimport javax.inject.Named;%0Aimport javax.inject.Singleton;%0A%0Aimport org.junit.jupiter.api.Test;%0Aimport org.xwiki.component.annotation.Component;%0Aimport org.xwiki.resource.CreateResourceReferenceException;%0Aimport org.xwiki.resource.ResourceType;%0Aimport org.xwiki.resource.UnsupportedResourceReferenceException;%0Aimport org.xwiki.test.junit5.mockito.ComponentTest;%0Aimport org.xwiki.test.junit5.mockito.InjectMockComponents;%0Aimport org.xwiki.url.ExtendedURL;%0A%0Aimport static org.junit.jupiter.api.Assertions.assertEquals;%0Aimport static org.junit.jupiter.api.Assertions.assertSame;%0A%0A/**%0A * @version $Id$%0A */%0A@ComponentTest%0Apublic class AbstractParentResourceReferenceResolverTest%0A%7B%0A    @Component%0A    @Named(%22test%22)%0A    @Singleton%0A    public static class TestParentResourceReferenceResolver extends AbstractParentResourceReferenceResolver%0A    %7B%0A%0A    %7D%0A%0A    @InjectMockComponents%0A    private TestParentResourceReferenceResolver resolver;%0A%0A    @Test%0A    public void resolve()%0A        throws MalformedURLException, CreateResourceReferenceException, UnsupportedResourceReferenceException%0A    %7B%0A        ExtendedURL extendedURL = new ExtendedURL(%0A            new URL(%22http://host/xwiki/test/child/1/2/3?key1=value11&key1=value12&key2=value2%22), %22xwiki/test%22);%0A        ResourceType type = new ResourceType(%22test%22);%0A%0A        ParentResourceReference reference = this.resolver.resolve(extendedURL, type, null);%0A%0A        assertSame(type, reference.getType());%0A        assertEquals(%22child%22, reference.getChild());%0A        assertEquals(%22child/1/2/3%22, reference.getRootPath());%0A        assertEquals(Arrays.asList(%221%22, %222%22, %223%22), reference.getPathSegments());%0A        assertEquals(2, reference.getParameters().size());%0A        assertEquals(Arrays.asList(%22value11%22, %22value12%22), reference.getParameters().get(%22key1%22));%0A        assertEquals(Arrays.asList(%22value2%22), reference.getParameters().get(%22key2%22));%0A    %7D%0A%7D%0A

Add test (really this time)