public void testAddingOberserverToChain() throws GraphException {
GraphProcessor processor = new GraphProcessor();
GraphProcessingObserver[] observers = processor.getObservers();
assertNotNull(observers);
assertEquals(0, observers.length);
GraphProcessingObserverMock observerMock = new GraphProcessingObserverMock();
processor.addObserver(observerMock);
observers = processor.getObservers();
assertNotNull(observers);
assertEquals(1, observers.length);
assertSame(observerMock, observers[0]);
Graph graph = new Graph("test-graph");
graph.addNode(new Node("a", OpMock.Spi.class.getName()));
processor.executeGraph(graph, ProgressMonitor.NULL);
assertEquals(6, observerMock.entries.size());
assertEquals("graph [test-graph] started", observerMock.entries.get(0));
assertEquals("tile java.awt.Rectangle[x=0,y=0,width=10,height=5] started", observerMock.entries.get(1));
assertEquals("tile java.awt.Rectangle[x=0,y=0,width=10,height=5] stopped", observerMock.entries.get(2));
assertEquals("tile java.awt.Rectangle[x=0,y=5,width=10,height=5] started", observerMock.entries.get(3));
assertEquals("tile java.awt.Rectangle[x=0,y=5,width=10,height=5] stopped", observerMock.entries.get(4));
assertEquals("graph [test-graph] stopped", observerMock.entries.get(5));
}