### Question:
ZkLayoutManager implements LayoutManager { @Override public LedgerLayout readLedgerLayout() throws IOException { try { byte[] layoutData = zk.getData(ledgersLayout, false, null); return LedgerLayout.parseLayout(layoutData); } catch (NoNodeException nne) { return null; } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new IOException(e); } catch (KeeperException e) { throw new IOException(e); } } ZkLayoutManager(ZooKeeper zk,
                           String ledgersRoot,
                           List<ACL> acls); @VisibleForTesting ZooKeeper getZk(); @Override LedgerLayout readLedgerLayout(); @Override void storeLedgerLayout(LedgerLayout layout); @Override void deleteLedgerLayout();  }### Answer:
@Test public void testReadLayout() throws Exception { when(zk.getData(eq(layoutPath), eq(false), eq(null))) .thenReturn(layout.serialize()); assertEquals(layout, zkLayoutManager.readLedgerLayout()); }