### Question:
TaskSeriesCollection extends AbstractSeriesDataset implements GanttCategoryDataset, Cloneable, PublicCloneable,
                   Serializable { public TaskSeries getSeries(Comparable key) { if (key == null) { throw new NullPointerException("Null 'key' argument."); } TaskSeries result = null; int index = getRowIndex(key); if (index >= 0) { result = getSeries(index); } return result; } TaskSeriesCollection(); TaskSeries getSeries(Comparable key); TaskSeries getSeries(int series); @Override int getSeriesCount(); @Override Comparable getSeriesKey(int series); @Override int getRowCount(); @Override List getRowKeys(); @Override int getColumnCount(); @Override List<Comparable> getColumnKeys(); @Override Comparable getColumnKey(int index); @Override int getColumnIndex(Comparable columnKey); @Override int getRowIndex(Comparable rowKey); @Override Comparable getRowKey(int index); void add(TaskSeries series); void remove(TaskSeries series); void remove(int series); void removeAll(); @Override Number getValue(Comparable rowKey, Comparable columnKey); @Override Number getValue(int row, int column); @Override Number getStartValue(Comparable rowKey, Comparable columnKey); @Override Number getStartValue(int row, int column); @Override Number getEndValue(Comparable rowKey, Comparable columnKey); @Override Number getEndValue(int row, int column); @Override Number getPercentComplete(int row, int column); @Override Number getPercentComplete(Comparable rowKey, Comparable columnKey); @Override int getSubIntervalCount(int row, int column); @Override int getSubIntervalCount(Comparable rowKey, Comparable columnKey); @Override Number getStartValue(int row, int column, int subinterval); @Override Number getStartValue(Comparable rowKey, Comparable columnKey,
                                int subinterval); @Override Number getEndValue(int row, int column, int subinterval); @Override Number getEndValue(Comparable rowKey, Comparable columnKey,
                              int subinterval); @Override Number getPercentComplete(int row, int column, int subinterval); @Override Number getPercentComplete(Comparable rowKey, Comparable columnKey,
                                     int subinterval); @Override void seriesChanged(SeriesChangeEvent event); @Override boolean equals(Object obj); @Override Object clone();  }### Answer:
@Test public void testGetSeries() { TaskSeries s1 = new TaskSeries("S1"); TaskSeries s2 = new TaskSeries("S2"); TaskSeriesCollection c = new TaskSeriesCollection(); c.add(s1); assertEquals(c.getSeries(0), s1); assertEquals(c.getSeries("S1"), s1); assertEquals(c.getSeries("XX"), null); c.add(s2); assertEquals(c.getSeries(1), s2); assertEquals(c.getSeries("S2"), s2); try { c.getSeries(null); fail("NullPointerException should have been thrown by passing null parameter"); } catch (NullPointerException e) { } }