/*
* Copyright (C) 2006, 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 19. October 2006 by Joerg Schaible
*/
package com.thoughtworks.acceptance;
import com.thoughtworks.xstream.converters.basic.BooleanConverter;
import java.util.List;
import java.util.ArrayList;
/**
* @author David Blevins
*/
public class BooleanFieldsTest extends AbstractAcceptanceTest {
public static class Musican {
public String name;
public String genre;
public boolean alive;
public Musican() {
// for JDK 1.3
}
public Musican(String name, String genre, boolean alive) {
this.name = name;
this.genre = genre;
this.alive = alive;
}
}
public void testTrueFalseValues() {
List jazzIcons = new ArrayList();
jazzIcons.add(new Musican("Miles Davis", "jazz", false));
jazzIcons.add(new Musican("Wynton Marsalis", "jazz", true));
xstream.alias("musician", Musican.class);
String expectedXml =
"<list>\n" +
" <musician>\n" +
" <name>Miles Davis</name>\n" +
" <genre>jazz</genre>\n" +
" <alive>false</alive>\n" +
" </musician>\n" +
" <musician>\n" +
" <name>Wynton Marsalis</name>\n" +
" <genre>jazz</genre>\n" +
" <alive>true</alive>\n" +
" </musician>\n" +
"</list>";
assertBothWays(jazzIcons, expectedXml);
}
public void testYesNoValues() {
List jazzIcons = new ArrayList();
jazzIcons.add(new Musican("Miles Davis", "jazz", false));
jazzIcons.add(new Musican("Wynton Marsalis", "jazz", true));
xstream.alias("musician", Musican.class);
xstream.registerConverter(BooleanConverter.YES_NO);
String expectedXml =
"<list>\n" +
" <musician>\n" +
" <name>Miles Davis</name>\n" +
" <genre>jazz</genre>\n" +
" <alive>no</alive>\n" +
" </musician>\n" +
" <musician>\n" +
" <name>Wynton Marsalis</name>\n" +
" <genre>jazz</genre>\n" +
" <alive>yes</alive>\n" +
" </musician>\n" +
"</list>";
assertBothWays(jazzIcons, expectedXml);
}
public void testBinaryValues() {
List jazzIcons = new ArrayList();
jazzIcons.add(new Musican("Miles Davis", "jazz", false));
jazzIcons.add(new Musican("Wynton Marsalis", "jazz", true));
xstream.alias("musician", Musican.class);
xstream.registerConverter(BooleanConverter.BINARY);
String expectedXml =
"<list>\n" +
" <musician>\n" +
" <name>Miles Davis</name>\n" +
" <genre>jazz</genre>\n" +
" <alive>0</alive>\n" +
" </musician>\n" +
" <musician>\n" +
" <name>Wynton Marsalis</name>\n" +
" <genre>jazz</genre>\n" +
" <alive>1</alive>\n" +
" </musician>\n" +
"</list>";
assertBothWays(jazzIcons, expectedXml);
}
}