@Before
  public void setup() throws Exception {
    Properties props = new Properties();
    TestSSLUtils.addHttp2Properties(props, SSLFactory.Mode.SERVER, true);
    // VCR use this mockCluster to initiate cluster map.
    props.setProperty("clustermap.enable.http2.replication", "true");
    mockCluster = new MockCluster(props, false, SystemTime.getInstance(), 1, 1, numOfPartitions);
    notificationSystem = new MockNotificationSystem(mockCluster.getClusterMap());
    mockCluster.initializeServers(notificationSystem);
    mockCluster.startServers();
    dataNode = mockCluster.getClusterMap().getDataNodeIds().get(0);

    // Start ZK Server and Helix Controller
    if (!zkInfo.isZkServerStarted()) {
      zkInfo.startZkServer();
    }
    helixControllerManager =
        VcrTestUtil.populateZkInfoAndStartController(zkConnectString, vcrClusterName, mockCluster.getClusterMap(),
            vcrStateModelName);

    trustStoreFile = File.createTempFile("truststore", ".jks");
    serverSSLProps = new Properties();
    TestSSLUtils.addSSLProperties(serverSSLProps, "DC1,DC2,DC3", SSLFactory.Mode.SERVER, trustStoreFile, "server");
    TestSSLUtils.addHttp2Properties(serverSSLProps, SSLFactory.Mode.SERVER, true);

    clientSSLProps = new Properties();
    TestSSLUtils.addSSLProperties(clientSSLProps, "DC1,DC2,DC3", SSLFactory.Mode.CLIENT, trustStoreFile,
        "http2-blocking-channel-client");
    TestSSLUtils.addHttp2Properties(clientSSLProps, SSLFactory.Mode.CLIENT, true);
  }
Run for both onlineoffline and leaderstandby state models.
@return an array with factory class and state model names for both the state models.
ambry-vcr/src/test/java/com/github/ambry/vcr/VcrBackupTest.java