### Question:
BlobIdTransformer implements Transformer { @Override public void warmup(List<MessageInfo> messageInfos) throws Exception { List<StoreKey> storeKeys = new ArrayList<>(); for (MessageInfo messageInfo : messageInfos) { if (!messageInfo.isExpired() && !messageInfo.isDeleted()) { storeKeys.add(messageInfo.getStoreKey()); } } storeKeyConverter.dropCache(); storeKeyConverter.convert(storeKeys); } BlobIdTransformer(StoreKeyFactory storeKeyFactory, StoreKeyConverter storeKeyConverter); @Override TransformationOutput transform(Message message); @Override void warmup(List<MessageInfo> messageInfos);  }### Answer:
@Test public void testWarmup() throws Exception { InputAndExpected inputAndExpected = new InputAndExpected(pairList.get(0), VALID_MESSAGE_FORMAT_INPUT_STREAM_IMPLS[0], true); BlobIdTransformer transformer = new BlobIdTransformer(blobIdFactory, factory.getStoreKeyConverter()); TransformationOutput output = transformer.transform(inputAndExpected.getInput()); Assert.assertTrue("Should lead to IllegalStateException", output.getException() instanceof IllegalStateException); transformer.warmup(Collections.singletonList(inputAndExpected.getInput().getMessageInfo())); output = transformer.transform(inputAndExpected.getInput()); assertNull(output.getException()); verifyOutput(output.getMsg(), inputAndExpected.getExpected()); }