Skip to content

Commit 989ebb7

Browse files
committed
More tests for SwingStreamUtils.asIterable(TreeModel)
1 parent 6700dde commit 989ebb7

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

src/test/java/io/github/parubok/stream/SwingStreamUtilsTest.java

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import javax.swing.JTree;
1414
import javax.swing.SwingUtilities;
1515
import javax.swing.event.TableModelEvent;
16+
import javax.swing.event.TreeModelListener;
1617
import javax.swing.table.DefaultTableModel;
1718
import javax.swing.table.TableModel;
1819
import javax.swing.tree.DefaultMutableTreeNode;
@@ -1228,4 +1229,46 @@ public void modifyingTreeModelDuringIterationShouldResultInConcurrentModificatio
12281229
Assertions.assertThrows(ConcurrentModificationException.class, iterator::next);
12291230
});
12301231
}
1232+
1233+
@Test
1234+
public void modifyingTreeModelAfterIteration() throws Exception {
1235+
SwingUtilities.invokeAndWait(() -> {
1236+
DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
1237+
DefaultTreeModel model = new DefaultTreeModel(root);
1238+
Iterator<KTreePath> iterator = SwingStreamUtils.asIterable(model).iterator();
1239+
while (iterator.hasNext()) {
1240+
iterator.next();
1241+
}
1242+
model.insertNodeInto(new DefaultMutableTreeNode("child"), root, 0);
1243+
Assertions.assertFalse(iterator.hasNext());
1244+
});
1245+
}
1246+
1247+
@Test
1248+
public void treeModelListeners() throws Exception {
1249+
SwingUtilities.invokeAndWait(() -> {
1250+
List<TreeModelListener> listeners = new ArrayList<>();
1251+
DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
1252+
DefaultTreeModel model = new DefaultTreeModel(root) {
1253+
@Override
1254+
public void addTreeModelListener(TreeModelListener l) {
1255+
listeners.add(l);
1256+
super.addTreeModelListener(l);
1257+
}
1258+
1259+
@Override
1260+
public void removeTreeModelListener(TreeModelListener l) {
1261+
listeners.remove(l);
1262+
super.removeTreeModelListener(l);
1263+
}
1264+
};
1265+
Assertions.assertEquals(0, listeners.size());
1266+
Iterator<KTreePath> iterator = SwingStreamUtils.asIterable(model).iterator();
1267+
Assertions.assertEquals(1, listeners.size());
1268+
while (iterator.hasNext()) {
1269+
iterator.next();
1270+
}
1271+
Assertions.assertEquals(0, listeners.size());
1272+
});
1273+
}
12311274
}

0 commit comments

Comments
 (0)