/* * Copyright (C) 2007 XStream Committers. * All rights reserved. * * The software in this package is published under the terms of the BSD * style license a copy of which has been included with this distribution in * the LICENSE.txt file. * * Created on 10. November 2007 by Joerg Schaible */ package com.thoughtworks.acceptance.annotations; import com.thoughtworks.acceptance.AbstractAcceptanceTest; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.annotations.AnnotationProvider; import com.thoughtworks.xstream.annotations.AnnotationReflectionConverter; import com.thoughtworks.xstream.annotations.Annotations; /** * Tests XStream 1.2.x annotation compatibility. * @author Jörg Schaible */ public class XStream12AnnotationCompatibilityTest extends AbstractAcceptanceTest { @Override protected void setUp() throws Exception { super.setUp(); xstream = new XStream(); xstream.registerConverter( new AnnotationReflectionConverter(xstream.getMapper(), xstream .getReflectionProvider(), new AnnotationProvider()), XStream.PRIORITY_VERY_LOW); xstream.alias("annotatedTask", FieldConverterTest.TaskWithAnnotations.class); } public void testDifferentConverterCanBeAnnotatedForFieldsOfSameType() { final FieldConverterTest.TaskWithAnnotations task = new FieldConverterTest.TaskWithAnnotations( "Tom", "Dick", "Harry"); final String xml = "" + "<annotatedTask>\n" + " <name1 str=\"Tom\"/>\n" + " <name2>_Dick_</name2>\n" + " <name3>Harry</name3>\n" + "</annotatedTask>"; assertBothWays(task, xml); } public void testImplicitCollection() { String expected = "" + "<root>\n" + " <string>one</string>\n" + " <string>two</string>\n" + "</root>"; Annotations.configureAliases(xstream, ImplicitCollectionTest.ImplicitRootOne.class); ImplicitCollectionTest.ImplicitRootOne implicitRoot = new ImplicitCollectionTest.ImplicitRootOne(); implicitRoot.getValues().add("one"); implicitRoot.getValues().add("two"); assertBothWays(implicitRoot, expected); } }