### Question:
ClientMultiAxisGroupBy implements ClientGroupBy<ClientLevelAxis> { @Override public ClientLevelAxis getAxis(ClientGroupAxisEnum axis) { return get(axis.toString()); } ClientMultiAxisGroupBy();  ClientMultiAxisGroupBy(ClientMultiAxisGroupBy source); @Override ClientMultiAxisGroupBy deepClone(); @Override ClientLevelAxis getAxis(ClientGroupAxisEnum axis); @Override ClientLevelAxis getAxis(int index); ClientLevelAxis get(Object key); @Override @XmlTransient List<ClientLevelAxis> getAxes(); void addAxis(ClientGroupAxisEnum axis, ClientLevelAxis clientLevelAxis); @XmlElement(name = "rows") ClientLevelAxis getRows(); ClientMultiAxisGroupBy setRows(ClientLevelAxis rows); @XmlElement(name = "columns") ClientLevelAxis getColumns(); ClientMultiAxisGroupBy setColumns(ClientLevelAxis columns); Set<String> keySet(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void getAxisReturnsColumnsFor0Index() { ClientMultiAxisGroupBy instance = createFullyConfiguredInstance(); int axisIndex = 0; ClientLevelAxis result = instance.getAxis(axisIndex); assertEquals(COLUMNS, result); }
@Test public void getAxisReturnsRowsFor1Index() { ClientMultiAxisGroupBy instance = createFullyConfiguredInstance(); int axisIndex = 1; ClientLevelAxis result = instance.getAxis(axisIndex); assertEquals(ROWS, result); }
@Test public void getAxisThrowExceptionFor2Index() { final ClientMultiAxisGroupBy instance = createFullyConfiguredInstance(); final int axisIndex = 2; assertThrows(IllegalArgumentException.class, new Executable() { @Override public void execute() { instance.getAxis(axisIndex); } }); }