package uk.ac.manchester.cs.owl.owlapi.concurrent; import static org.mockito.Matchers.any; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.semanticweb.owlapi.util.OWLAPIPreconditions.emptyOptional; import static org.semanticweb.owlapi.util.OWLAPIPreconditions.optional; import java.io.InputStream; import java.io.OutputStream; import java.io.StringBufferInputStream; import java.util.Collections; import java.util.List; import java.util.Set; 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.InOrder; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; import org.mockito.runners.MockitoJUnitRunner; import org.semanticweb.owlapi.formats.RDFXMLDocumentFormat; import org.semanticweb.owlapi.io.OWLOntologyDocumentSource; import org.semanticweb.owlapi.io.OWLOntologyDocumentTarget; import org.semanticweb.owlapi.io.OWLParserFactory; import org.semanticweb.owlapi.io.OWLStorer; import org.semanticweb.owlapi.io.OWLStorerFactory; import org.semanticweb.owlapi.model.AddAxiom; import org.semanticweb.owlapi.model.IRI; import org.semanticweb.owlapi.model.ImpendingOWLOntologyChangeListener; import org.semanticweb.owlapi.model.MissingImportListener; import org.semanticweb.owlapi.model.OWLAxiom; import org.semanticweb.owlapi.model.OWLDataFactory; import org.semanticweb.owlapi.model.OWLDocumentFormat; import org.semanticweb.owlapi.model.OWLDocumentFormatFactory; import org.semanticweb.owlapi.model.OWLImportsDeclaration; import org.semanticweb.owlapi.model.OWLMutableOntology; import org.semanticweb.owlapi.model.OWLOntology; import org.semanticweb.owlapi.model.OWLOntologyChange; import org.semanticweb.owlapi.model.OWLOntologyChangeBroadcastStrategy; import org.semanticweb.owlapi.model.OWLOntologyChangeListener; import org.semanticweb.owlapi.model.OWLOntologyChangeProgressListener; import org.semanticweb.owlapi.model.OWLOntologyChangesVetoedListener; import org.semanticweb.owlapi.model.OWLOntologyCreationException; import org.semanticweb.owlapi.model.OWLOntologyFactory; import org.semanticweb.owlapi.model.OWLOntologyID; import org.semanticweb.owlapi.model.OWLOntologyIRIMapper; import org.semanticweb.owlapi.model.OWLOntologyLoaderListener; import org.semanticweb.owlapi.model.OWLOntologyManager; import org.semanticweb.owlapi.model.OWLOntologyStorageException; import org.semanticweb.owlapi.model.OntologyConfigurator; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import uk.ac.manchester.cs.owl.owlapi.OWLImportsDeclarationImpl; import uk.ac.manchester.cs.owl.owlapi.OWLOntologyImpl; import uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl; /** * Matthew Horridge Stanford Center for Biomedical Informatics Research 13/04/15 */ @RunWith(MockitoJUnitRunner.class) @SuppressWarnings({"javadoc", "deprecation", "null"}) public class OWLOntologyManager_Concurrent_TestCase { private OWLOntologyManager manager; @Mock private Lock readLock, writeLock; @Mock private OWLDataFactory dataFactory; @Mock private ReadWriteLock readWriteLock; private OWLOntology ontology; @Before public void setUp() throws Exception { when(readWriteLock.readLock()).thenReturn(readLock); when(readWriteLock.writeLock()).thenReturn(writeLock); manager = new OWLOntologyManagerImpl(dataFactory, readWriteLock); mockAndAddOntologyFactory(); mockAndAddOntologyStorer(); IRI iri = IRI.create("http://owlapi/", "ont"); ontology = manager.createOntology(iri); manager.setOntologyDocumentIRI(ontology, iri); reset(readLock, writeLock, readWriteLock); } @SuppressWarnings("boxing") private void mockAndAddOntologyFactory() throws OWLOntologyCreationException { OWLOntologyFactory ontologyFactory = mock(OWLOntologyFactory.class); when(ontologyFactory.canCreateFromDocumentIRI(any(IRI.class))).thenReturn(Boolean.TRUE); when(ontologyFactory.canAttemptLoading(any(OWLOntologyDocumentSource.class))) .thenReturn(Boolean.TRUE); final OWLOntology owlOntology = new OWLOntologyImpl(manager, new OWLOntologyID()); when(ontologyFactory.createOWLOntology(any(OWLOntologyManager.class), any(OWLOntologyID.class), any(IRI.class), any(OWLOntologyFactory.OWLOntologyCreationHandler.class))) .thenAnswer(i -> notify(3, i, owlOntology)); when(ontologyFactory.loadOWLOntology(any(OWLOntologyManager.class), any(OWLOntologyDocumentSource.class), any(OWLOntologyFactory.OWLOntologyCreationHandler.class), any(OntologyConfigurator.class))).thenAnswer(i -> notify(2, i, owlOntology)); manager.setOntologyFactories(Collections.singleton(ontologyFactory)); } private static OWLOntology notify(int i, InvocationOnMock o, OWLOntology ont) { ((OWLOntologyFactory.OWLOntologyCreationHandler) o.getArguments()[i]).ontologyCreated(ont); return ont; } @SuppressWarnings("boxing") private void mockAndAddOntologyStorer() { OWLStorer storer = mock(OWLStorer.class); when(storer.canStoreOntology(any(OWLDocumentFormat.class))).thenReturn(Boolean.TRUE); OWLStorerFactory storerFactory = mock(OWLStorerFactory.class); when(storerFactory.createStorer()).thenReturn(storer); when(storerFactory.getFormatFactory()).thenReturn(mock(OWLDocumentFormatFactory.class)); manager.setOntologyStorers(Collections.singleton(storerFactory)); } @Test public void shouldCall_contains_with_readLock() { IRI arg0 = mockIRI(); manager.contains(arg0); verifyReadLock_LockUnlock(); } @Test public void shouldCall_contains_with_readLock_2() { OWLOntologyID arg0 = new OWLOntologyID(IRI.create("urn:test:", "ontology")); manager.contains(arg0); verifyReadLock_LockUnlock(); } @Test public void shouldCall_contains_with_no_readLock_onAnonymous() { // anonymous ontology ids are never contained, no need to engage locks OWLOntologyID arg0 = new OWLOntologyID(); manager.contains(arg0); verify(readLock, never()).lock(); verify(readLock, never()).unlock(); verify(writeLock, never()).lock(); verify(writeLock, never()).unlock(); } @Test public void shouldCall_contains_with_readLock_3() { manager.contains(ontology); verifyReadLock_LockUnlock(); } @Test public void shouldCall_getOntologies_with_readLock() { OWLAxiom arg0 = mock(OWLAxiom.class); manager.getOntologies(arg0); verifyReadLock_LockUnlock(); } @Test public void shouldCall_containsVersion_with_readLock() { IRI arg0 = mockIRI(); manager.containsVersion(arg0); verifyReadLock_LockUnlock(); } @Test public void shouldCall_getVersions_with_readLock() { IRI arg0 = mockIRI(); manager.getVersions(arg0); verifyReadLock_LockUnlock(); } @Test public void shouldCall_getOntologyIDsByVersion_with_readLock() { IRI arg0 = mockIRI(); manager.getOntologyIDsByVersion(arg0); verifyReadLock_LockUnlock(); } @Test public void shouldCall_getOntology_with_readLock() { OWLOntologyID arg0 = new OWLOntologyID(); manager.getOntology(arg0); verifyReadLock_LockUnlock(); } @Test public void shouldCall_getOntology_with_readLock_2() { IRI arg0 = mockIRI(); manager.getOntology(arg0); verifyReadLock_LockUnlock(); } private static IRI mockIRI() { return IRI.create("http://owlapi.sourceforge.net/", "stuff"); } @Test public void shouldCall_getImportedOntology_with_readLock() { OWLImportsDeclaration arg0 = new OWLImportsDeclarationImpl(IRI.create("http://owlapi/", "ont")); manager.getImportedOntology(arg0); verifyReadLock_LockUnlock(); } @Test public void shouldCall_getDirectImports_with_readLock() { manager.getDirectImports(ontology); verifyReadLock_LockUnlock(); } @Test public void shouldCall_getImports_with_readLock() { manager.getImports(ontology); verifyReadLock_LockUnlock(); } @Test public void shouldCall_getImportsClosure_with_readLock() { manager.getImportsClosure(ontology); verifyReadLock_LockUnlock(); } @Test public void shouldCall_getSortedImportsClosure_with_readLock() { manager.getSortedImportsClosure(ontology); verifyReadLock_LockUnlock(); } @Test public void shouldCall_createOntology_with_writeLock() throws OWLOntologyCreationException { IRI arg0 = mockIRI(); manager.createOntology(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_createOntology_with_writeLock_2() throws OWLOntologyCreationException { OWLOntologyID arg0 = new OWLOntologyID(); manager.createOntology(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_createOntology_with_writeLock_3() throws OWLOntologyCreationException { IRI arg0 = mockIRI(); Set<OWLOntology> arg1 = Collections.emptySet(); boolean arg2 = true; manager.createOntology(arg0, arg1, arg2); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_createOntology_with_writeLock_4() throws OWLOntologyCreationException { IRI arg0 = mockIRI(); Set<OWLOntology> arg1 = Sets.newConcurrentHashSet(); manager.createOntology(arg0, arg1); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_createOntology_with_writeLock_5() throws OWLOntologyCreationException { manager.createOntology(); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_createOntology_with_writeLock_6() throws OWLOntologyCreationException { Set<OWLAxiom> arg0 = Collections.singleton(mock(OWLAxiom.class)); manager.createOntology(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_createOntology_with_writeLock_7() throws OWLOntologyCreationException { Set<OWLAxiom> arg0 = Collections.emptySet(); IRI arg1 = mockIRI(); manager.createOntology(arg0, arg1); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_loadOntology_with_writeLock() throws OWLOntologyCreationException { IRI arg0 = mockIRI(); manager.loadOntology(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_loadOntologyFromOntologyDocument_with_writeLock() throws OWLOntologyCreationException { OWLOntologyDocumentSource arg0 = mock(OWLOntologyDocumentSource.class); when(arg0.getDocumentIRI()).thenReturn(IRI.create("http://owlapi/", "ontdoc")); OntologyConfigurator arg1 = mock(OntologyConfigurator.class); manager.loadOntologyFromOntologyDocument(arg0, arg1); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_loadOntologyFromOntologyDocument_with_writeLock_2() throws OWLOntologyCreationException { OWLOntologyDocumentSource arg0 = mock(OWLOntologyDocumentSource.class); when(arg0.getDocumentIRI()).thenReturn(IRI.create("http://owlapi/", "ontdoc")); manager.loadOntologyFromOntologyDocument(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_loadOntologyFromOntologyDocument_with_writeLock_3() throws OWLOntologyCreationException { InputStream arg0 = new StringBufferInputStream("some string"); manager.loadOntologyFromOntologyDocument(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_loadOntologyFromOntologyDocument_with_writeLock_4() throws OWLOntologyCreationException { OWLOntologyDocumentSource source = mock(OWLOntologyDocumentSource.class); when(source.getDocumentIRI()).thenReturn(IRI.create("http://owlapi/", "ontdoc")); manager.loadOntologyFromOntologyDocument(source); verifyWriteLock_LockUnlock(); } private void verifyWriteLock_LockUnlock() { InOrder inOrder = Mockito.inOrder(writeLock, writeLock); inOrder.verify(writeLock, atLeastOnce()).lock(); inOrder.verify(writeLock, atLeastOnce()).unlock(); } @Test public void shouldCall_loadOntologyFromOntologyDocument_with_writeLock_5() throws OWLOntologyCreationException { IRI arg0 = mockIRI(); manager.loadOntologyFromOntologyDocument(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_removeOntology_with_writeLock() { OWLOntologyID arg0 = mock(OWLOntologyID.class); manager.removeOntology(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_removeOntology_with_writeLock_2() { manager.removeOntology(ontology); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_getOntologyDocumentIRI_with_readLock() { manager.getOntologyDocumentIRI(ontology); verifyReadLock_LockUnlock(); } @Test public void shouldCall_setOntologyDocumentIRI_with_writeLock() { IRI arg1 = mockIRI(); manager.setOntologyDocumentIRI(ontology, arg1); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_getOntologyFormat_with_readLock() { manager.getOntologyFormat(ontology); verifyReadLock_LockUnlock(); } @Test public void shouldCall_setOntologyFormat_with_writeLock() { OWLDocumentFormat arg1 = mock(OWLDocumentFormat.class); manager.setOntologyFormat(ontology, arg1); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_saveOntology_with_writeLock() throws OWLOntologyStorageException { OWLDocumentFormat arg1 = mock(OWLDocumentFormat.class); IRI arg2 = mockIRI(); manager.saveOntology(ontology, arg1, arg2); verifyReadLock_LockUnlock(); } @Test public void shouldCall_saveOntology_with_readLock_2() throws OWLOntologyStorageException { OWLDocumentFormat arg1 = mock(OWLDocumentFormat.class); OutputStream arg2 = mock(OutputStream.class); manager.saveOntology(ontology, arg1, arg2); verifyReadLock_LockUnlock(); } @Test public void shouldCall_saveOntology_with_readLock_3() throws OWLOntologyStorageException { OWLOntologyDocumentTarget arg1 = mock(OWLOntologyDocumentTarget.class); manager.setOntologyFormat(ontology, new RDFXMLDocumentFormat()); verify(writeLock, atLeastOnce()).lock(); verify(writeLock, atLeastOnce()).unlock(); manager.saveOntology(ontology, arg1); InOrder inOrder = Mockito.inOrder(readLock, readLock); inOrder.verify(readLock, atLeastOnce()).lock(); inOrder.verify(readLock, atLeastOnce()).unlock(); } @Test public void shouldCall_saveOntology_with_readLock_4() throws OWLOntologyStorageException { OWLDocumentFormat arg1 = mock(OWLDocumentFormat.class); OWLOntologyDocumentTarget arg2 = mock(OWLOntologyDocumentTarget.class); manager.saveOntology(ontology, arg1, arg2); verifyReadLock_LockUnlock(); } @Test public void shouldCall_saveOntology_with_readLock_5() { manager.setOntologyFormat(ontology, new RDFXMLDocumentFormat()); verify(writeLock, atLeastOnce()).lock(); verify(writeLock, atLeastOnce()).unlock(); try { manager.saveOntology(ontology); } catch (@SuppressWarnings("unused") OWLOntologyStorageException e) { // no need to worry } InOrder inOrder = Mockito.inOrder(readLock, readLock); inOrder.verify(readLock, atLeastOnce()).lock(); inOrder.verify(readLock, atLeastOnce()).unlock(); } @Test public void shouldCall_saveOntology_with_readLock_6() throws OWLOntologyStorageException { IRI arg1 = mockIRI(); manager.setOntologyFormat(ontology, new RDFXMLDocumentFormat()); verify(writeLock, atLeastOnce()).lock(); verify(writeLock, atLeastOnce()).unlock(); manager.saveOntology(ontology, arg1); InOrder inOrder = Mockito.inOrder(readLock, readLock); inOrder.verify(readLock, atLeastOnce()).lock(); inOrder.verify(readLock, atLeastOnce()).unlock(); } @Test public void shouldCall_saveOntology_with_readLock_7() throws OWLOntologyStorageException { OutputStream arg1 = mock(OutputStream.class); manager.setOntologyFormat(ontology, new RDFXMLDocumentFormat()); verify(writeLock, atLeastOnce()).lock(); verify(writeLock, atLeastOnce()).unlock(); manager.saveOntology(ontology, arg1); InOrder inOrder = Mockito.inOrder(readLock, readLock); inOrder.verify(readLock, atLeastOnce()).lock(); inOrder.verify(readLock, atLeastOnce()).unlock(); } @Test public void shouldCall_saveOntology_with_readLock_8() { OWLDocumentFormat arg1 = mock(OWLDocumentFormat.class); try { manager.saveOntology(ontology, arg1); } catch (@SuppressWarnings("unused") OWLOntologyStorageException e) { // no need to worry } verifyReadLock_LockUnlock(); } @Test public void shouldCall_addIRIMapper_with_writeLock() { OWLOntologyIRIMapper arg0 = mock(OWLOntologyIRIMapper.class); manager.addIRIMapper(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_removeIRIMapper_with_writeLock() { OWLOntologyIRIMapper arg0 = mock(OWLOntologyIRIMapper.class); manager.removeIRIMapper(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_clearIRIMappers_with_writeLock() { manager.clearIRIMappers(); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_addOntologyStorer_with_writeLock() { OWLStorerFactory arg0 = mock(OWLStorerFactory.class); manager.addOntologyStorer(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_removeOntologyStorer_with_writeLock() { OWLStorerFactory arg0 = mock(OWLStorerFactory.class); manager.removeOntologyStorer(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_clearOntologyStorers_with_writeLock() { manager.clearOntologyStorers(); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_setIRIMappers_with_writeLock() { Set<OWLOntologyIRIMapper> arg0 = Sets.newHashSet(); manager.setIRIMappers(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_getIRIMappers_with_readLock() { manager.getIRIMappers().iterator(); verifyReadLock_LockUnlock(); } @Test public void shouldAddIRIMapper_with_writeLock() { manager.getIRIMappers().add(mock(OWLOntologyIRIMapper.class)); verifyWriteLock_LockUnlock(); } @Test public void shouldRemoveIRIMapper_with_writeLock() { manager.getIRIMappers().remove(mock(OWLOntologyIRIMapper.class)); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_setOntologyParsers_with_writeLock() { Set<OWLParserFactory> arg0 = Sets.newHashSet(); manager.setOntologyParsers(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_getOntologyParsers_with_readLock() { manager.getOntologyParsers().iterator(); verifyReadLock_LockUnlock(); } @Test public void shouldAddOntologyParser_with_writeLock() { manager.getOntologyParsers().add(mock(OWLParserFactory.class)); verifyWriteLock_LockUnlock(); } @Test public void shouldRemoveOntologyParser_with_writeLock() { manager.getOntologyParsers().remove(mock(OWLParserFactory.class)); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_setOntologyFactories_with_writeLock() { Set<OWLOntologyFactory> arg0 = Sets.newHashSet(); manager.setOntologyFactories(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_getOntologyFactories_with_readLock() { manager.getOntologyFactories().iterator(); verifyReadLock_LockUnlock(); } @Test public void shouldCall_setOntologyStorers_with_writeLock() { Set<OWLStorerFactory> arg0 = Sets.newHashSet(); manager.setOntologyStorers(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_getOntologyStorers_with_readLock() { manager.getOntologyStorers().iterator(); verifyReadLock_LockUnlock(); } @Test public void shouldCall_addOntologyChangeListener_with_writeLock() { OWLOntologyChangeListener arg0 = mock(OWLOntologyChangeListener.class); OWLOntologyChangeBroadcastStrategy arg1 = mock(OWLOntologyChangeBroadcastStrategy.class); manager.addOntologyChangeListener(arg0, arg1); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_addImpendingOntologyChangeListener_with_writeLock() { ImpendingOWLOntologyChangeListener arg0 = mock(ImpendingOWLOntologyChangeListener.class); manager.addImpendingOntologyChangeListener(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_removeImpendingOntologyChangeListener_with_writeLock() { ImpendingOWLOntologyChangeListener arg0 = mock(ImpendingOWLOntologyChangeListener.class); manager.removeImpendingOntologyChangeListener(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_addOntologyChangesVetoedListener_with_writeLock() { OWLOntologyChangesVetoedListener arg0 = mock(OWLOntologyChangesVetoedListener.class); manager.addOntologyChangesVetoedListener(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_removeOntologyChangesVetoedListener_with_writeLock() { OWLOntologyChangesVetoedListener arg0 = mock(OWLOntologyChangesVetoedListener.class); manager.removeOntologyChangesVetoedListener(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_setDefaultChangeBroadcastStrategy_with_writeLock() { OWLOntologyChangeBroadcastStrategy arg0 = mock(OWLOntologyChangeBroadcastStrategy.class); manager.setDefaultChangeBroadcastStrategy(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_makeLoadImportRequest_with_writeLock() { OWLImportsDeclaration arg0 = mock(OWLImportsDeclaration.class); when(arg0.getIRI()).thenReturn(IRI.create("http://owlapi/", "other")); OntologyConfigurator arg1 = mock(OntologyConfigurator.class); manager.makeLoadImportRequest(arg0, arg1); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_makeLoadImportRequest_with_writeLock_2() { OWLImportsDeclaration arg0 = new OWLImportsDeclarationImpl(IRI.create("http://owlapi/", "otheront")); manager.makeLoadImportRequest(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_addMissingImportListener_with_writeLock() { MissingImportListener arg0 = mock(MissingImportListener.class); manager.addMissingImportListener(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_removeMissingImportListener_with_writeLock() { MissingImportListener arg0 = mock(MissingImportListener.class); manager.removeMissingImportListener(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_addOntologyLoaderListener_with_writeLock() { OWLOntologyLoaderListener arg0 = mock(OWLOntologyLoaderListener.class); manager.addOntologyLoaderListener(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_removeOntologyLoaderListener_with_writeLock() { OWLOntologyLoaderListener arg0 = mock(OWLOntologyLoaderListener.class); manager.removeOntologyLoaderListener(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_addOntologyChangeProgessListener_with_writeLock() { OWLOntologyChangeProgressListener arg0 = mock(OWLOntologyChangeProgressListener.class); manager.addOntologyChangeProgessListener(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_removeOntologyChangeProgessListener_with_writeLock() { OWLOntologyChangeProgressListener arg0 = mock(OWLOntologyChangeProgressListener.class); manager.removeOntologyChangeProgessListener(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_getOntologies_with_readLock_2() { manager.getOntologies(); verifyReadLock_LockUnlock(); } @Test public void shouldCall_applyChanges_with_writeLock() { List<OWLOntologyChange> arg0 = Lists.newArrayList(); manager.applyChanges(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_applyChange_with_writeLock() { OWLAxiom ax = mock(OWLAxiom.class); OWLOntologyChange arg0 = new AddAxiom(ontology, ax); manager.applyChange(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_addAxioms_with_writeLock() { OWLOntology arg0 = mockOntology(); Set<OWLAxiom> axioms = Sets.newHashSet(mock(OWLAxiom.class)); manager.addAxioms(arg0, axioms); verifyWriteLock_LockUnlock(); } protected OWLMutableOntology mockOntology() { OWLMutableOntology mock = mock(OWLMutableOntology.class); when(mock.getOntologyID()).thenReturn( new OWLOntologyID(optional(IRI.create("urn:mock:", "ontology")), emptyOptional())); return mock; } @Test public void shouldCall_addAxiom_with_writeLock() { OWLOntology arg0 = mockOntology(); OWLAxiom arg1 = mock(OWLAxiom.class); manager.addAxiom(arg0, arg1); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_removeAxioms_with_writeLock() { Set<OWLAxiom> arg1 = Sets.newHashSet(); manager.removeAxioms(ontology, arg1); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_removeAxiom_with_writeLock() { OWLOntology arg0 = mockOntology(); OWLAxiom arg1 = mock(OWLAxiom.class); manager.removeAxiom(arg0, arg1); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_addOntologyChangeListener_with_writeLock_2() { OWLOntologyChangeListener arg0 = mock(OWLOntologyChangeListener.class); manager.addOntologyChangeListener(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_removeOntologyChangeListener_with_writeLock() { OWLOntologyChangeListener arg0 = mock(OWLOntologyChangeListener.class); manager.removeOntologyChangeListener(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_setOntologyWriterConfiguration_with_writeLock() { OntologyConfigurator arg0 = mock(OntologyConfigurator.class); manager.setOntologyConfigurator(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_setOntologyLoaderConfiguration_with_writeLock() { OntologyConfigurator arg0 = mock(OntologyConfigurator.class); manager.setOntologyConfigurator(arg0); verifyWriteLock_LockUnlock(); } @Test public void shouldCall_getOntologyLoaderConfiguration_with_readLock() { manager.getOntologyConfigurator(); verifyReadLock_LockUnlock(); } private void verifyReadLock_LockUnlock() { InOrder inOrder = Mockito.inOrder(readLock, readLock); inOrder.verify(readLock, atLeastOnce()).lock(); inOrder.verify(readLock, atLeastOnce()).unlock(); verify(writeLock, never()).lock(); verify(writeLock, never()).unlock(); } }