Olá, no meu código os seguintes comandos estão retornando a mesma sintaxe:
XStream.XPATH_RELATIVE_REFERENCES
XStream.XPATH_ABSOLUTE_REFERENCES
XStream.NO_REFERENCES
Todos estão funcionando como se fossem "NO_REFERENCES"
Alguém sabe o que pode estar acontecendo?
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import com.thoughtworks.xstream.XStream;
public class CompraTest2 {
@Test
public void CompraXML() {
String xmlEsperado =
"<compra id=\"15\">\n"+
" <produtos>\n"+
" <produto codigo=\"1587\">\n"+
" <nome>armario</nome>\n"+
" <preco>1500.0</preco>\n"+
" <descrição>armario duas portas</descrição>\n"+
" </produto>\n"+
" <produto codigo=\"1587\">\n"+
" <nome>armario</nome>\n"+
" <preco>1500.0</preco>\n"+
" <descrição>armario duas portas</descrição>\n"+
" </produto>\n"+
" </produtos>\n"+
"</compra>";
List<Produto> lista = new ArrayList<>();
lista.add(new Produto("armario", 1500.0, "armario duas portas", 1587));
lista.add(new Produto("armario", 1500.0, "armario duas portas", 1587));
Compra compra = new Compra(15, lista);
XStream xstream = new XStream();
xstream.setMode(XStream.NO_REFERENCES);
xstream.alias("produto", Produto.class);
xstream.alias("compra", Compra.class);
xstream.aliasField("descrição", Produto.class,"descricao");
xstream.useAttributeFor(Produto.class, "codigo");
xstream.useAttributeFor(Compra.class, "id");
String xmlGerado = xstream.toXML(compra);
assertEquals(xmlEsperado,xmlGerado);
}
}