### Question:
BlockSharingService implements SharingService { @Override public void shareAndSendMessage(Identity sender, Contact receiver, BoxFile objectToShare, String message, BoxNavigation navigation) throws QblStorageException, PersistenceException, QblNetworkInvalidResponseException { QblECPublicKey owner = sender.getEcPublicKey(); BoxExternalReference ref = navigation.share(owner, objectToShare, receiver.getKeyIdentifier()); DropMessage dropMessage = makeDropMessage(sender, message, ref); dropConnector.send(receiver, dropMessage); dropMessageRepository.addMessage( dropMessage, sender, receiver, true ); } BlockSharingService(DropMessageRepository dropMessageRepository, DropConnector dropConnector); @Override void downloadShare(
        BoxExternalFile boxFile,
        ShareNotificationMessage message,
        Path targetFile,
        AuthenticatedDownloader downloader
    ); @Override BoxObject loadFileMetadata(ShareNotificationMessage message, AuthenticatedDownloader downloader); @Override void shareAndSendMessage(Identity sender, Contact receiver, BoxFile objectToShare, String message, BoxNavigation navigation);  }### Answer:
@Test public void shareAndSendMessage() throws Exception { BlockSharingService service = new BlockSharingService(dropMessageRepository, httpDropConnector); DropMessage message = service.makeDropMessage(identity, "message", new BoxExternalReference(false, "", "", identity.getEcPublicKey(), new byte[]{1})); assertEquals(new DropMessageMetadata(identity), message.getDropMessageMetadata()); }