package com.constellio.sdk.tests;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import com.constellio.app.extensions.AppLayerCollectionExtensions;
import com.constellio.app.extensions.AppLayerExtensions;
import com.constellio.app.extensions.AppLayerSystemExtensions;
import com.constellio.app.services.factories.AppLayerFactory;
import com.constellio.app.services.factories.ConstellioFactories;
import com.constellio.data.dao.services.factories.DataLayerFactory;
import com.constellio.model.services.factories.ModelLayerFactory;
import com.constellio.model.services.records.RecordServices;
import com.constellio.model.services.records.RecordServicesImpl;
public class MockedFactories {
ConstellioFactories constellioFactories;
AppLayerFactory appLayerFactory;
ModelLayerFactory modelLayerFactory;
DataLayerFactory dataLayerFactory;
AppLayerExtensions appExtensions;
AppLayerCollectionExtensions appCollectionExtensions;
AppLayerSystemExtensions appSystemExtensions;
RecordServicesImpl recordServices;
public MockedFactories() {
constellioFactories = mock(ConstellioFactories.class, "constellioFactories");
appLayerFactory = mock(AppLayerFactory.class, "appLayerFactory");
modelLayerFactory = mock(ModelLayerFactory.class, "modelLayerFactory");
dataLayerFactory = mock(DataLayerFactory.class, "dataLayerFactory");
appExtensions = mock(AppLayerExtensions.class, "appExtensions");
appCollectionExtensions = mock(AppLayerCollectionExtensions.class, "appCollectionExtensions");
appSystemExtensions = mock(AppLayerSystemExtensions.class, "appSystemExtensions");
when(constellioFactories.getAppLayerFactory()).thenReturn(appLayerFactory);
when(constellioFactories.getModelLayerFactory()).thenReturn(modelLayerFactory);
when(constellioFactories.getDataLayerFactory()).thenReturn(dataLayerFactory);
when(appLayerFactory.getModelLayerFactory()).thenReturn(modelLayerFactory);
when(modelLayerFactory.getDataLayerFactory()).thenReturn(dataLayerFactory);
when(appLayerFactory.getExtensions()).thenReturn(appExtensions);
when(appExtensions.getSystemWideExtensions()).thenReturn(appSystemExtensions);
when(appExtensions.forCollection("zeCollection")).thenReturn(appCollectionExtensions);
}
public ConstellioFactories getConstellioFactories() {
return constellioFactories;
}
public AppLayerFactory getAppLayerFactory() {
return appLayerFactory;
}
public ModelLayerFactory getModelLayerFactory() {
return modelLayerFactory;
}
public DataLayerFactory getDataLayerFactory() {
return dataLayerFactory;
}
public RecordServices getRecordServices() {
if (recordServices == null) {
recordServices = mock(RecordServicesImpl.class, "recordServices");
when(modelLayerFactory.newRecordServices()).thenReturn(recordServices);
}
return recordServices;
}
}