/* * 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 23. 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.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; /** * Tests annotations defining fields to be rendered as attributes. * * @author Chung-Onn Cheong * @author Mauro Talevi * @author Guilherme Silveira * @author Jörg Schaible */ public class AttributesTest extends AbstractAcceptanceTest { @Override protected XStream createXStream() { XStream xstream = super.createXStream(); xstream.autodetectAnnotations(true); return xstream; } @XStreamAlias("annotated") public static class AnnotatedAttribute { @XStreamAsAttribute private String myField; } public void testAnnotation() { AnnotatedAttribute value = new AnnotatedAttribute(); value.myField = "hello"; String expected = "<annotated myField=\"hello\"/>"; assertBothWays(value, expected); } @XStreamAlias("annotated") public static class AnnotatedAliasedAttribute { @XStreamAsAttribute @XStreamAlias("field") private String myField; } public void testAnnotationInCombinationWithAlias() { AnnotatedAliasedAttribute value = new AnnotatedAliasedAttribute(); value.myField = "hello"; String expected = "<annotated field=\"hello\"/>"; assertBothWays(value, expected); } }