diff --git a/algorithms-miscellaneous-2/pom.xml b/algorithms-miscellaneous-2/pom.xml
index 25472d4888..5461f4ebe1 100644
--- a/algorithms-miscellaneous-2/pom.xml
+++ b/algorithms-miscellaneous-2/pom.xml
@@ -33,6 +33,11 @@
jgrapht-core
${org.jgrapht.core.version}
+
+ org.jgrapht
+ jgrapht-ext
+ ${org.jgrapht.ext.version}
+
pl.allegro.finance
tradukisto
@@ -83,6 +88,7 @@
3.6.1
1.0.1
1.0.1
+ 1.0.1
3.9.0
1.11
diff --git a/algorithms-miscellaneous-2/src/test/java/com/baeldung/jgrapht/GraphImageGenerationUnitTest.java b/algorithms-miscellaneous-2/src/test/java/com/baeldung/jgrapht/GraphImageGenerationUnitTest.java
new file mode 100644
index 0000000000..3b841d574a
--- /dev/null
+++ b/algorithms-miscellaneous-2/src/test/java/com/baeldung/jgrapht/GraphImageGenerationUnitTest.java
@@ -0,0 +1,47 @@
+package com.baeldung.jgrapht;
+
+import static org.junit.Assert.assertTrue;
+import java.awt.Color;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import javax.imageio.ImageIO;
+import org.jgrapht.ext.JGraphXAdapter;
+import org.jgrapht.graph.DefaultDirectedGraph;
+import org.jgrapht.graph.DefaultEdge;
+import org.junit.Before;
+import org.junit.Test;
+import com.mxgraph.layout.mxCircleLayout;
+import com.mxgraph.layout.mxIGraphLayout;
+import com.mxgraph.util.mxCellRenderer;
+
+public class GraphImageGenerationUnitTest {
+ static DefaultDirectedGraph g;
+
+ @Before
+ public void createGraph() throws IOException {
+ File imgFile = new File("src/test/resources/graph.png");
+ imgFile.createNewFile();
+ g = new DefaultDirectedGraph(DefaultEdge.class);
+ String x1 = "x1";
+ String x2 = "x2";
+ String x3 = "x3";
+ g.addVertex(x1);
+ g.addVertex(x2);
+ g.addVertex(x3);
+ g.addEdge(x1, x2);
+ g.addEdge(x2, x3);
+ g.addEdge(x3, x1);
+ }
+
+ @Test
+ public void givenAdaptedGraph_whenWriteBufferedImage_ThenFileShouldExist() throws IOException {
+ JGraphXAdapter graphAdapter = new JGraphXAdapter(g);
+ mxIGraphLayout layout = new mxCircleLayout(graphAdapter);
+ layout.execute(graphAdapter.getDefaultParent());
+ File imgFile = new File("src/test/resources/graph.png");
+ BufferedImage image = mxCellRenderer.createBufferedImage(graphAdapter, null, 2, Color.WHITE, true, null);
+ ImageIO.write(image, "PNG", imgFile);
+ assertTrue(imgFile.exists());
+ }
+}
\ No newline at end of file
diff --git a/algorithms-miscellaneous-2/src/test/resources/graph.png b/algorithms-miscellaneous-2/src/test/resources/graph.png
new file mode 100644
index 0000000000..56995b8dd9
Binary files /dev/null and b/algorithms-miscellaneous-2/src/test/resources/graph.png differ