### Question:
RunMessage implements RequestMessage { public Duration transactionTimeout() { return txTimeout; } RunMessage( String statement );  RunMessage( String statement, MapValue params );  RunMessage( String statement, MapValue params, MapValue meta ); String statement(); MapValue params(); MapValue meta(); @Override boolean safeToProcessInAnyState(); @Override boolean equals( Object o ); @Override int hashCode(); @Override String toString(); Bookmark bookmark(); Duration transactionTimeout(); Map<String,Object> transactionMetadata(); static final byte SIGNATURE; }### Answer:
@Test void shouldParseTransactionTimeoutCorrectly() throws Throwable { Map<String,Object> msgMetadata = map( "tx_timeout", 123456L ); MapValue meta = ValueUtils.asMapValue( msgMetadata ); RunMessage runMessage = new RunMessage( "RETURN 1", EMPTY_MAP, meta ); assertThat( runMessage.transactionTimeout().toMillis(), equalTo( 123456L ) ); }