code: func MockPumpsClient(client binlog.PumpClient) *pumpcli.PumpsClient {
  	nodeID := "pump-1"
  	pump := &pumpcli.PumpStatus{
  		Status: node.Status{
  			NodeID: nodeID,
  			State:  node.Online,
  		},
  		Client: client,
  	}
  
  	pumpInfos := &pumpcli.PumpInfos{
  		Pumps:            make(map[string]*pumpcli.PumpStatus),
  		AvaliablePumps:   make(map[string]*pumpcli.PumpStatus),
  		UnAvaliablePumps: make(map[string]*pumpcli.PumpStatus),
  	}
  	pumpInfos.Pumps[nodeID] = pump
  	pumpInfos.AvaliablePumps[nodeID] = pump
  
  	pCli := &pumpcli.PumpsClient{
  		ClusterID:          1,
  		Pumps:              pumpInfos,
  		Selector:           pumpcli.NewSelector(pumpcli.Range),
  		BinlogWriteTimeout: time.Second,
  	}
  	pCli.Selector.SetPumps([]*pumpcli.PumpStatus{pump})
  
  	return pCli
  }
docs: // MockPumpsClient creates a PumpsClient, used for test.