### Question:
ThemisMasterObserver extends BaseMasterObserver { protected static HColumnDescriptor getCommitFamily(byte[] familyName) { HColumnDescriptor desc = new HColumnDescriptor(familyName); desc.setTimeToLive(HConstants.FOREVER); desc.setMaxVersions(Integer.MAX_VALUE); return desc; }  @Override void start(CoprocessorEnvironment ctx); @Override void stop(CoprocessorEnvironment ctx); @Override void preCreateTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
      HTableDescriptor desc, HRegionInfo[] regions); @Override void postGetTableDescriptors(ObserverContext<MasterCoprocessorEnvironment> ctx,
      List<HTableDescriptor> descriptors); static boolean isThemisEnableFamily(HColumnDescriptor desc); static boolean isThemisEnableTable(HTableDescriptor desc); static List<String> getThemisTables(HConnection connection); static String getThemisExpiredTsZNodePath(ZooKeeperWatcher zk); static long getThemisExpiredTsFromZk(ZooKeeperWatcher zk); static long getThemisExpiredTsFromZk(ZooKeeperWatcher zk, String path); void setExpiredTsToZk(long currentExpiredTs); void cleanLockBeforeTimestamp(long ts); static final String RETURNED_THEMIS_TABLE_DESC; static final String THEMIS_ENABLE_KEY; static final String THEMIS_EXPIRED_TIMESTAMP_CALCULATE_PERIOD_KEY; static final String THEMIS_EXPIRED_DATA_CLEAN_ENABLE_KEY; static final String THEMIS_EXPIRED_TIMESTAMP_ZNODE_NAME; }### Answer:
@Test public void testGetThemisCommitFamily() throws Exception { for (byte[] family : ColumnUtil.COMMIT_FAMILY_NAME_BYTES) { HColumnDescriptor columnDesc = ThemisMasterObserver.getCommitFamily(family); checkCommitFamilyDesc(columnDesc); } }