/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.wicket.request.mapper.info;
import org.junit.Assert;
import org.junit.Test;
/**
*
* @author Matej Knopp
*/
public class ComponentInfoTest extends Assert
{
/**
*
*/
@Test
public void test1()
{
String s = "-component-path";
ComponentInfo info = ComponentInfo.parse(s);
assertEquals("component:path", info.getComponentPath());
assertNull(info.getBehaviorId());
assertEquals(s, info.toString());
}
/**
*
*/
@Test
public void test2()
{
String s = "component-path";
ComponentInfo info = ComponentInfo.parse(s);
assertEquals(null, info);
}
/**
*
*/
@Test
public void test3()
{
String s = ".-";
ComponentInfo info = ComponentInfo.parse(s);
// empty component path is allowed - listener invoked on page
assertEquals("", info.getComponentPath());
}
/**
*
*/
@Test
public void test4()
{
String s = "-";
ComponentInfo info = ComponentInfo.parse(s);
assertEquals(s, info.toString());
}
/**
*
*/
@Test
public void test5()
{
String s = "abcd";
assertEquals(null, ComponentInfo.parse(s));
}
/**
*
*/
@Test
public void test6()
{
String s = "-compo~~nent-path";
ComponentInfo info = ComponentInfo.parse(s);
assertEquals("compo--nent:path", info.getComponentPath());
assertNull(info.getBehaviorId());
assertEquals(s, info.toString());
}
/**
*
*/
@Test
public void test7()
{
String s = "-co~mpo~~nent-path";
ComponentInfo info = ComponentInfo.parse(s);
assertEquals("co-mpo--nent:path", info.getComponentPath());
assertNull(info.getBehaviorId());
assertEquals(s, info.toString());
}
/**
*
*/
@Test
public void test8()
{
String s = ".12-component-path";
ComponentInfo info = ComponentInfo.parse(s);
assertEquals("component:path", info.getComponentPath());
assertEquals((Object)12, info.getBehaviorId());
assertEquals(s, info.toString());
}
/**
*
*/
@Test
public void test9()
{
String s = "4.-a-b";
ComponentInfo info = ComponentInfo.parse(s);
assertEquals((Integer)4, info.getRenderCount());
assertEquals(s, info.toString());
}
/**
*
*/
@Test
public void test10()
{
String s = "4.5-a-b";
ComponentInfo info = ComponentInfo.parse(s);
assertEquals((Integer)4, info.getRenderCount());
assertEquals((Integer)5, info.getBehaviorId());
assertEquals(s, info.toString());
}
/**
*
*/
@Test
public void encodeDecode()
{
final Integer renderCount = 1;
final String componentPath = "-nav-container-:-nav:1:link";
final Integer behaviorId = null;
ComponentInfo info = new ComponentInfo(renderCount, componentPath, behaviorId);
final String encoded = info.toString();
assertEquals("1.-~nav~container~-~nav-1-link", encoded);
ComponentInfo decoded = ComponentInfo.parse(encoded);
assertEquals(renderCount, decoded.getRenderCount());
assertEquals(componentPath, decoded.getComponentPath());
assertEquals(behaviorId, decoded.getBehaviorId());
}
}