package org.om.core.impl.persistence.interceptor.handler; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import org.junit.Test; import org.om.core.api.annotation.LookupMode; import org.om.core.api.mapping.MappedField; import org.om.core.api.persistence.PersistenceAdapter; import org.om.core.api.session.Session; import org.om.core.impl.test.EntityImplementingInterface; import org.om.core.impl.test.MappedFieldBuilder; import org.om.core.impl.test.MyInterface; public class ReferenceHandlerTest { /** * Tests that the {@link ReferenceHandler} requests the correct * implementation type from the session. */ @Test public void test() { Session session = mock(Session.class); PersistenceAdapter adapter = mock(PersistenceAdapter.class); when(adapter.resolve("/foo/bar")).thenReturn("/resolved/foo/bar"); MappedField mappedField = new MappedFieldBuilder().withName("field").withType(EntityImplementingInterface.class) .withReferenceMapping("field", MyInterface.class, EntityImplementingInterface.class, "/foo/bar", LookupMode.Direct).create(); ReferenceHandler handler = new ReferenceHandler(session); Object retrieve = handler.retrieve(mappedField, adapter); verify(session).get(EntityImplementingInterface.class, "/resolved/foo/bar"); } }