@Test
public void testClone() {
Id<Link> id1 = Id.create(1, Link.class);
Id<Link> id2 = Id.create(2, Link.class);
Id<Link> id3 = Id.create(3, Link.class);
Id<Link> id4 = Id.create(4, Link.class);
Id<Link> id5 = Id.create(5, Link.class);
Link startLink = new FakeLink(id1);
Link endLink = new FakeLink(id2);
Link link3 = new FakeLink(id3);
Link link4 = new FakeLink(id4);
Link link5 = new FakeLink(id5);
NetworkRoute route1 = RouteUtils.createLinkNetworkRouteImpl(startLink.getId(), endLink.getId());
ArrayList<Id<Link>> srcRoute = new ArrayList<Id<Link>>();
srcRoute.add(link3.getId());
srcRoute.add(link4.getId());
route1.setLinkIds(startLink.getId(), srcRoute, endLink.getId());
Assert.assertEquals(2, route1.getLinkIds().size());
NetworkRoute route2 = (NetworkRoute) route1.clone();
srcRoute.add(link5.getId());
route1.setLinkIds(startLink.getId(), srcRoute, endLink.getId());
Assert.assertEquals(3, route1.getLinkIds().size());
Assert.assertEquals(2, route2.getLinkIds().size());
}