ernesto logo
Torna al Magazine
Collaudo impianti antincendio: come trovare ditte di antincendio
consigli
Collaudo impianti antincendio: come trovare ditte di antincendio

Come Trovare Ditte di Antincendio per il Collaudo degli Impianti Antincendio

Collaudo degli Impianti Antincendio: Come Trovare le Ditte Specializzate.

Scopri come trovare le migliori ditte di antincendio per il collaudo degli impianti antincendio. In questo articolo, esploreremo strategie efficaci e suggerimenti utili per garantire la sicurezza nella tua struttura, ottimizzando il processo di selezione dei professionisti del settore. Non perdere l'opportunità di proteggere il tuo ambiente!

Trova professionisti vicino a te

Trova professionisti
/** * Copyright (C) 2020 Czech Technical University in Prague * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any * later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package cz.cvut.kbss.jopa.sessions; import cz.cvut.kbss.jopa.environment.OWLClassA; import cz.cvut.kbss.jopa.environment.OWLClassV; import cz.cvut.kbss.jopa.environment.utils.Generators; import cz.cvut.kbss.jopa.model.EntityManagerFactory; import cz.cvut.kbss.jopa.model.EntityManagerFactoryProperties; import cz.cvut.kbss.jopa.model.JOPAPersistenceProperties; import cz.cvut.kbss.jopa.model.descriptors.Descriptor; import cz.cvut.kbss.jopa.model.metamodel.EntityType; import cz.cvut.kbss.jopa.sessions.cache.CacheManager; import cz.cvut.kbss.jopa.sessions.cache.TransactionalCacheManager; import cz.cvut.kbss.jopa.sessions.change.ChangeRecorder; import cz.cvut.kbss.jopa.sessions.change.ChangeSet; import cz.cvut.kbss.jopa.sessions.change.ChangeSetItem; import cz.cvut.kbss.jopa.sessions.connector.PersistenceConnector; import cz.cvut.kbss.jopa.sessions.connector.UnitOfWorkPersistenceConnector; import cz.cvut.kbss.ontodriver.descriptor.AxiomDescriptor; import cz.cvut.kbss.ontodriver.descriptor.ListValueDescriptor; import cz.cvut.kbss.ontodriver.descriptor.ReferencedListValueDescriptor; import cz.cvut.kbss.ontodriver.descriptor.SimpleListValueDescriptor; import cz.cvut.kbss.ontodriver.model.Assertion; import cz.cvut.kbss.ontodriver.model.Axiom; import cz.cvut.kbss.ontodriver.model.NamedResource; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.net.URI; import java.util.Collections; import java.util.HashMap; import java.util.Map; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; public class UnitOfWorkTest { private static final URI CONTEXT = URI.create("http://context.org/"); private UnitOfWork unitOfWork; private EntityManagerFactory emf; @Mock private PersistenceConnector connectorMock; @Mock private TransactionalCacheManager transactionalCacheManagerMock; @Mock private CacheManager cacheManagerMock; private Descriptor descriptor; @BeforeEach public void setUp() throws Exception { MockitoAnnotations.initMocks(this); final Map props = new HashMap<>(); props.put(JOPAPersistenceProperties.ONTOLOGY_PHYSICAL_URI_KEY, Generators.generateUri().toString()); this.emf = new EntityManagerFactoryImpl(props); this.unitOfWork = new UnitOfWork(emf, connectorMock, transactionalCacheManagerMock); this.descriptor = new Descriptor(CONTEXT); } @Test public void changeRecorderIsCreatedOnFirstRequest() { assertNull(unitOfWork.getChangeRecorder()); final ChangeRecorder recorder = unitOfWork.getChangeRecorder(); assertNotNull(recorder); assertSame(recorder, unitOfWork.getChangeRecorder()); } @Test public void changeRecorderIsResetOnCommit() { unitOfWork.getChangeRecorder(); unitOfWork.commit(); assertNull(unitOfWork.getChangeRecorder()); } @Test public void persistenceConnectorIsCreatedOnFirstRequest() { assertNull(unitOfWork.getPersistenceConnector()); final PersistenceConnector connector = unitOfWork.getPersistenceConnector(); assertNotNull(connector); assertTrue(connector instanceof UnitOfWorkPersistenceConnector); assertSame(connector, unitOfWork.getPersistenceConnector()); } @Test public void persistenceConnectorIsResetOnCommit() { unitOfWork.getPersistenceConnector(); unitOfWork.commit(); assertNull(unitOfWork.getPersistenceConnector()); } @Test public void cacheManagerIsCreatedOnFirstRequest() { assertNull(unitOfWork.getCacheManager()); final CacheManager cacheManager = unitOfWork.getCacheManager(); assertNotNull(cacheManager); assertSame(cacheManager, unitOfWork.getCacheManager()); } @Test public void cacheManagerIsResetOnCommit() { unitOfWork.getCacheManager(); unitOfWork.commit(); assertNull(unitOfWork.getCacheManager()); } @Test public void transactionalCacheManagerIsCreatedOnFirstRequest() { assertSame(transactionalCacheManagerMock, unitOfWork.getTransactionalCacheManager()); } @Test public void transactionalCacheManagerIsNotResetOnCommit() { unitOfWork.commit(); assertSame(transactionalCacheManagerMock, unitOfWork.getTransactionalCacheManager()); } @Test public void commitSynchronizesChangeSetToStorage() { final ChangeRecorder recorder = unitOfWork.getChangeRecorder(); final ChangeSet changes = recorder.getChangeSet(); final Axiom axiom = new Axiom<>(Assertion.createClassAssertion(false), new NamedResource(Generators.createIndividualIdentifier())); changes.add(ChangeSetItem.create(axiom, ChangeSetItem.ChangeType.CREATE)); unitOfWork.commit(); verify(connectorMock).persistChanges(changes); } @Test public void commitSynchronizesChangeSetToStorageWithSpecifiedContext() { final ChangeRecorder recorder = unitOfWork.getChangeRecorder(); final ChangeSet changes = recorder.getChangeSet(); final Axiom axiom = new Axiom<>(Assertion.createClassAssertion(false), new NamedResource(Generators.createIndividualIdentifier())); changes.add(ChangeSetItem.create(axiom, ChangeSetItem.ChangeType.CREATE, descriptor)); unitOfWork.commit(); verify(connectorMock).persistChanges(changes); } @Test public void commitCleansChangedObjects() { final ChangeRecorder recorder = unitOfWork.getChangeRecorder(); final ChangeSet changes = recorder.getChangeSet(); final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); final Axiom axiom = new Axiom<>(Assertion.createClassAssertion(false), subject); changes.add(ChangeSetItem.create(axiom, ChangeSetItem.ChangeType.CREATE)); unitOfWork.commit(); assertFalse(changes.contains(axiom)); } @Test public void commitClearsChangeRecorder() { final ChangeRecorder recorder = unitOfWork.getChangeRecorder(); final ChangeSet changes = recorder.getChangeSet(); final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); final Axiom axiom = new Axiom<>(Assertion.createClassAssertion(false), subject); changes.add(ChangeSetItem.create(axiom, ChangeSetItem.ChangeType.CREATE)); unitOfWork.commit(); assertTrue(recorder.getChangeSet().isEmpty()); } @Test public void rollbackCleansChangedObjects() { final ChangeRecorder recorder = unitOfWork.getChangeRecorder(); final ChangeSet changes = recorder.getChangeSet(); final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); final Axiom axiom = new Axiom<>(Assertion.createClassAssertion(false), subject); changes.add(ChangeSetItem.create(axiom, ChangeSetItem.ChangeType.CREATE)); unitOfWork.rollback(); assertFalse(changes.contains(axiom)); } @Test public void rollbackClearsChangeRecorder() { final ChangeRecorder recorder = unitOfWork.getChangeRecorder(); final ChangeSet changes = recorder.getChangeSet(); final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); final Axiom axiom = new Axiom<>(Assertion.createClassAssertion(false), subject); changes.add(ChangeSetItem.create(axiom, ChangeSetItem.ChangeType.CREATE)); unitOfWork.rollback(); assertTrue(recorder.getChangeSet().isEmpty()); } @Test public void rollbackRefreshesCacheForReferencedObjects() { final ChangeRecorder recorder = unitOfWork.getChangeRecorder(); final ChangeSet changes = recorder.getChangeSet(); final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); final Axiom axiom = new Axiom<>(Assertion.createClassAssertion(false), subject); changes.add(ChangeSetItem.create(axiom, ChangeSetItem.ChangeType.CREATE)); unitOfWork.rollback(); verify(transactionalCacheManagerMock).refresh(Collections.singleton(subject)); } @Test public void commitRefreshesCacheForReferencedObjects() { final ChangeRecorder recorder = unitOfWork.getChangeRecorder(); final ChangeSet changes = recorder.getChangeSet(); final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); final Axiom axiom = new Axiom<>(Assertion.createClassAssertion(false), subject); changes.add(ChangeSetItem.create(axiom, ChangeSetItem.ChangeType.CREATE)); unitOfWork.commit(); verify(transactionalCacheManagerMock).refresh(Collections.singleton(subject)); } @Test public void commitRefreshesCacheForReferencedObjectsInListValueChange() { final ChangeRecorder recorder = unitOfWork.getChangeRecorder(); final ChangeSet changes = recorder.getChangeSet(); final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); final AxiomDescriptor descriptor = new AxiomDescriptor(subject); final ReferencedListValueDescriptor listDescriptor = new ReferencedListValueDescriptor(descriptor, Assertion.createObjectPropertyAssertion(false), new NamedResource(Generators.createIndividualIdentifier())); final Axiom axiom = new Axiom<>(listDescriptor, Collections.singleton(new NamedResource(Generators.createIndividualIdentifier()))); changes.add(ChangeSetItem.create(axiom, ChangeSetItem.ChangeType.ADD)); unitOfWork.commit(); verify(transactionalCacheManagerMock).refresh(Collections.singleton(subject)); } @Test public void commitDoesNotRefreshCacheForSimpleListValueChange() { final ChangeRecorder recorder = unitOfWork.getChangeRecorder(); final ChangeSet changes = recorder.getChangeSet(); final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); final AxiomDescriptor descriptor = new AxiomDescriptor(subject); final SimpleListValueDescriptor listDescriptor = new SimpleListValueDescriptor(descriptor, Assertion.createDataPropertyAssertion(false)); final Axiom axiom = new Axiom<>(listDescriptor, Collections.singleton("value")); changes.add(ChangeSetItem.create(axiom, ChangeSetItem.ChangeType.ADD)); unitOfWork.commit(); verify(transactionalCacheManagerMock, never()).refresh(any()); } @Test public void resolveObjectForRefreshingCacheRetrievesObjectFromCacheManager() { final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); final OWLClassA object = new OWLClassA(); when(cacheManagerMock.get(subject)).thenReturn(object); unitOfWork.resolveObjectForRefreshingCache(subject); verify(cacheManagerMock).get(subject); } @Test public void resolveObjectForRefreshingCacheRetrievesObjectFromPersistenceConnectorIfNotInCache() { final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); when(cacheManagerMock.get(subject)).thenReturn(null); unitOfWork.resolveObjectForRefreshingCache(subject); verify(connectorMock).find(any(EntityType.class), eq(subject)); } @Test public void resolveObjectForRefreshingCacheRetrievesObjectWithSpecifiedContext() { final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); when(cacheManagerMock.get(subject)).thenReturn(null); unitOfWork.resolveObjectForRefreshingCache(subject, descriptor); verify(connectorMock).find(any(EntityType.class), eq(subject), eq(descriptor)); } @Test public void resolveObjectForRefreshingCacheRetrievesObjectWithDefaultContextIfDescriptorIsNull() { final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); when(cacheManagerMock.get(subject)).thenReturn(null); final Descriptor defaultDescriptor = emf .getEntityManagerFactoryProperties() .getProperty(EntityManagerFactoryProperties.DEFAULT_LOAD_DESCRIPTOR); unitOfWork.resolveObjectForRefreshingCache(subject, null); verify(connectorMock).find(any(EntityType.class), eq(subject), eq(defaultDescriptor)); } @Test public void resolveObjectForRefreshingCacheReturnsCachedObjectIfAvailable() { final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); final OWLClassA object = new OWLClassA(); when(cacheManagerMock.get(subject)).thenReturn(object); assertSame(object, unitOfWork.resolveObjectForRefreshingCache(subject)); } @Test public void resolveObjectForRefreshingCacheReturnsObjectFromPersistenceIfNotInCache() { final NamedResource subject = new NamedResource(Generators.createIndividualIdentifier()); when(cacheManagerMock.get(subject)).thenReturn(null); final OWLClassV object = new OWLClassV(); when(connectorMock.find(any(EntityType.class), eq(subject))).thenReturn(object); assertSame(object, unitOfWork.resolveObjectForRefreshingCache(subject)); } }
Ultimo aggiornamento
30 Mar 2025
Davide Moretti
Davide Moretti

Scrive articoli informativi per semplificare la scelta di servizi professionali e comprendere meglio i costi.

Articoli consigliati
Come Trovare Ditte di Antincendio per il Collaudo degli Impianti Antincendio
consigli
Come Trovare Ditte di Antincendio per il Collaudo degli Impianti Antincendio
Come Trovare Ditte per la Progettazione di Impianti Antincendio
consigli
Come Trovare Ditte per la Progettazione di Impianti Antincendio
Come Trovare Tecnici Specializzati nella Riconversione di Impianti Antincendio.
consigli
Come Trovare Tecnici Specializzati nella Riconversione di Impianti Antincendio.
Come Trovare Esperti Antincendio per la Consulenza Antincendio
consigli
Come Trovare Esperti Antincendio per la Consulenza Antincendio
La sicurezza al primo posto: ditte di antincendio.
consigli
La sicurezza al primo posto: ditte di antincendio.
Come Trovare un Servizio di Vigilanza Antincendio
consigli
Come Trovare un Servizio di Vigilanza Antincendio
Come Trovare Tecnici per i Servizi di Protezione Antincendio.
consigli
Come Trovare Tecnici per i Servizi di Protezione Antincendio.
Guida Completa al Collaudo degli Impianti Antincendio
fai da te
Guida Completa al Collaudo degli Impianti Antincendio
Garantisci la Sicurezza Antincendio della Tua Casa o Attività con i Servizi di Eccellenza dei Tecnici Specializzati.
casa
Garantisci la Sicurezza Antincendio della Tua Casa o Attività con i Servizi di Eccellenza dei Tecnici Specializzati.
Sicurezza antincendio e sostenibilità
sicurezza,impianti,sostenibilità
Sicurezza antincendio e sostenibilità
Trovare un Tecnico di Impianti Antincendio su Ernesto.it - Il Sito per Cercare i Professionisti Migliori.
guida
Trovare un Tecnico di Impianti Antincendio su Ernesto.it - Il Sito per Cercare i Professionisti Migliori.
Garantire Sicurezza con il Collaudo Antincendio
sicurezza,antincendio,collaudo
Garantire Sicurezza con il Collaudo Antincendio
Come trovare una ditta di traslochi: consigli per chi deve traslocare.
consigli
Come trovare una ditta di traslochi: consigli per chi deve traslocare.
Impianti Antincendio: Rischi da Valutare
sicurezza,impianti,antincendio
Impianti Antincendio: Rischi da Valutare
Sicurezza e accessibilità antincendio
sicurezza,accessibilità,impianti antincendio
Sicurezza e accessibilità antincendio
Investire nella sicurezza antincendio
sicurezza,impianti,gestione
Investire nella sicurezza antincendio
Sicurezza negli impianti antincendio
impianti antincendio,sicurezza,prevenzione
Sicurezza negli impianti antincendio
Riconversioni Impianto Antincendio e Sicurezza
sicurezza,impianti antincendio,riconversioni
Riconversioni Impianto Antincendio e Sicurezza
Come Trovare un'Azienda di Riparazione Skimmer per Piscine.
consigli
Come Trovare un'Azienda di Riparazione Skimmer per Piscine.
Come Trovare Ditte per lo Smontaggio e il Trasloco di Mobili
consigli
Come Trovare Ditte per lo Smontaggio e il Trasloco di Mobili