From 480a517d6ef5483107426b6b0615bb44deb4b3b4 Mon Sep 17 00:00:00 2001
From: Jess Sightler <jesse.sightler@gmail.com>
Date: Mon, 8 Jan 2018 12:10:00 -0500
Subject: [PATCH] Updated to not throw when returning a single item (this can
 just return null as frames did) and added a test

---
 .gitignore                                    |  3 +++
 .../annotation/AdjacencyMethodHandler.java    |  2 +-
 .../AdjacencyMethodHandlerTest.java           | 20 +++++++++++++++++++
 3 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 66fb5870..d360765b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,6 @@ target/
 .project
 .settings
 site
+.idea/
+ferma.iml
+
diff --git a/src/main/java/com/syncleus/ferma/framefactories/annotation/AdjacencyMethodHandler.java b/src/main/java/com/syncleus/ferma/framefactories/annotation/AdjacencyMethodHandler.java
index 4ae6fdd2..0ad0583a 100644
--- a/src/main/java/com/syncleus/ferma/framefactories/annotation/AdjacencyMethodHandler.java
+++ b/src/main/java/com/syncleus/ferma/framefactories/annotation/AdjacencyMethodHandler.java
@@ -362,7 +362,7 @@ public class AdjacencyMethodHandler extends AbstractMethodHandler {
                     default:
                         throw new IllegalStateException("Direction not recognized.");
                 }
-            }).next(VertexFrame.class);
+            }).nextOrDefault(VertexFrame.class, null);
         }
     }
 
diff --git a/src/test/java/com/syncleus/ferma/annotations/AdjacencyMethodHandlerTest.java b/src/test/java/com/syncleus/ferma/annotations/AdjacencyMethodHandlerTest.java
index 750230d4..c359a97e 100644
--- a/src/test/java/com/syncleus/ferma/annotations/AdjacencyMethodHandlerTest.java
+++ b/src/test/java/com/syncleus/ferma/annotations/AdjacencyMethodHandlerTest.java
@@ -323,6 +323,26 @@ public class AdjacencyMethodHandlerTest {
         Assert.assertTrue(child instanceof GodExtended);
     }
 
+    @Test
+    public void testSetSonNull() {
+
+        GodGraphLoader.load(godGraph);
+
+        final FramedGraph framedGraph = new DelegatingFramedGraph(godGraph, TEST_TYPES);
+
+        final List<? extends God> gods = framedGraph.traverse(
+            input -> input.V().has("name", "jupiter")).toList(God.class);
+
+        final God father = gods.iterator().next();
+        Assert.assertTrue(father != null);
+        final VertexFrame fatherVertex = father;
+        Assert.assertEquals(fatherVertex.getProperty("name"), "jupiter");
+
+        father.setSon(null);
+        final God sonNull = father.getSon();
+        Assert.assertNull(sonNull);
+    }
+
     @Test
     public void testAddSonDefault() {
 
-- 
GitLab