| 54 | import thrift.test.Xtruct; |
| 55 | |
| 56 | public class TestStruct { |
| 57 | @Test |
| 58 | public void testIdentity() throws Exception { |
| 59 | TSerializer binarySerializer = new TSerializer(new TBinaryProtocol.Factory()); |
| 60 | TDeserializer binaryDeserializer = new TDeserializer(new TBinaryProtocol.Factory()); |
| 61 | |
| 62 | OneOfEach ooe = Fixtures.getOneOfEach(); |
| 63 | |
| 64 | Nesting n = new Nesting(); |
| 65 | n.my_ooe = ooe; |
| 66 | n.my_ooe.integer16 = 16; |
| 67 | n.my_ooe.integer32 = 32; |
| 68 | n.my_ooe.integer64 = 64; |
| 69 | n.my_ooe.double_precision = (Math.sqrt(5) + 1) / 2; |
| 70 | n.my_ooe.some_characters = ":R (me going \"rrrr\")"; |
| 71 | n.my_ooe.zomg_unicode = |
| 72 | "\u04c0\u216e\u039d\u0020\u041d\u03bf\u217f" |
| 73 | + "\u043e\u0261\u0433\u0430\u03c1\u210e\u0020" |
| 74 | + "\u0391\u0074\u0074\u03b1\u217d\u03ba\u01c3" |
| 75 | + "\u203c"; |
| 76 | n.my_bonk = Fixtures.getNesting().my_bonk; |
| 77 | |
| 78 | HolyMoley hm = Fixtures.getHolyMoley(); |
| 79 | |
| 80 | OneOfEach ooe2 = new OneOfEach(); |
| 81 | binaryDeserializer.deserialize(ooe2, binarySerializer.serialize(ooe)); |
| 82 | |
| 83 | assertEquals(ooe, ooe2); |
| 84 | assertEquals(ooe.hashCode(), ooe2.hashCode()); |
| 85 | |
| 86 | Nesting n2 = new Nesting(); |
| 87 | binaryDeserializer.deserialize(n2, binarySerializer.serialize(n)); |
| 88 | |
| 89 | assertEquals(n, n2); |
| 90 | assertEquals(n.hashCode(), n2.hashCode()); |
| 91 | |
| 92 | HolyMoley hm2 = new HolyMoley(); |
| 93 | binaryDeserializer.deserialize(hm2, binarySerializer.serialize(hm)); |
| 94 | |
| 95 | assertEquals(hm, hm2); |
| 96 | assertEquals(hm.hashCode(), hm2.hashCode()); |
| 97 | } |
| 98 | |
| 99 | @Test |
| 100 | public void testDeepCopy() throws Exception { |
| 101 | TSerializer binarySerializer = new TSerializer(new TBinaryProtocol.Factory()); |
| 102 | TDeserializer binaryDeserializer = new TDeserializer(new TBinaryProtocol.Factory()); |
| 103 | |
| 104 | HolyMoley hm = Fixtures.getHolyMoley(); |
| 105 | |
| 106 | byte[] binaryCopy = binarySerializer.serialize(hm); |
| 107 | HolyMoley hmCopy = new HolyMoley(); |
| 108 | binaryDeserializer.deserialize(hmCopy, binaryCopy); |
| 109 | HolyMoley hmCopy2 = new HolyMoley(hm); |
| 110 | |
| 111 | assertEquals(hm, hmCopy); |
| 112 | assertEquals(hmCopy, hmCopy2); |
| 113 |
no outgoing calls