@Override public String enString(final Oid oid) { final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final DataOutputStreamExtended outputImpl = new DataOutputStreamExtended(baos); try { outputImpl.writeEncodable(oid); final byte[] byteArray = baos.toByteArray(); return new String(Hex.encodeHex(byteArray)); } catch (final IOException e) { throw new IsisException("Failed to write object", e); } }
@Override public void write(final byte[] value) throws IOException { writeBytes(value); }
@Override public void write(final int value) throws IOException { writeByte((byte) value); }
@Ignore("currently failing - is no longer calling isTransient on element #1 and element #2") @Test public void testData() throws Exception { final DataOutputStreamExtended mockOutputImpl = mockery.mock(DataOutputStreamExtended.class); final Oid oid1 = element1.getOid(); final Oid oid2 = element1.getOid(); mockery.checking(new Expectations() { { one(mockOutputImpl).writeUTF(TestObject.class.getName()); one(mockOutputImpl).writeUTF(ResolveState.RESOLVED.name()); one(mockOutputImpl).writeEncodable(oid); one(mockOutputImpl).writeUTF(TestObject[].class.getName()); one(mockOutputImpl).writeInt(2); one(mockOutputImpl).writeUTF(TestObject.class.getName()); one(mockOutputImpl).writeUTF(ResolveState.TRANSIENT.name()); one(mockOutputImpl).writeEncodable(oid1); one(mockOutputImpl).writeUTF(TestObject.class.getName()); one(mockOutputImpl).writeUTF(ResolveState.TRANSIENT.name()); one(mockOutputImpl).writeEncodable(oid2); /* * one(encoder).add("S"); one(encoder).add("name-field"); * one(encoder).add("_HARRY_"); */ } }); memento.encodedData(mockOutputImpl); mockery.assertIsSatisfied(); }
public void encodedData(final DataOutputStreamExtended outputImpl) throws IOException { outputImpl.writeEncodable(state); }
final ObjectAdapter adapter = getPersistenceSession().getAdapterManager().adapterFor(object); final OutputStream out = new ByteArrayOutputStream(); final DataOutputStreamExtended outputImpl = new DataOutputStreamExtended(out); adapter.getOid().encode(outputImpl);
@Test public void encodeAndDecodeString() throws IOException { outputImpl.writeUTF("test"); outputImpl.writeUTF(""); outputImpl.writeUTF("second"); assertThat(inputImpl.readUTF(), is(equalTo("test"))); assertThat(inputImpl.readUTF(), is(equalTo(""))); assertThat(inputImpl.readUTF(), is(equalTo("second"))); }
@Test public void encodeAndDecodeBoolean() throws IOException { outputImpl.writeBoolean(true); outputImpl.writeBoolean(false); assertThat(inputImpl.readBoolean(), is(equalTo(true))); assertThat(inputImpl.readBoolean(), is(equalTo(false))); }
@Test public void encodeAndDecodeNullObject() throws IOException { outputImpl.writeEncodable(null); final Object object = inputImpl.readEncodable(Object.class); assertThat(object, is(nullValue())); }
@Before public void setUp() throws Exception { final PipedInputStream pipedInputStream = new PipedInputStream(); final PipedOutputStream pipedOutputStream = new PipedOutputStream(pipedInputStream); outputImpl = new DataOutputStreamExtended(pipedOutputStream); inputImpl = new DataInputStreamExtended(pipedInputStream); }
@Test public void shouldRoundTrip() throws IOException { final PipedInputStream pipedInputStream = new PipedInputStream(); final PipedOutputStream pipedOutputStream = new PipedOutputStream(pipedInputStream); final DataOutputStreamExtended outputImpl = new DataOutputStreamExtended(pipedOutputStream); final DataInputStreamExtended inputImpl = new DataInputStreamExtended(pipedInputStream); outputImpl.writeEncodable(encodable); final Object decodedEncodable = inputImpl.readEncodable(Object.class); assertRoundtripped(decodedEncodable, encodable); }
@Test public void encodeAndDecodeObject() throws IOException { outputImpl.writeEncodable(new EncodableObject()); final Object object = inputImpl.readEncodable(Object.class); assertThat(object, is(instanceOf(EncodableObject.class))); final EncodableObject encodeableObject = (EncodableObject) object; assertThat(encodeableObject.field, is(equalTo("test field"))); }
@Override public void connect() throws IOException { super.connect(); this.input = new DataInputStreamExtended(getTransport().getInputStream()); this.output = new DataOutputStreamExtended(getTransport().getOutputStream()); if (debugging) { this.input = new DebugDataInputExtended(input); this.output = new DebugDataOutputExtended(output); } }
@Test public void encodeAndDecodeByteArray() throws IOException { final byte[] bytes = { 3, 76, -1, 21 }; outputImpl.writeBytes(bytes); final byte[] decodedBytes = inputImpl.readBytes(); assertThatArraysEqual(bytes, decodedBytes); }
@Test public void testEncode() throws Exception { final DataOutputStreamExtended mockOutputImpl = mockery.mock(DataOutputStreamExtended.class); mockery.checking(new Expectations() { { one(mockOutputImpl).writeEncodable(with(any(ObjectData.class))); // one(mockOutputImpl).writeUTF(TestObject.class.getName()); // one(mockOutputImpl).writeUTF(ResolveState.RESOLVED.name()); // one(mockOutputImpl).writeEncodable(oid); // one(mockOutputImpl).writeInt(1); // one(mockOutputImpl).writeByte((byte)1); // indicates a string // one(mockOutputImpl).writeUTF("name-field"); // one(mockOutputImpl).writeUTF("_HARRY_"); } }); memento.encodedData(mockOutputImpl); mockery.assertIsSatisfied(); }