### Question:
MasterSlaveJdbcManagerFactoryImpl implements
        MasterSlaveJdbcManagerFactory { @Override public String getJdbcManagerName() { String name = jdbcManagerName.get(); if (! isValidSlaveJdbcManagerName(name)) { name = getMasterJdbcManagerName(); } return name; }  S2Container getContainer(); void setContainer(S2Container container); @Override String getMasterJdbcManagerName(); @Override void setMasterJdbcManagerName(String name); @Override List<String> getSlaveJdbcManagerNames(); @Override void addSlaveJdbcManagerName(String name); @Override void removeSlaveJdbcManagerName(String name); @Override String getJdbcManagerName(); @Override void setJdbcManagerName(String name); @Override JdbcManagerWrapper getMasterJdbcManager(); @Override JdbcManagerWrapper getSlaveOrMasterJdbcManager(); @Override void setValidationQuery(String validationQuery); @Override String getValidationQuery();  }### Answer:
@Test public void getJdbcManagerName() { assertThat(i.getJdbcManagerName(), describedAs("スレーブが設定されていない場合はmasterを利用", is("master"))); assertThat(i.getMasterJdbcManagerName(), is("master")); i.setJdbcManagerName("not exists"); assertThat(i.getJdbcManagerName(), describedAs("スレーブに存在しないコンポーネント名の場合はmasterを利用", is("master"))); assertThat(i.getMasterJdbcManagerName(), is("master")); i.addSlaveJdbcManagerName("slave1"); i.addSlaveJdbcManagerName("slave2"); i.addSlaveJdbcManagerName("slave3"); i.setJdbcManagerName("slave2"); assertThat(i.getJdbcManagerName(), describedAs("スレーブに存在するコンポーネント名の場合はそのコンポーネント名を利用", is("slave2"))); assertThat(i.getMasterJdbcManagerName(), is("master")); i.setJdbcManagerName("master"); assertThat(i.getJdbcManagerName(), describedAs("マスターを指定した場合はmasterを利用", is("master"))); assertThat(i.getMasterJdbcManagerName(), is("master")); i.setJdbcManagerName("slave2"); i.removeSlaveJdbcManagerName("slave2"); assertThat(i.getJdbcManagerName(), describedAs("削除された場合はmasterを利用", is("master"))); assertThat(i.getMasterJdbcManagerName(), is("master")); }