Podem me dar uma força por favor ? Meu Test
@Test
public void deveSerializarLivroEMusica() {
String resultadoEsperado = "<compra>\n"
+ " <id>15</id>\n"
+ " <produtos>\n"
+ " <livro codigo=\"1589\">\n"
+ " <nome>O Pássaro Raro</nome>\n"
+ " <preco>100.0</preco>\n"
+ " <descrição>dez histórias sobre a existência</descrição>\n"
+ " </livro>\n"
+ " <musica codigo=\"1590\">\n"
+ " <nome>Meu Passeio</nome>\n"
+ " <preco>100.0</preco>\n"
+ " <descrição>música livre</descrição>\n"
+ " </musica>\n"
+ " </produtos>\n"
+ "</compra>";
Compra compra = compraComLivroEMusica();
XStream xstream = xstreamParaCompraEProduto();
String xmlGerado = xstream.toXML(compra);
assertEquals(resultadoEsperado, xmlGerado);
}
//Meu compraComLivroEMusica()
private Compra compraComLivroEMusica() {
Produto livro = new Livro("O Pássaro Raro", 100.0, "dez histórias sobre a existência", 1589);
Produto musica = new Musica("Meu Passeio", 100.0, "música livre", 1590);
List<Produto> produtos = new ArrayList<Produto>();
produtos.add(livro);
produtos.add(musica);
return new Compra(15, produtos);
}
//Meu xstreamParaCompraEProduto()
private XStream xstreamParaCompraEProduto() {
XStream xstream = new XStream();
xstream.alias("compra", Compra.class);
xstream.alias("produto", Produto.class);
xstream.alias("livro", Livro.class);
xstream.alias("musica", Musica.class);
xstream.aliasField("descrição", Produto.class, "descricao");
xstream.useAttributeFor(Produto.class, "codigo");
return xstream;
}
//xmlGerado
<compra>
<id>15</id>
<produtos>
<livro/>
<musica/>
</produtos>
</compra>