### Question:
BoltProtocolV3 extends BoltProtocolV1 { @Override protected BoltRequestMessageReader createMessageReader( BoltChannel channel, Neo4jPack neo4jPack, BoltConnection connection, LogService logging ) { BoltResponseMessageWriterV1 responseWriter = new BoltResponseMessageWriterV1( neo4jPack, connection.output(), logging ); return new BoltRequestMessageReaderV3( connection, responseWriter, logging ); } BoltProtocolV3( BoltChannel channel, BoltConnectionFactory connectionFactory, BoltStateMachineFactory stateMachineFactory, LogService logging ); @Override long version(); static final long VERSION; }### Answer:
@Test void shouldCreateMessageReaderForBoltV3() throws Throwable { BoltProtocolV3 protocolV3 = new BoltProtocolV3( mock( BoltChannel.class ), ( ch, st ) -> mock( BoltConnection.class ), mock( BoltStateMachineFactory.class ), NullLogService.getInstance() ); assertThat( protocolV3.createMessageReader( mock( BoltChannel.class ), mock( Neo4jPack.class ), mock( BoltConnection.class ), NullLogService.getInstance() ), instanceOf( BoltRequestMessageReaderV3.class ) ); }