blob: 23f424fe0f661a1f88b025a6c1ff7c288f6c7edf [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.apache.shardingsphere.elasticjob.cloud.executor.facade;
import org.apache.shardingsphere.elasticjob.api.JobConfiguration;
import org.apache.shardingsphere.elasticjob.api.listener.ShardingContexts;
import org.apache.shardingsphere.elasticjob.cloud.facade.CloudJobFacade;
import org.apache.shardingsphere.elasticjob.dataflow.props.DataflowJobProperties;
import org.apache.shardingsphere.elasticjob.executor.JobFacade;
import org.apache.shardingsphere.elasticjob.infra.context.ExecutionType;
import org.apache.shardingsphere.elasticjob.infra.exception.JobExecutionEnvironmentException;
import org.apache.shardingsphere.elasticjob.tracing.JobEventBus;
import org.apache.shardingsphere.elasticjob.tracing.event.JobExecutionEvent;
import org.apache.shardingsphere.elasticjob.tracing.event.JobStatusTraceEvent.State;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import java.util.HashMap;
import java.util.Map;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)
public final class CloudJobFacadeTest {
private ShardingContexts shardingContexts;
@Mock
private JobEventBus eventBus;
private JobFacade jobFacade;
@Before
public void setUp() {
shardingContexts = getShardingContexts();
jobFacade = new CloudJobFacade(shardingContexts, getJobConfiguration(), eventBus);
}
private ShardingContexts getShardingContexts() {
Map<Integer, String> shardingItemParameters = new HashMap<>(1, 1);
shardingItemParameters.put(0, "A");
return new ShardingContexts("fake_task_id", "test_job", 3, "", shardingItemParameters);
}
private JobConfiguration getJobConfiguration() {
return JobConfiguration.newBuilder("test_job", 1).setProperty(DataflowJobProperties.STREAM_PROCESS_KEY, Boolean.FALSE.toString()).build();
}
@Test
public void assertCheckJobExecutionEnvironment() throws JobExecutionEnvironmentException {
jobFacade.checkJobExecutionEnvironment();
}
@Test
public void assertFailoverIfNecessary() {
jobFacade.failoverIfNecessary();
}
@Test
public void assertRegisterJobBegin() {
jobFacade.registerJobBegin(null);
}
@Test
public void assertRegisterJobCompleted() {
jobFacade.registerJobCompleted(null);
}
@Test
public void assertGetShardingContext() {
assertThat(jobFacade.getShardingContexts(), is(shardingContexts));
}
@Test
public void assertMisfireIfNecessary() {
jobFacade.misfireIfRunning(null);
}
@Test
public void assertClearMisfire() {
jobFacade.clearMisfire(null);
}
@Test
public void assertIsExecuteMisfired() {
assertFalse(jobFacade.isExecuteMisfired(null));
}
@Test
public void assertIsNeedSharding() {
assertFalse(jobFacade.isNeedSharding());
}
@Test
public void assertBeforeJobExecuted() {
jobFacade.beforeJobExecuted(null);
}
@Test
public void assertAfterJobExecuted() {
jobFacade.afterJobExecuted(null);
}
@Test
public void assertPostJobExecutionEvent() {
JobExecutionEvent jobExecutionEvent = new JobExecutionEvent("localhost", "127.0.0.1", "fake_task_id", "test_job", JobExecutionEvent.ExecutionSource.NORMAL_TRIGGER, 0);
jobFacade.postJobExecutionEvent(jobExecutionEvent);
verify(eventBus).post(jobExecutionEvent);
}
@Test
public void assertPostJobStatusTraceEvent() {
jobFacade.postJobStatusTraceEvent(String.format("%s@-@0@-@%s@-@fake_slave_id@-@0", "test_job", ExecutionType.READY), State.TASK_RUNNING, "message is empty.");
}
@Test
public void assertIsDagJob() {
assertFalse(jobFacade.isDagJob());
}
@Test
public void assertCheckDagStates() {
jobFacade.checkDagStates();
}
@Test
public void assertCheckDagJobDependencies() {
jobFacade.checkDagJobDependencies();
}
}