package me.prettyprint.cassandra.serializers;
import java.util.Collection;
import java.util.Collections;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import me.prettyprint.hector.api.Serializer;
/**
* Unit test for {@link JaxbSerializer}.
*
* @author shuzhang0@gmail.com
*
*/
public class JaxbSerializerTest extends SerializerBaseTest<Object> {
@Override
protected Serializer<Object> getSerializer() {
return new JaxbSerializer(JaxbString.class);
}
@Override
protected Collection<Object> getTestData() {
return Collections.singleton((Object) new JaxbString("test"));
}
/** A simple wrapper for a string to make it JAXB compatible. */
@XmlRootElement()
@XmlAccessorType(XmlAccessType.FIELD)
static class JaxbString {
private String str;
JaxbString(String str) {
this.str = str;
}
/** private constructor for JAXB compatibility. */
@SuppressWarnings("unused")
private JaxbString() {
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof JaxbString)) {
return false;
}
if (str == null) {
return ((JaxbString) obj).str == null;
}
return (str.equals(((JaxbString) obj).str));
}
}
}