/*******************************************************************************
* Copyright (c) 2010-2014 SAP AG and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* SAP AG - initial API and implementation
*******************************************************************************/
package org.eclipse.skalli.model.ext.mapping;
import java.util.Collections;
import org.eclipse.skalli.commons.Link;
import org.eclipse.skalli.model.ext.linkgroups.LinkGroup;
import org.junit.Assert;
import org.junit.Test;
@SuppressWarnings("nls")
public class LinkGroupTest {
private static final String TESTURL = "testurl";
private static final String TESTLABEL = "testlabel";
@Test
public void testLink() throws Exception {
Link link = new Link();
Assert.assertNull(link.getLabel());
Assert.assertNull(link.getUrl());
link.setLabel(TESTLABEL);
link.setUrl(TESTURL);
Assert.assertEquals(TESTLABEL, link.getLabel());
Assert.assertEquals(TESTURL, link.getUrl());
Link otherLink = new Link(TESTURL, TESTLABEL);
Assert.assertEquals(link, otherLink);
}
@Test
public void testLinkGroupBasic() throws Exception {
LinkGroup linkGroup = new LinkGroup();
Assert.assertNull(linkGroup.getCaption());
linkGroup.setCaption(TESTLABEL);
Assert.assertEquals(TESTLABEL, linkGroup.getCaption());
LinkGroup otherLinkGroup = new LinkGroup(TESTLABEL, Collections.<Link> emptySet());
Assert.assertEquals(linkGroup, otherLinkGroup);
}
@Test
public void testLinkGroupExtended() throws Exception {
LinkGroup linkGroup = new LinkGroup();
Link movingTarget = new Link(TESTURL, TESTLABEL);
Link unknownStranger = new Link("unknown", "stranger");
linkGroup.add(movingTarget);
for (int i = 0; i < 10; i++) {
linkGroup.add(new Link(String.valueOf(i), String.valueOf(i)));
}
Assert.assertTrue(linkGroup.moveDown(movingTarget));
Assert.assertTrue(linkGroup.moveDown(movingTarget));
Assert.assertTrue(linkGroup.moveDown(movingTarget));
movingTarget.setLabel(TESTLABEL + "1");
movingTarget.setUrl(TESTURL + "1");
Assert.assertTrue(linkGroup.moveUp(movingTarget));
Assert.assertTrue(linkGroup.moveUp(movingTarget));
Assert.assertTrue(linkGroup.moveUp(movingTarget));
Assert.assertFalse(linkGroup.moveUp(movingTarget));
Assert.assertTrue(linkGroup.hasItem(movingTarget));
Assert.assertFalse(linkGroup.hasItem(unknownStranger));
}
}