    @Test
    public void testSendMessageSubscribe() {

        createSession();

        List<TopicMessage> topicMessageList = new ArrayList<>();

        for (Bytes nodeID : nodeList) {
            TopicMessage.Builder topicMessageBuilder = TopicMessage.newBuilder();
            topicMessageBuilder.setFromNodeId(ByteString.copyFrom(nodeID.getKey()));
            SubMessage.Builder subMessageBuilder = SubMessage.newBuilder();
            subMessageBuilder.setTopic("hello");
            subMessageBuilder.setSub(true);
            subMessageBuilder.setNodeId(ByteString.copyFrom(nodeID.getKey()));

            topicMessageBuilder.setSubscribe(subMessageBuilder);

            topicMessageList.add(topicMessageBuilder.build());
        }
        for (TopicMessage topicMessage : topicMessageList) {
            pubSub.sendMessage(topicMessage, null);
        }

        Set<Bytes> nodeIDSet = topicsMock.get("hello");
        for (Bytes nodeId : nodeList) {
            Asserts.check(nodeIDSet.contains(nodeId), "topics error expected:" + nodeId);
        }
    }