You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ni...@apache.org on 2019/05/19 05:58:48 UTC
[kylin] branch master updated: Add tests for LookupExecutableUtil
and JobInfoConverter (#640)
This is an automated email from the ASF dual-hosted git repository.
nic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/master by this push:
new 79a2fc2 Add tests for LookupExecutableUtil and JobInfoConverter (#640)
79a2fc2 is described below
commit 79a2fc26af25a8c6c5bbd5200e714ad95bcfdf4f
Author: Michael Hausegger <ha...@googlemail.com>
AuthorDate: Sun May 19 07:58:41 2019 +0200
Add tests for LookupExecutableUtil and JobInfoConverter (#640)
* Add tests for LookupExecutableUtil and JobInfoConverter
---
.../mr/common/DefaultX509TrustManagerTest.java | 29 ++--
.../engine/mr/common/HadoopCmdOutputTest.java | 25 ++--
.../engine/mr/common/JobInfoConverterTest.java | 159 +++++++++++++++++++--
.../mr/steps/lookup/LookupExecutableUtilTest.java | 63 ++++++++
4 files changed, 240 insertions(+), 36 deletions(-)
diff --git a/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/DefaultX509TrustManagerTest.java b/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/DefaultX509TrustManagerTest.java
index 9a113db..30135b0 100644
--- a/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/DefaultX509TrustManagerTest.java
+++ b/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/DefaultX509TrustManagerTest.java
@@ -17,34 +17,33 @@
*/
package org.apache.kylin.engine.mr.common;
-import org.junit.Test;
+import static org.junit.Assert.assertTrue;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
-import static org.junit.Assert.assertTrue;
+import org.junit.Test;
/**
* Unit tests for class {@link DefaultX509TrustManager}.
*
* @see DefaultX509TrustManager
- *
*/
-public class DefaultX509TrustManagerTest{
+public class DefaultX509TrustManagerTest {
- @Test(expected = NullPointerException.class)
- public void testIsServerTrustedThrowsNullPointerException() throws KeyStoreException, NoSuchAlgorithmException {
- DefaultX509TrustManager defaultX509TrustManager = new DefaultX509TrustManager(null);
+ @Test(expected = NullPointerException.class)
+ public void testIsServerTrustedThrowsNullPointerException() throws KeyStoreException, NoSuchAlgorithmException {
+ DefaultX509TrustManager defaultX509TrustManager = new DefaultX509TrustManager(null);
- defaultX509TrustManager.isServerTrusted(new X509Certificate[1]);
- }
+ defaultX509TrustManager.isServerTrusted(new X509Certificate[1]);
+ }
- @Test
- public void testIsServerTrustedWithNull() throws KeyStoreException, NoSuchAlgorithmException {
- DefaultX509TrustManager defaultX509TrustManager = new DefaultX509TrustManager(null);
+ @Test
+ public void testIsServerTrustedWithNull() throws KeyStoreException, NoSuchAlgorithmException {
+ DefaultX509TrustManager defaultX509TrustManager = new DefaultX509TrustManager(null);
- assertTrue(defaultX509TrustManager.isServerTrusted(null));
- }
+ assertTrue(defaultX509TrustManager.isServerTrusted(null));
+ }
-}
\ No newline at end of file
+}
diff --git a/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/HadoopCmdOutputTest.java b/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/HadoopCmdOutputTest.java
index 6d8cbc6..6ac1225 100644
--- a/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/HadoopCmdOutputTest.java
+++ b/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/HadoopCmdOutputTest.java
@@ -17,29 +17,28 @@
*/
package org.apache.kylin.engine.mr.common;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.mapreduce.Job;
-import org.junit.Test;
+import static org.junit.Assert.assertNull;
import java.io.IOException;
-import static org.junit.Assert.assertNull;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.mapreduce.Job;
+import org.junit.Test;
/**
* Unit tests for class {@link HadoopCmdOutput}.
*
* @see HadoopCmdOutput
- *
*/
-public class HadoopCmdOutputTest{
+public class HadoopCmdOutputTest {
- @Test(expected = IllegalStateException.class)
- public void testGetMrJobIdThrowsIllegalStateException() throws IOException {
- Job job = Job.getInstance(new Configuration(false));
- HadoopCmdOutput hadoopCmdOutput = new HadoopCmdOutput(job, new StringBuilder());
+ @Test(expected = IllegalStateException.class)
+ public void testGetMrJobIdThrowsIllegalStateException() throws IOException {
+ Job job = Job.getInstance(new Configuration(false));
+ HadoopCmdOutput hadoopCmdOutput = new HadoopCmdOutput(job, new StringBuilder());
- assertNull(hadoopCmdOutput.getMrJobId());
- }
+ assertNull(hadoopCmdOutput.getMrJobId());
+ }
@Test
public void testUpdateJobCounterCatchesEveryInternalException() throws IOException {
@@ -49,4 +48,4 @@ public class HadoopCmdOutputTest{
hadoopCmdOutput.updateJobCounter();
}
-}
\ No newline at end of file
+}
diff --git a/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/JobInfoConverterTest.java b/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/JobInfoConverterTest.java
index 013ab0b..2201530 100644
--- a/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/JobInfoConverterTest.java
+++ b/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/JobInfoConverterTest.java
@@ -14,42 +14,49 @@
* 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.kylin.engine.mr.common;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
import java.util.Map;
+import java.util.TreeMap;
+import java.util.concurrent.ConcurrentHashMap;
+import com.google.common.collect.Maps;
import org.apache.kylin.engine.mr.CubingJob;
import org.apache.kylin.job.JobInstance;
+import org.apache.kylin.job.constant.JobStatusEnum;
import org.apache.kylin.job.constant.JobStepStatusEnum;
import org.apache.kylin.job.exception.ExecuteException;
+import org.apache.kylin.job.execution.CheckpointExecutable;
import org.apache.kylin.job.execution.ExecutableContext;
import org.apache.kylin.job.execution.ExecutableState;
import org.apache.kylin.job.execution.ExecuteResult;
import org.apache.kylin.job.execution.Output;
-import org.junit.Assert;
import org.junit.Test;
-import com.google.common.collect.Maps;
-
public class JobInfoConverterTest {
@Test
public void testParseToJobInstance() {
TestJob task = new TestJob();
- JobInstance instance = JobInfoConverter.parseToJobInstanceQuietly(task, Maps.<String, Output> newHashMap());
+ JobInstance instance = JobInfoConverter.parseToJobInstanceQuietly(task, Maps.newHashMap());
// no exception thrown is expected
- Assert.assertTrue(instance == null);
+ assertTrue(instance == null);
}
@Test
public void testParseToJobStep() {
TestJob task = new TestJob();
JobInstance.JobStep step = JobInfoConverter.parseToJobStep(task, 0, null);
- Assert.assertEquals(step.getStatus(), JobStepStatusEnum.PENDING);
+ assertEquals(step.getStatus(), JobStepStatusEnum.PENDING);
step = JobInfoConverter.parseToJobStep(task, 0, new TestOutput());
- Assert.assertEquals(step.getStatus(), JobStepStatusEnum.FINISHED);
+ assertEquals(step.getStatus(), JobStepStatusEnum.FINISHED);
}
public static class TestJob extends CubingJob {
@@ -87,4 +94,140 @@ public class JobInfoConverterTest {
return 0;
}
}
+
+ @Test
+ public void testParseToJobStepStatusReturnsJobStepStatusStopped() {
+ ExecutableState executableState = ExecutableState.STOPPED;
+ JobStepStatusEnum jobStepStatusEnum = JobInfoConverter.parseToJobStepStatus(executableState);
+
+ assertFalse(jobStepStatusEnum.isComplete());
+ assertFalse(jobStepStatusEnum.isRunable());
+ assertEquals(128, jobStepStatusEnum.getCode());
+ assertEquals(JobStepStatusEnum.STOPPED, jobStepStatusEnum);
+ }
+
+ @Test
+ public void testParseToJobStepStatusReturnsJobStepStatusFinished() {
+ ExecutableState executableState = ExecutableState.SUCCEED;
+ JobStepStatusEnum jobStepStatusEnum = JobInfoConverter.parseToJobStepStatus(executableState);
+
+ assertTrue(jobStepStatusEnum.isComplete());
+ assertEquals(4, jobStepStatusEnum.getCode());
+ assertFalse(jobStepStatusEnum.isRunable());
+ assertEquals(JobStepStatusEnum.FINISHED, jobStepStatusEnum);
+ }
+
+ @Test
+ public void testParseToJobStepStatusReturnsJobStepStatusDiscarded() {
+ ExecutableState executableState = ExecutableState.DISCARDED;
+ JobStepStatusEnum jobStepStatusEnum = JobInfoConverter.parseToJobStepStatus(executableState);
+
+ assertTrue(jobStepStatusEnum.isComplete());
+ assertFalse(jobStepStatusEnum.isRunable());
+ assertEquals(16, jobStepStatusEnum.getCode());
+ assertEquals(JobStepStatusEnum.DISCARDED, jobStepStatusEnum);
+ }
+
+ @Test
+ public void testParseToJobStepStatusReturnsJobStepStatusRunning() {
+ ExecutableState executableState = ExecutableState.RUNNING;
+ JobStepStatusEnum jobStepStatusEnum = JobInfoConverter.parseToJobStepStatus(executableState);
+
+ assertEquals(2, jobStepStatusEnum.getCode());
+ assertFalse(jobStepStatusEnum.isComplete());
+ assertFalse(jobStepStatusEnum.isRunable());
+ assertEquals(JobStepStatusEnum.RUNNING, jobStepStatusEnum);
+ }
+
+ @Test
+ public void testParseToJobStepStatusReturnsJobStepStatusError() {
+ ExecutableState executableState = ExecutableState.ERROR;
+ JobStepStatusEnum jobStepStatusEnum = JobInfoConverter.parseToJobStepStatus(executableState);
+
+ assertTrue(jobStepStatusEnum.isRunable());
+ assertTrue(jobStepStatusEnum.isComplete());
+ assertEquals(8, jobStepStatusEnum.getCode());
+ assertEquals(JobStepStatusEnum.ERROR, jobStepStatusEnum);
+ }
+
+ @Test
+ public void testParseToJobStepStatusReturnsJobStepStatusPending() {
+ ExecutableState executableState = ExecutableState.READY;
+ JobStepStatusEnum jobStepStatusEnum = JobInfoConverter.parseToJobStepStatus(executableState);
+
+ assertTrue(jobStepStatusEnum.isRunable());
+ assertEquals(1, jobStepStatusEnum.getCode());
+ assertEquals(JobStepStatusEnum.PENDING, jobStepStatusEnum);
+ }
+
+ @Test
+ public void testParseToJobStatusReturnsJobStatusStopped() {
+ ExecutableState executableState = ExecutableState.STOPPED;
+ JobStatusEnum jobStatusEnum = JobInfoConverter.parseToJobStatus(executableState);
+
+ assertEquals(32, jobStatusEnum.getCode());
+ assertEquals(JobStatusEnum.STOPPED, jobStatusEnum);
+ }
+
+ @Test
+ public void testParseToJobStatusReturnsJobStatusFinished() {
+ ExecutableState executableState = ExecutableState.SUCCEED;
+ JobStatusEnum jobStatusEnum = JobInfoConverter.parseToJobStatus(executableState);
+
+ assertEquals(4, jobStatusEnum.getCode());
+ assertEquals(JobStatusEnum.FINISHED, jobStatusEnum);
+ }
+
+ @Test
+ public void testParseToJobStatusReturnsJobStatusError() {
+ ExecutableState executableState = ExecutableState.ERROR;
+ JobStatusEnum jobStatusEnum = JobInfoConverter.parseToJobStatus(executableState);
+
+ assertEquals(8, jobStatusEnum.getCode());
+ assertEquals(JobStatusEnum.ERROR, jobStatusEnum);
+ }
+
+ @Test
+ public void testParseToJobStatusReturnsJobStatusRunning() {
+ ExecutableState executableState = ExecutableState.RUNNING;
+ JobStatusEnum jobStatusEnum = JobInfoConverter.parseToJobStatus(executableState);
+
+ assertEquals(2, jobStatusEnum.getCode());
+ assertEquals(JobStatusEnum.RUNNING, jobStatusEnum);
+ }
+
+ @Test
+ public void testParseToJobStatusReturnsJobStatusDiscarded() {
+ ExecutableState executableState = ExecutableState.DISCARDED;
+ JobStatusEnum jobStatusEnum = JobInfoConverter.parseToJobStatus(executableState);
+
+ assertEquals(16, jobStatusEnum.getCode());
+ assertEquals(JobStatusEnum.DISCARDED, jobStatusEnum);
+ }
+
+ @Test
+ public void testParseToJobStatusReturnsJobStatusPending() {
+ ExecutableState executableState = ExecutableState.READY;
+ JobStatusEnum jobStatusEnum = JobInfoConverter.parseToJobStatus(executableState);
+
+ assertEquals(1, jobStatusEnum.getCode());
+ assertEquals(JobStatusEnum.PENDING, jobStatusEnum);
+ }
+
+ @Test
+ public void testParseToJobInstanceQuietlyUsingNullCheckpointExecutable() {
+ TreeMap<String, Output> treeMap = new TreeMap<>();
+ JobInstance jobInstance = JobInfoConverter.parseToJobInstanceQuietly((CheckpointExecutable) null, treeMap);
+
+ assertNull(jobInstance);
+ }
+
+ @Test
+ public void testParseToJobInstanceQuietlyUsingNullCubingJob() {
+ ConcurrentHashMap<String, Output> concurrentHashMap = new ConcurrentHashMap<>();
+ JobInstance jobInstance = JobInfoConverter.parseToJobInstanceQuietly((CubingJob) null, concurrentHashMap);
+
+ assertNull(jobInstance);
+ }
+
}
diff --git a/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/lookup/LookupExecutableUtilTest.java b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/lookup/LookupExecutableUtilTest.java
new file mode 100644
index 0000000..7cae7b2
--- /dev/null
+++ b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/lookup/LookupExecutableUtilTest.java
@@ -0,0 +1,63 @@
+/*
+ * 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.kylin.engine.mr.steps.lookup;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Test;
+
+/**
+ * Unit tests for class {@link LookupExecutableUtil}.
+ *
+ * @see LookupExecutableUtil
+ */
+public class LookupExecutableUtilTest {
+
+ @Test
+ public void testSetAndGetLookupTableName() {
+ Map<String, String> map = new HashMap<>();
+ LookupExecutableUtil.setLookupTableName("bxI,*2 $r", map);
+
+ assertEquals("bxI,*2 $r", LookupExecutableUtil.getLookupTableName(map));
+ }
+
+ @Test
+ public void testSetAndGetSegments() {
+ Map<String, String> map = new HashMap<>();
+ List<String> segmentList = new ArrayList<>(0);
+ LookupExecutableUtil.setSegments(segmentList, map);
+
+ assertEquals(0, LookupExecutableUtil.getSegments(map).size());
+
+
+ map = new HashMap<>();
+ segmentList = new ArrayList<>(1);
+ segmentList.add("a a");
+ LookupExecutableUtil.setSegments(segmentList, map);
+
+ assertEquals(1, LookupExecutableUtil.getSegments(map).size());
+ assertEquals("[a a]", LookupExecutableUtil.getSegments(map).toString());
+ }
+
+}