package uk.ac.manchester.cs.owl.owlapi.concurrent; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import org.semanticweb.owlapi.model.OWLOntology; import org.semanticweb.owlapi.model.OWLOntologyBuilder; import org.semanticweb.owlapi.model.OWLOntologyID; import org.semanticweb.owlapi.model.OWLOntologyManager; /** * Matthew Horridge Stanford Center for Biomedical Informatics Research 10/04/15 */ @RunWith(MockitoJUnitRunner.class) @SuppressWarnings({"javadoc", "null"}) public class ConcurrentOWLOntologyBuilder_TestCase { private ConcurrentOWLOntologyBuilder builder; @Mock private OWLOntologyBuilder delegateBuilder; @Mock private ReadWriteLock readWriteLock; @Mock private Lock readLock, writeLock; @Mock private OWLOntologyManager manager; @Mock private OWLOntologyID ontologyId; @Mock private OWLOntology ontology; @Before public void setUp() { when(delegateBuilder.createOWLOntology(manager, ontologyId)).thenReturn(ontology); when(ontology.getOntologyID()).thenReturn(ontologyId); when(readWriteLock.readLock()).thenReturn(readLock); when(readWriteLock.writeLock()).thenReturn(writeLock); builder = new ConcurrentOWLOntologyBuilder(delegateBuilder, readWriteLock); } @Test public void shouldCallDelegate() { builder.createOWLOntology(manager, ontologyId); verify(delegateBuilder, times(1)).createOWLOntology(manager, ontologyId); } @Test public void shouldCreateWrappedOntology() { OWLOntology concurrentOntology = builder.createOWLOntology(manager, ontologyId); assertThat(concurrentOntology, is(equalTo(ontology))); } }