abstractcircularreferencetest.java
来自「xstream是一个把java object序列化成xml文件的开源库,轻便好用」· Java 代码 · 共 90 行
JAVA
90 行
package com.thoughtworks.acceptance;public abstract class AbstractCircularReferenceTest extends AbstractAcceptanceTest { protected void setUp() throws Exception { super.setUp(); xstream.alias("person", Person.class); } public static class Person { public String firstname; public Person likes; public Person loathes; public Person() { } public Person(String name) { this.firstname = name; } } public void testCircularReference() { Person bob = new Person("bob"); Person jane = new Person("jane"); bob.likes = jane; jane.likes = bob; String xml = xstream.toXML(bob); Person bobOut = (Person) xstream.fromXML(xml); assertEquals("bob", bobOut.firstname); Person janeOut = bobOut.likes; assertEquals("jane", janeOut.firstname); assertSame(bobOut.likes, janeOut); assertSame(bobOut, janeOut.likes); } public void testCircularReferenceToSelf() { Person bob = new Person("bob"); bob.likes = bob; String xml = xstream.toXML(bob); Person bobOut = (Person) xstream.fromXML(xml); assertEquals("bob", bobOut.firstname); assertSame(bobOut, bobOut.likes); } public void testDeepCircularReferences() { Person bob = new Person("bob"); Person jane = new Person("jane"); Person ann = new Person("ann"); Person poo = new Person("poo"); bob.likes = jane; bob.loathes = ann; ann.likes = jane; ann.loathes = poo; poo.likes = jane; poo.loathes = ann; jane.likes = jane; jane.loathes = bob; String xml = xstream.toXML(bob); Person bobOut = (Person) xstream.fromXML(xml); Person janeOut = bobOut.likes; Person annOut = bobOut.loathes; Person pooOut = annOut.loathes; assertEquals("bob", bobOut.firstname); assertEquals("jane", janeOut.firstname); assertEquals("ann", annOut.firstname); assertEquals("poo", pooOut.firstname); assertSame(janeOut, bobOut.likes); assertSame(annOut, bobOut.loathes); assertSame(janeOut, annOut.likes); assertSame(pooOut, annOut.loathes); assertSame(janeOut, pooOut.likes); assertSame(annOut, pooOut.loathes); assertSame(janeOut, janeOut.likes); assertSame(bobOut, janeOut.loathes); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?