### Question:
DeFiPluginMessageStore extends AbstractPluginMessageStore { @Override public PutMessageResult putMessage(MessageExtBrokerInner msg) { long startTime = System.nanoTime(); MessageAccessor.putProperty(msg, DeFiBusConstant.PROPERTY_MESSAGE_CLUSTER, clusterName); MessageAccessor.putProperty(msg, DeFiBusConstant.PROPERTY_MESSAGE_BROKER, brokerName); msg.setPropertiesString(MessageDecoder.messageProperties2String(msg.getProperties())); PutMessageResult result = next.putMessage(msg); long eclipseNanoTime = System.nanoTime() - startTime; pluginStoreStatService.recordPutTime(eclipseNanoTime); return result; } DeFiPluginMessageStore(MessageStorePluginContext context, MessageStore next); @Override void start(); @Override void shutdown(); @Override PutMessageResult putMessage(MessageExtBrokerInner msg); @Override PutMessageResult putMessages(MessageExtBatch messageExtBatch); @Override GetMessageResult getMessage(String group, String topic, int queueId, long offset,
        int maxMsgNums, final MessageFilter messageFilter); MessageStore getDefaultMessageStore();  }### Answer:
@Test public void testPutMessage(){ MessageExtBrokerInner inner = new MessageExtBrokerInner(); when(messageStore.putMessage(inner)).thenReturn(new PutMessageResult(PutMessageStatus.PUT_OK, new AppendMessageResult(AppendMessageStatus.PUT_OK))); PutMessageResult result = deFiPluginMessageStore.putMessage(inner); assertThat(result.getPutMessageStatus()).isEqualTo(PutMessageStatus.PUT_OK); assertTrue(result.getAppendMessageResult().isOk()); }