public void addOrReplaceSlaveServer( SlaveServer slaveServer ) {
    int index = slaveServers.indexOf( slaveServer );
    if ( index < 0 ) {
      slaveServers.add( slaveServer );
    } else {
      SlaveServer previous = slaveServers.get( index );
      previous.replaceMeta( slaveServer );
    }
    setChanged();
  }
@Test
  public void testAddOrReplaceSlaveServer() {
    // meta.addOrReplaceSlaveServer() right now will fail with an NPE
    assertNull( meta.getSlaveServers() );
    List<SlaveServer> slaveServers = new ArrayList<>();
    meta.setSlaveServers( slaveServers );
    assertNotNull( meta.getSlaveServers() );
    SlaveServer slaveServer = mock( SlaveServer.class );
    meta.addOrReplaceSlaveServer( slaveServer );
    assertFalse( meta.getSlaveServers().isEmpty() );
    meta.addOrReplaceSlaveServer( slaveServer );
    assertEquals( 1, meta.getSlaveServerNames().length );
    assertNull( meta.findSlaveServer( null ) );
    assertNull( meta.findSlaveServer( "" ) );
    when( slaveServer.getName() ).thenReturn( "ss1" );
    assertEquals( slaveServer, meta.findSlaveServer( "ss1" ) );
  }