### Question:
Session { synchronized void destroy() { packetBuffer.destroy(); } Session(Communications communications, CommandLine.Options options, UserStore userStore, Handler handshakeRequestHandler, Handler requestHandler); synchronized boolean handle(SocketChannel sc); synchronized boolean isExpecting(PACKETS packet); synchronized void setExpecting(PACKETS packet); synchronized void send(Packet packet); void attachUser(Key publicKey); Key getServerKey(); User getUser(); byte[] getChallenge(); void setChallenge(byte[] challenge); void updateKey(); PublicKey getChallengedKey(); void setChallengedKey(PublicKey challengedKey); synchronized void setState(CONNECTION_STATE state); Communications getCommunications(); PACKETS getExpecting();  }### Answer:
@Test public void testConstructionAndDestructionDoNotProduceExceptions() throws Exception { Session session = new Session(communications, options, userStore, new HandshakeHandler(), new RequestHandler(messageStore)); session.destroy(); }