### Question:
CoapUdpMessaging extends CoapMessaging { @Override protected boolean handleObservation(CoapPacket packet, TransportContext transportContext) { Integer observe = packet.headers().getObserve(); if (observe == null) { return false; } if (findDuplicate(packet, "CoAP notification repeated")) { return true; } return super.handleObservation(packet, transportContext); } CoapUdpMessaging(CoapTransport coapTransport); final void init(int duplicationListSize,
            ScheduledExecutorService scheduledExecutor, boolean isSelfCreatedExecutor,
            MessageIdSupplier idContext,
            int maxQueueSize, CoapTransaction.Priority defaultPriority,
            long delayedTransactionTimeout, DuplicatedCoapMessageCallback duplicatedCoapMessageCallback); ScheduledExecutorService getScheduledExecutor(); @Override synchronized void start(CoapRequestHandler coapRequestHandler); void setSpecialCoapTransactionPriority(CoapTransaction.Priority specialCoapTransactionPriority); @Override void stop0(); void setTransmissionTimeout(TransmissionTimeout transmissionTimeout); @Override void sendResponse(CoapPacket request, CoapPacket resp, TransportContext ctx); @Override void ping(InetSocketAddress destination, Callback<CoapPacket> callback); @Override void makeRequest(final CoapPacket packet, final Callback<CoapPacket> callback, final TransportContext transContext); @Override void makePrioritisedRequest(CoapPacket packet, Callback<CoapPacket> callback, TransportContext transContext); int getNumberOfTransactions();  }### Answer:
@Test public void receiveObservation() throws Exception { initServer(); receive(newCoapPacket(LOCAL_5683).mid(3001).obs(2).con(Code.C203_VALID).token(33).payload("A")); receive(newCoapPacket(LOCAL_5683).mid(3002).obs(2).con(Code.C205_CONTENT).token(44).payload("B")); verify(requestHandler, times(2)).handleObservation(any(), any()); }