### Question:
FabricTopicAdmin implements IEventTopic { @Override public boolean exist(String topic, String channelName) throws BrokerException { ParamCheckUtils.validateTopicName(topic); validateChannelName(channelName); return fabricDelegate.getFabricMap().get(channelName).isTopicExist(topic); } FabricTopicAdmin(FabricDelegate fabricDelegate); @Override boolean open(String topic, String channelName); @Override boolean close(String topic, String channelName); @Override WeEvent getEvent(String eventId, String channelName); @Override boolean exist(String topic, String channelName); @Override TopicPage list(Integer pageIndex, Integer pageSize, String channelName); @Override TopicInfo state(String topic, String channelName); @Override List<String> listGroupId(); @Override Long getBlockHeight(String channelName); @Override GroupGeneral getGroupGeneral(String channelName); @Override ListPage<TbTransHash> queryTransList(QueryEntity queryEntity); @Override ListPage<TbBlock> queryBlockList(QueryEntity queryEntity); @Override ListPage<TbNode> queryNodeList(QueryEntity queryEntity); @Override ContractContext getContractContext(String groupId); @Override boolean addOperator(String groupId, String topicName, String address); @Override boolean delOperator(String groupId, String topicName, String address); @Override List<String> listOperator(String groupId, String topicName); @Override void validateGroupId(String channelName);  }### Answer:
@Test public void testExist() throws Exception { Assert.assertTrue(this.iProducer.exist(this.topicName, this.channelName)); }
@Test public void testExistTopicExist() throws Exception { boolean result = this.iProducer.exist(this.topicName, this.channelName); Assert.assertTrue(result); }
@Test public void testExistTopicNotExist() throws Exception { String falseTopic = "sdlkufhdsighfskhdsf"; Assert.assertFalse(this.iProducer.exist(falseTopic, this.channelName)); }
@Test public void testExistTopicIsNull() { try { this.iProducer.exist(null, this.channelName); Assert.fail(); } catch (BrokerException e) { Assert.assertEquals(ErrorCode.TOPIC_IS_BLANK.getCode(), e.getCode()); } }
@Test public void testExistTopicOverMaxLength() { try { String falseTopic = "fasssglsjggtyuioplkjhgfdsaqwezxcvqazxswedcvfrtgbnhyujmkiolpoiuytr"; this.iProducer.exist(falseTopic, this.channelName); Assert.fail(); } catch (BrokerException e) { Assert.assertEquals(ErrorCode.TOPIC_EXCEED_MAX_LENGTH.getCode(), e.getCode()); } }
@Test public void testExistTopicIsBlank() { try { String falseTopic = " "; this.iProducer.exist(falseTopic, this.channelName); Assert.fail(); } catch (BrokerException e) { Assert.assertEquals(ErrorCode.TOPIC_IS_BLANK.getCode(), e.getCode()); } }
@Test public void testExistTopicContainChiChar() { try { this.iProducer.exist("中国", this.channelName); Assert.fail(); } catch (BrokerException e) { Assert.assertEquals(ErrorCode.TOPIC_CONTAIN_INVALID_CHAR.getCode(), e.getCode()); } }
@Test public void testExistChannelNameIsNull() { try { this.iProducer.exist(this.topicName, null); Assert.fail(); } catch (BrokerException e) { Assert.assertEquals(ErrorCode.FABRICSDK_CHANNEL_NAME_INVALID.getCode(), e.getCode()); } }
@Test public void testExistChannelNameNotExist() { try { this.iProducer.exist(this.topicName, "4"); Assert.fail(); } catch (BrokerException e) { Assert.assertEquals(ErrorCode.FABRICSDK_CHANNEL_NAME_INVALID.getCode(), e.getCode()); } }