/******************************************************************************* * * Copyright (c) 2010-2011 Sonatype, Inc. * * 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: * * * * *******************************************************************************/ package org.hudsonci.maven.model; import com.thoughtworks.xstream.XStream; import org.hudsonci.maven.model.state.ArtifactDTO; import org.junit.Test; import static org.junit.Assert.assertEquals; /** * Tests for {@link UniqueList}. */ public class UniqueListTest { @Test public void testAddDuplicates() { UniqueList<String> list = new UniqueList<String>(); list.add("foo"); list.add("bar"); assertEquals(2, list.size()); list.add("bar"); assertEquals(2, list.size()); } @Test public void testRemove() { UniqueList<String> list = new UniqueList<String>(); list.add("foo"); list.add("bar"); assertEquals(2, list.size()); list.remove("bar"); assertEquals(1, list.size()); } @SuppressWarnings( "unchecked" ) @Test public void testSerializationViaXStream() throws Exception { XStream xs = new XStream(); xs.processAnnotations(UniqueList.class); UniqueList<String> list1 = new UniqueList<String>(); list1.add("foo"); list1.add("bar"); String xml = xs.toXML(list1); UniqueList<String> list2 = (UniqueList<String>) xs.fromXML(xml); assertEquals(list1, list2); } @SuppressWarnings( "unchecked" ) @Test public void testSerializationViaXStreamWithManualDuplicates() throws Exception { XStream xs = new XStream(); xs.processAnnotations(UniqueList.class); String xml = "<unique-list>\n" + " <string>foo</string>\n" + " <string>foo</string>\n" + " <string>foo</string>\n" + " <string>bar</string>\n" + " <string>bar</string>\n" + "</unique-list>"; UniqueList<String> list = (UniqueList<String>) xs.fromXML(xml); assertEquals(2, list.size()); assertEquals("foo", list.get(0)); assertEquals("bar", list.get(1)); } @SuppressWarnings( "unchecked" ) @Test public void testArtifactListSerialization() throws Exception { XStream xs = new XStream(); xs.processAnnotations(new Class[] {UniqueList.class, ArtifactDTO.class}); UniqueList<ArtifactDTO> list1 = new UniqueList<ArtifactDTO>(); list1.add(new ArtifactDTO().withCoordinates(new MavenCoordinatesDTO().withGroupId("gid").withArtifactId("aid"))); String xml = xs.toXML(list1); UniqueList<ArtifactDTO> list2 = (UniqueList<ArtifactDTO>) xs.fromXML(xml); assertEquals(list1, list2); } }