### Question:
DialPlot extends Plot implements DialLayerChangeListener { public void addScale(int index, DialScale scale) { if (scale == null) { throw new IllegalArgumentException("Null 'scale' argument."); } DialScale existing = this.scales.get(index); if (existing != null) { removeLayer(existing); } this.layers.add(scale); this.scales.set(index, scale); scale.addChangeListener(this); fireChangeEvent(); } DialPlot();  DialPlot(ValueDataset dataset); DialLayer getBackground(); void setBackground(DialLayer background); DialLayer getCap(); void setCap(DialLayer cap); DialFrame getDialFrame(); void setDialFrame(DialFrame frame); double getViewX(); double getViewY(); double getViewWidth(); double getViewHeight(); void setView(double x, double y, double w, double h); void addLayer(DialLayer layer); int getLayerIndex(DialLayer layer); void removeLayer(int index); void removeLayer(DialLayer layer); void addPointer(DialPointer pointer); int getPointerIndex(DialPointer pointer); void removePointer(int index); void removePointer(DialPointer pointer); DialPointer getPointerForDataset(int datasetIndex); ValueDataset getDataset(); ValueDataset getDataset(int index); void setDataset(ValueDataset dataset); void setDataset(int index, ValueDataset dataset); int getDatasetCount(); @Override void draw(Graphics2D g2, Rectangle2D area, Point2D anchor,
            PlotState parentState, PlotRenderingInfo info); double getValue(int datasetIndex); void addScale(int index, DialScale scale); DialScale getScale(int index); void mapDatasetToScale(int index, int scaleIndex); DialScale getScaleForDataset(int datasetIndex); static Rectangle2D rectangleByRadius(Rectangle2D rect,
            double radiusW, double radiusH); @Override void dialLayerChanged(DialLayerChangeEvent event); @Override boolean equals(Object obj); @Override int hashCode(); @Override String getPlotType();  }### Answer:
@Test public void testScaleListener() { DialPlot p = new DialPlot(); StandardDialScale s1 = new StandardDialScale(); p.addScale(0, s1); p.addChangeListener(this); this.lastEvent = null; s1.setStartAngle(22.0); assertNotNull(this.lastEvent); StandardDialScale s2 = new StandardDialScale(); p.addScale(0, s2); this.lastEvent = null; s1.setStartAngle(33.0); assertNull(this.lastEvent); s2.setStartAngle(33.0); assertNotNull(this.lastEvent); }