|
1 | 1 | package scala.xml
|
2 | 2 |
|
3 |
| -import java.io._ |
4 |
| - |
5 | 3 | import org.junit.Assert.assertEquals
|
6 | 4 | import org.junit.Test
|
7 | 5 |
|
8 | 6 | class SerializationTest {
|
9 |
| - def roundTrip[T](obj: T): T = { |
10 |
| - def serialize(in: T): Array[Byte] = { |
11 |
| - val bos = new ByteArrayOutputStream() |
12 |
| - val oos = new ObjectOutputStream(bos) |
13 |
| - oos.writeObject(in) |
14 |
| - oos.flush() |
15 |
| - bos.toByteArray() |
16 |
| - } |
17 |
| - |
18 |
| - def deserialize(in: Array[Byte]): T = { |
19 |
| - val bis = new ByteArrayInputStream(in) |
20 |
| - val ois = new ObjectInputStream(bis) |
21 |
| - ois.readObject.asInstanceOf[T] |
22 |
| - } |
23 |
| - |
24 |
| - deserialize(serialize(obj)) |
25 |
| - } |
26 |
| - |
27 | 7 | @Test
|
28 | 8 | def xmlLiteral: Unit = {
|
29 | 9 | val n = <node/>
|
30 |
| - assertEquals(n, roundTrip(n)) |
| 10 | + assertEquals(n, JavaByteSerialization.roundTrip(n)) |
31 | 11 | }
|
32 | 12 |
|
33 | 13 | @Test
|
34 | 14 | def empty: Unit = {
|
35 |
| - assertEquals(NodeSeq.Empty, roundTrip(NodeSeq.Empty)) |
| 15 | + assertEquals(NodeSeq.Empty, JavaByteSerialization.roundTrip(NodeSeq.Empty)) |
| 16 | + } |
| 17 | + |
| 18 | + @Test |
| 19 | + def unmatched: Unit = { |
| 20 | + assertEquals(NodeSeq.Empty, JavaByteSerialization.roundTrip(<xml/> \ "HTML")) |
36 | 21 | }
|
37 | 22 |
|
38 | 23 | @Test
|
39 | 24 | def implicitConversion: Unit = {
|
40 | 25 | val parent = <parent><child></child><child/></parent>
|
41 | 26 | val children: Seq[Node] = parent.child
|
42 | 27 | val asNodeSeq: NodeSeq = children
|
43 |
| - assertEquals(asNodeSeq, roundTrip(asNodeSeq)) |
| 28 | + assertEquals(asNodeSeq, JavaByteSerialization.roundTrip(asNodeSeq)) |
| 29 | + } |
| 30 | + |
| 31 | + @Test |
| 32 | + def base64Encode: Unit = { |
| 33 | + val str = JavaByteSerialization.base64Encode(NodeSeq.Empty) |
| 34 | + assertEquals("rO0ABXNy", str.take(8)) |
| 35 | + assertEquals("AHhweA==", str.takeRight(8)) |
44 | 36 | }
|
45 | 37 | }
|
0 commit comments