/* Copyright 2012 Google, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.arbeitspferde.groningen.executor;
import org.arbeitspferde.groningen.PipelineStageInfo;
import org.arbeitspferde.groningen.PipelineSynchronizer;
import org.arbeitspferde.groningen.common.ClockedExperimentDbTestCaseBase;
import org.arbeitspferde.groningen.common.SubjectSettingsFileManager;
import org.arbeitspferde.groningen.config.ConfigManager;
import org.arbeitspferde.groningen.config.GroningenConfig;
import org.arbeitspferde.groningen.config.StubConfigManager;
import org.arbeitspferde.groningen.externalprocess.ProcessInvoker;
import org.arbeitspferde.groningen.extractor.CollectionLogAddressor;
import org.arbeitspferde.groningen.subject.HealthQuerier;
import org.arbeitspferde.groningen.subject.SubjectInterrogator;
import org.arbeitspferde.groningen.subject.SubjectManipulator;
import org.arbeitspferde.groningen.subject.open.NullServingAddressGenerator;
import org.arbeitspferde.groningen.utility.FileFactory;
import org.arbeitspferde.groningen.utility.MetricExporter;
import org.easymock.EasyMock;
/**
* The test for {@link Executor}.
*/
public class ExecutorTest extends ClockedExperimentDbTestCaseBase {
/** The object instance we are testing. */
private Executor executor;
private ProcessInvoker mockInvoker;
private HealthQuerier mockHealthQuerier;
private SubjectInterrogator mockSubjectInterrogator;
private PipelineSynchronizer mockPipelineSynchronizer;
private SubjectSettingsFileManager mockSubjectSettingsFileManager;
private MetricExporter mockMetricExporter;
private FileFactory mockFileFactory;
@Override
protected void setUp() throws Exception {
super.setUp();
mockInvoker = EasyMock.createMock(ProcessInvoker.class);
EasyMock.replay(mockInvoker);
mockHealthQuerier = EasyMock.createMock(HealthQuerier.class);
EasyMock.replay(mockHealthQuerier);
mockSubjectInterrogator = EasyMock.createMock(SubjectInterrogator.class);
EasyMock.replay(mockSubjectInterrogator);
mockPipelineSynchronizer = EasyMock.createMock(PipelineSynchronizer.class);
EasyMock.replay(mockPipelineSynchronizer);
mockSubjectSettingsFileManager = EasyMock.createMock(SubjectSettingsFileManager.class);
EasyMock.replay(mockSubjectSettingsFileManager);
mockMetricExporter = EasyMock.createMock(MetricExporter.class);
EasyMock.replay(mockMetricExporter);
mockFileFactory = EasyMock.createMock(FileFactory.class);
EasyMock.replay(mockFileFactory);
final SubjectManipulator mockManipulator = EasyMock.createNiceMock(SubjectManipulator.class);
EasyMock.replay(mockManipulator);
final CollectionLogAddressor mockCollectionLogAddressor =
EasyMock.createNiceMock(CollectionLogAddressor.class);
EasyMock.replay(mockCollectionLogAddressor);
final PipelineStageInfo pipelineStageInfo = new PipelineStageInfo();
executor = new Executor(clock, monitor, experimentDb, mockManipulator, mockHealthQuerier,
mockSubjectInterrogator, mockPipelineSynchronizer, mockSubjectSettingsFileManager,
mockMetricExporter, mockFileFactory, new NullServingAddressGenerator(),
mockCollectionLogAddressor, pipelineStageInfo);
}
/** Check that profiledRun works without exception. */
public void testProfiledRun() throws Exception {
ConfigManager cm = new StubConfigManager();
GroningenConfig config = cm.queryConfig();
executor.profiledRun(config);
}
/** TODO(team): Implement more tests as the Executor is implemented */
}