package com.tinkerpop.frames.modules; import junit.framework.Assert; import org.junit.Test; import org.mockito.Mockito; import com.tinkerpop.blueprints.Graph; import com.tinkerpop.blueprints.TransactionalGraph; import com.tinkerpop.frames.FramedGraphConfiguration; import com.tinkerpop.frames.modules.AbstractModule; public class AbstractModuleTest { @Test public void testNoWrapping() { Graph baseGraph = Mockito.mock(Graph.class); TransactionalGraph baseTransactionalGraph = Mockito.mock(TransactionalGraph.class); FramedGraphConfiguration config = new FramedGraphConfiguration(); AbstractModule module = Mockito.mock(AbstractModule.class); Mockito.when(module.doConfigure(Mockito.any(Graph.class), Mockito.any(FramedGraphConfiguration.class))).thenCallRealMethod(); Graph configuredGraph = module.configure(baseGraph, config); Assert.assertEquals(baseGraph, configuredGraph); Mockito.verify(module).doConfigure(Mockito.any(Graph.class), Mockito.any(FramedGraphConfiguration.class)); Mockito.verify(module).doConfigure(Mockito.any(FramedGraphConfiguration.class)); Mockito.reset(module); Mockito.when(module.doConfigure(Mockito.any(TransactionalGraph.class), Mockito.any(FramedGraphConfiguration.class))).thenCallRealMethod(); Graph configuredTransactionalGraph = module.configure(baseTransactionalGraph, config); Assert.assertEquals(baseTransactionalGraph, configuredTransactionalGraph); Mockito.verify(module).doConfigure(Mockito.any(TransactionalGraph.class), Mockito.any(FramedGraphConfiguration.class)); Mockito.verify(module).doConfigure(Mockito.any(FramedGraphConfiguration.class)); } @Test public void testWrapping() { Graph baseGraph = Mockito.mock(Graph.class); TransactionalGraph baseTransactionalGraph = Mockito.mock(TransactionalGraph.class); Graph wrappedGraph = Mockito.mock(Graph.class); TransactionalGraph wrappedTransactionalGraph = Mockito.mock(TransactionalGraph.class); FramedGraphConfiguration config = new FramedGraphConfiguration(); AbstractModule module = Mockito.mock(AbstractModule.class); Mockito.when(module.doConfigure(Mockito.any(Graph.class), Mockito.any(FramedGraphConfiguration.class))).thenReturn(wrappedGraph); Graph configuredGraph = module.configure(baseGraph, config); Assert.assertEquals(wrappedGraph, configuredGraph); Mockito.reset(module); Mockito.when(module.doConfigure(Mockito.any(TransactionalGraph.class), Mockito.any(FramedGraphConfiguration.class))).thenReturn(wrappedTransactionalGraph); Graph configuredTransactionalGraph = module.configure(baseTransactionalGraph, config); Assert.assertEquals(wrappedTransactionalGraph, configuredTransactionalGraph); } }