Olá amigos. Fiz o exercício Herança e Polimorfismo do Curso Xstream: consumindo o XML sem esforço.
Porém quando estou serializando classes filhas, meu xml fica assim:
15
Reparem nas tags fechadas livro e musica. Como posso corrigir?
Obs.: Segui todo o exemplo do professor.
Segue meus métodos:
@Test public void deveSerializarLivroEMusica() { String resultadoEsperado = "\n" + " 15\n" + " \n" + " \n" + " O Pássaro Raro\n" + " 100.0\n" + " dez histórias sobre a existência\n" + " \n" + " \n" + " Meu Passeio\n" + " 100.0\n" + " música livre\n" + " \n" + " \n" + "";
Compra compra = compraComLivroEMusica();
XStream xstream = xstreamParaCompraEProduto();
String xmlGerado = xstream.toXML(compra);
assertEquals(resultadoEsperado, xmlGerado); }
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 produtos = new LinkedList<>(); produtos.add(livro); produtos.add(musica);
return new Compra(15, produtos); }
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; }