diff --git a/src/test/java/net/onrc/onos/core/flowmanager/FlowManagerModuleTest.java b/src/test/java/net/onrc/onos/core/flowmanager/FlowManagerModuleTest.java
new file mode 100644
index 0000000..3467812
--- /dev/null
+++ b/src/test/java/net/onrc/onos/core/flowmanager/FlowManagerModuleTest.java
@@ -0,0 +1,51 @@
+package net.onrc.onos.core.flowmanager;
+
+import static org.junit.Assert.assertEquals;
+import net.onrc.onos.api.flowmanager.ConflictDetectionPolicy;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+public class FlowManagerModuleTest {
+    @Rule
+    public ExpectedException thrown = ExpectedException.none();
+
+    @Before
+    public void setUp() throws Exception {
+    }
+
+    @After
+    public void tearDown() throws Exception {
+    }
+
+    /**
+     * Checks the default conflict detection policy is the FREE policy, and
+     * the other policies are not supported.
+     */
+    @Test
+    public void testConflictDetectionPolicy() {
+        FlowManagerModule flowManager = new FlowManagerModule();
+        assertEquals(ConflictDetectionPolicy.FREE,
+                flowManager.getConflictDetectionPolicy());
+
+        flowManager.setConflictDetectionPolicy(ConflictDetectionPolicy.FREE);
+        assertEquals(ConflictDetectionPolicy.FREE,
+                flowManager.getConflictDetectionPolicy());
+
+        thrown.expect(UnsupportedOperationException.class);
+        thrown.expectMessage("LOOSE is not supported.");
+        flowManager.setConflictDetectionPolicy(ConflictDetectionPolicy.LOOSE);
+        assertEquals(ConflictDetectionPolicy.FREE,
+                flowManager.getConflictDetectionPolicy());
+
+        thrown.expect(UnsupportedOperationException.class);
+        thrown.expectMessage("STRICT is not supported.");
+        flowManager.setConflictDetectionPolicy(ConflictDetectionPolicy.STRICT);
+        assertEquals(ConflictDetectionPolicy.FREE,
+                flowManager.getConflictDetectionPolicy());
+    }
+
+}
