### Question:
RemoveRequestHandler extends AbstractRemoveRequestHandler { @Override public MessageBody handleMessage(PlatformMessage message) throws Exception { logger.info("received a remove device request: {}", message); MessageBody body = message.getValue(); Long duration = DeviceCapability.RemoveRequest.getTimeout(body); if (duration == null) { duration = DEFAULT_REMOVE_DURATION; } Device device = loadDevice(message); if(device.isLost()) { service.delete(device); return RemoveResponse .builder() .withMode(RemoveResponse.MODE_CLOUD) .withSteps(PairingRemovalUtils.createDefaultRemovalStep(device.getName(), false)) .build(); } else { sendRemoveRequest(device, duration, false); return RemoveResponse .builder() .withMode(determineMode(device)) .withSteps(loadSteps(device)) .build(); } } @Inject  RemoveRequestHandler(
         DeviceDAO deviceDao,
         DeviceService service,
         PlaceDAO placeDao,
         ProductLoader productLoader,
         PlatformMessageBus platformBus,
         Set<GroovyDriverPlugin> plugins
   ); @Override String getMessageType(); @Override MessageBody handleMessage(PlatformMessage message);  }### Answer:
@Test public void testRemoveMissingDevice() throws Exception { EasyMock.expect(deviceDao.findById(device.getId())).andReturn(null); replay(); try { handler.handleMessage(createRemoveRequest()); fail(); } catch(NotFoundException e) { } assertNull(platformBus.poll()); verify(); }