### Question:
ClientMultiAxisGroupBy implements ClientGroupBy<ClientLevelAxis> { public Set<String> keySet() { Set<String> keys = new HashSet<String>(); if (this.rows != null) { keys.add(ClientGroupAxisEnum.ROWS.toString()); } if (this.columns != null) { keys.add(ClientGroupAxisEnum.COLUMNS.toString()); } return keys; } 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 keySetReturnsColumnsAndRowsKeysWhenColumnsAndRowsAreSet() { Set<String> expected = new HashSet<String>(Arrays.asList("columns", "rows")); ClientMultiAxisGroupBy instance = createFullyConfiguredInstance(); Set<String> result = instance.keySet(); assertEquals(expected, result); }
@Test public void keySetReturnsEmptySetWhenColumnsAndRowsAreNotSet() { Set<String> expected = new HashSet<String>(); ClientMultiAxisGroupBy instance = createInstanceWithDefaultParameters(); Set<String> result = instance.keySet(); assertEquals(expected, result); }