/**
* Licensed to The Apereo Foundation under one or more contributor license
* agreements. See the NOTICE file distributed with this work for additional
* information regarding copyright ownership.
*
*
* The Apereo Foundation licenses this file to you under the Educational
* Community 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://opensource.org/licenses/ecl2.txt
*
* 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.opencastproject.adminui.endpoint;
import org.opencastproject.composer.api.ComposerService;
import org.opencastproject.inspection.api.MediaInspectionService;
import org.opencastproject.job.api.Job;
import org.opencastproject.job.api.Job.Status;
import org.opencastproject.job.api.JobImpl;
import org.opencastproject.mediapackage.MediaPackage;
import org.opencastproject.mediapackage.MediaPackageBuilderImpl;
import org.opencastproject.serviceregistry.api.ServiceRegistry;
import org.opencastproject.util.DateTimeSupport;
import org.opencastproject.workflow.api.WorkflowDefinition;
import org.opencastproject.workflow.api.WorkflowDefinitionImpl;
import org.opencastproject.workflow.api.WorkflowInstanceImpl;
import org.opencastproject.workflow.api.WorkflowQuery;
import org.opencastproject.workflow.api.WorkflowService;
import org.opencastproject.workflow.api.WorkflowSetImpl;
import org.easymock.EasyMock;
import org.junit.Ignore;
import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import javax.ws.rs.Path;
@Path("/")
@Ignore
public class TestJobEndpoint extends JobEndpoint {
private ServiceRegistry serviceRegistry;
private WorkflowService workflowService;
private MediaPackageBuilderImpl mpBuilder;
public TestJobEndpoint() throws Exception {
mpBuilder = new MediaPackageBuilderImpl();
this.serviceRegistry = EasyMock.createNiceMock(ServiceRegistry.class);
this.workflowService = EasyMock.createNiceMock(WorkflowService.class);
Job job = new JobImpl(12L);
WorkflowDefinition wfD = new WorkflowDefinitionImpl();
wfD.setTitle("Full");
wfD.setId("full");
WorkflowSetImpl workflowSet = new WorkflowSetImpl();
WorkflowInstanceImpl workflowInstanceImpl1 = new WorkflowInstanceImpl(wfD,
loadMpFromResource("jobs_mediapackage1"), 2L, null, null, new HashMap<String, String>());
WorkflowInstanceImpl workflowInstanceImpl2 = new WorkflowInstanceImpl(wfD,
loadMpFromResource("jobs_mediapackage2"), 2L, null, null, new HashMap<String, String>());
WorkflowInstanceImpl workflowInstanceImpl3 = new WorkflowInstanceImpl(wfD,
loadMpFromResource("jobs_mediapackage3"), 2L, null, null, new HashMap<String, String>());
workflowInstanceImpl1.setId(1);
workflowInstanceImpl2.setId(2);
workflowInstanceImpl3.setId(3);
workflowSet.addItem(workflowInstanceImpl1);
workflowSet.addItem(workflowInstanceImpl2);
workflowSet.addItem(workflowInstanceImpl3);
workflowSet.setTotalCount(3);
List<Job> jobs = new ArrayList<Job>();
jobs.add(createJob(1, Status.RUNNING, ComposerService.JOB_TYPE, "test",
"2014-06-05T09:10:00Z", "2014-06-05T09:10:00Z", "testuser1", "host1"));
jobs.add(createJob(2, Status.RUNNING, WorkflowService.JOB_TYPE, "START_WORKFLOW",
"2014-06-05T09:16:00Z", "2014-06-05T09:16:00Z", "testuser1", "host3"));
jobs.add(createJob(3, Status.RUNNING, WorkflowService.JOB_TYPE, "RESUME",
"2014-06-05T09:11:11Z", "2014-06-05T09:11:11Z", "testuser2", "host3"));
jobs.add(createJob(4, Status.RUNNING, MediaInspectionService.JOB_TYPE, "Inspect",
"2014-06-05T09:16:00Z", "2014-06-05T09:16:00Z", "testuser1", "host2"));
jobs.add(createJob(5, Status.RUNNING, ComposerService.JOB_TYPE, "Encode",
"2014-06-05T09:05:00Z", "2014-06-05T09:05:00Z", "testuser3", "host1"));
EasyMock.expect(serviceRegistry.getJob(EasyMock.anyLong())).andReturn(job).anyTimes();
EasyMock.expect(workflowService.getWorkflowInstances(EasyMock.anyObject(WorkflowQuery.class)))
.andReturn(workflowSet).anyTimes();
EasyMock.expect(workflowService.countWorkflowInstances()).andReturn(workflowSet.size()).anyTimes();
EasyMock.expect(serviceRegistry.getActiveJobs()).andReturn(jobs).anyTimes();
EasyMock.replay(workflowService);
EasyMock.replay(serviceRegistry);
this.setServiceRegistry(serviceRegistry);
this.setWorkflowService(workflowService);
this.activate(null);
}
private Job createJob(int id, Status status, String jobType, String operation,
String created, String started, String creator, String hostname) throws Exception {
Date createdDate = new Date(DateTimeSupport.fromUTC(created));
Date startedDate = new Date(DateTimeSupport.fromUTC(started));
Job job = new JobImpl(id);
job.setStatus(status);
job.setJobType(jobType);
job.setOperation(operation);
job.setCreator(creator);
job.setProcessingHost(hostname);
job.setDateCreated(createdDate);
job.setDateStarted(startedDate);
return job;
}
private MediaPackage loadMpFromResource(String name) throws Exception {
URL test = JobEndpointTest.class.getResource("/" + name + ".xml");
URI publishedMediaPackageURI = test.toURI();
return mpBuilder.loadFromXml(publishedMediaPackageURI.toURL().openStream());
}
}