### Question:
SubscriptionManager extends AbstractVerticle implements PrivateTransactionObserver { public boolean unsubscribe(final UnsubscribeRequest request) { final Long subscriptionId = request.getSubscriptionId(); final String connectionId = request.getConnectionId(); LOG.debug("Unsubscribe request subscriptionId = {}", subscriptionId); final Subscription subscription = subscriptions.get(subscriptionId); if (subscription == null || !subscription.getConnectionId().equals(connectionId)) { throw new SubscriptionNotFoundException(subscriptionId); } destroySubscription(subscriptionId); return true; } SubscriptionManager(
      final MetricsSystem metricsSystem, final Blockchain blockchainQueries);  SubscriptionManager(final MetricsSystem metricsSystem); @Override void start(); Long subscribe(final SubscribeRequest request); boolean unsubscribe(final UnsubscribeRequest request); Subscription getSubscriptionById(final Long subscriptionId); List<T> subscriptionsOfType(final SubscriptionType type, final Class<T> clazz); void sendMessage(final Long subscriptionId, final JsonRpcResult msg); void notifySubscribersOnWorkerThread(
      final SubscriptionType subscriptionType,
      final Class<T> clazz,
      final Consumer<List<T>> runnable); @Override void onPrivateTransactionProcessed(final PrivateTransactionEvent event); static final String EVENTBUS_REMOVE_SUBSCRIPTIONS_ADDRESS; }### Answer:
@Test public void unsubscribeAbsentSubscriptionShouldThrowSubscriptionNotFoundException() { final UnsubscribeRequest unsubscribeRequest = new UnsubscribeRequest(1L, CONNECTION_ID); thrown.expect( both(hasMessage(equalTo("Subscription not found (id=1)"))) .and(instanceOf(SubscriptionNotFoundException.class))); subscriptionManager.unsubscribe(unsubscribeRequest); }