You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@griffin.apache.org by gu...@apache.org on 2017/10/11 03:21:18 UTC
incubator-griffin git commit: refactor unit test
Repository: incubator-griffin
Updated Branches:
refs/heads/master 417c931f2 -> 460e2fd72
refactor unit test
Author: Lionel Liu <bh...@163.com>
Author: ahutsunshine <ah...@gmail.com>
Author: Yao <de...@ebay.com>
Closes #129 from ahutsunshine/master.
Project: http://git-wip-us.apache.org/repos/asf/incubator-griffin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-griffin/commit/460e2fd7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-griffin/tree/460e2fd7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-griffin/diff/460e2fd7
Branch: refs/heads/master
Commit: 460e2fd7283f7e3e3953b63d536359be5c9deb51
Parents: 417c931
Author: Lionel Liu <bh...@163.com>
Authored: Wed Oct 11 11:21:08 2017 +0800
Committer: Lionel Liu <bh...@163.com>
Committed: Wed Oct 11 11:21:08 2017 +0800
----------------------------------------------------------------------
.../apache/griffin/core/job/JobServiceImpl.java | 26 ++-
.../core/measure/MeasureServiceImpl.java | 15 +-
.../core/measure/repo/DataSourceRepo.java | 26 +++
.../griffin/core/measure/repo/RuleRepo.java | 26 +++
.../griffin/core/job/JobControllerTest.java | 38 +++-
.../griffin/core/job/JobServiceImplTest.java | 175 +++++++++++++------
.../core/measure/MeasureControllerTest.java | 99 +++++++----
.../griffin/core/measure/MeasureRepoTest.java | 106 -----------
.../core/measure/MeasureServiceImplTest.java | 68 ++++---
.../hive/HiveMetaStoreServiceImplTest.java | 45 +++--
.../griffin/core/util/GriffinUtilTest.java | 47 ++---
11 files changed, 396 insertions(+), 275 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/460e2fd7/service/src/main/java/org/apache/griffin/core/job/JobServiceImpl.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/job/JobServiceImpl.java b/service/src/main/java/org/apache/griffin/core/job/JobServiceImpl.java
index 5be3f8d..a31ed03 100644
--- a/service/src/main/java/org/apache/griffin/core/job/JobServiceImpl.java
+++ b/service/src/main/java/org/apache/griffin/core/job/JobServiceImpl.java
@@ -208,7 +208,7 @@ public class JobServiceImpl implements JobService {
Scheduler scheduler = factory.getObject();
scheduler.pauseJob(new JobKey(name, group));
return GriffinOperationMessage.PAUSE_JOB_SUCCESS;
- } catch (SchedulerException e) {
+ } catch (SchedulerException | NullPointerException e) {
LOGGER.error("{} {}", GriffinOperationMessage.PAUSE_JOB_FAIL, e.getMessage());
return GriffinOperationMessage.PAUSE_JOB_FAIL;
}
@@ -221,7 +221,7 @@ public class JobServiceImpl implements JobService {
jobDetail.getJobDataMap().putAsString("deleted", true);
scheduler.addJob(jobDetail, true);
return GriffinOperationMessage.SET_JOB_DELETED_STATUS_SUCCESS;
- } catch (SchedulerException e) {
+ } catch (SchedulerException | NullPointerException e) {
LOGGER.error("{} {}", GriffinOperationMessage.PAUSE_JOB_FAIL, e.getMessage());
return GriffinOperationMessage.SET_JOB_DELETED_STATUS_FAIL;
}
@@ -253,21 +253,17 @@ public class JobServiceImpl implements JobService {
*
* @param measure
*/
- public void deleteJobsRelateToMeasure(Measure measure) {
+ //TODO
+ public void deleteJobsRelateToMeasure(Measure measure) throws SchedulerException {
Scheduler scheduler = factory.getObject();
- try {
- for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.anyGroup())) {//get all jobs
- JobDetail jobDetail = scheduler.getJobDetail(jobKey);
- JobDataMap jobDataMap = jobDetail.getJobDataMap();
- if (jobDataMap.getString("measureId").equals(measure.getId().toString())) {
- //select jobs related to measureId,
- deleteJob(jobKey.getGroup(), jobKey.getName());
- LOGGER.info("{} {} is paused and logically deleted.", jobKey.getGroup(), jobKey.getName());
- }
+ for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.anyGroup())) {//get all jobs
+ JobDetail jobDetail = scheduler.getJobDetail(jobKey);
+ JobDataMap jobDataMap = jobDetail.getJobDataMap();
+ if (jobDataMap.getString("measureId").equals(measure.getId().toString())) {
+ //select jobs related to measureId,
+ deleteJob(jobKey.getGroup(), jobKey.getName());
+ LOGGER.info("{} {} is paused and logically deleted.", jobKey.getGroup(), jobKey.getName());
}
- } catch (SchedulerException e) {
- LOGGER.error("Fail to stop jobs related to measure id: {} name: {}", measure.getId(), measure.getName());
- LOGGER.error("Fail to stop jobs related to measure id: {} name: {}", measure.getId(), measure.getName());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/460e2fd7/service/src/main/java/org/apache/griffin/core/measure/MeasureServiceImpl.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/MeasureServiceImpl.java b/service/src/main/java/org/apache/griffin/core/measure/MeasureServiceImpl.java
index 021af17..dd97336 100644
--- a/service/src/main/java/org/apache/griffin/core/measure/MeasureServiceImpl.java
+++ b/service/src/main/java/org/apache/griffin/core/measure/MeasureServiceImpl.java
@@ -24,6 +24,7 @@ import org.apache.griffin.core.job.JobServiceImpl;
import org.apache.griffin.core.measure.entity.Measure;
import org.apache.griffin.core.measure.repo.MeasureRepo;
import org.apache.griffin.core.util.GriffinOperationMessage;
+import org.quartz.SchedulerException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -60,11 +61,17 @@ public class MeasureServiceImpl implements MeasureService {
if (!measureRepo.exists(measureId)) {
return GriffinOperationMessage.RESOURCE_NOT_FOUND;
} else {
- //pause all jobs related to the measure
Measure measure = measureRepo.findOne(measureId);
- jobService.deleteJobsRelateToMeasure(measure);
- measure.setDeleted(true);
- measureRepo.save(measure);
+ try{
+ //pause all jobs related to the measure
+ jobService.deleteJobsRelateToMeasure(measure);
+ measure.setDeleted(true);
+ measureRepo.save(measure);
+ }catch (SchedulerException e){
+ LOGGER.error("Delete measure id: {} name: {} failure. {}", measure.getId(), measure.getName(),e.getMessage());
+ return GriffinOperationMessage.DELETE_MEASURE_BY_ID_FAIL;
+ }
+
return GriffinOperationMessage.DELETE_MEASURE_BY_ID_SUCCESS;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/460e2fd7/service/src/main/java/org/apache/griffin/core/measure/repo/DataSourceRepo.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/repo/DataSourceRepo.java b/service/src/main/java/org/apache/griffin/core/measure/repo/DataSourceRepo.java
new file mode 100644
index 0000000..5cc897c
--- /dev/null
+++ b/service/src/main/java/org/apache/griffin/core/measure/repo/DataSourceRepo.java
@@ -0,0 +1,26 @@
+/*
+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.griffin.core.measure.repo;
+
+import org.apache.griffin.core.measure.entity.DataSource;
+import org.springframework.data.repository.CrudRepository;
+
+public interface DataSourceRepo extends CrudRepository<DataSource,Long> {
+}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/460e2fd7/service/src/main/java/org/apache/griffin/core/measure/repo/RuleRepo.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/repo/RuleRepo.java b/service/src/main/java/org/apache/griffin/core/measure/repo/RuleRepo.java
new file mode 100644
index 0000000..75adce5
--- /dev/null
+++ b/service/src/main/java/org/apache/griffin/core/measure/repo/RuleRepo.java
@@ -0,0 +1,26 @@
+/*
+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.griffin.core.measure.repo;
+
+import org.apache.griffin.core.measure.entity.Rule;
+import org.springframework.data.repository.CrudRepository;
+
+public interface RuleRepo extends CrudRepository<Rule,Long> {
+}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/460e2fd7/service/src/test/java/org/apache/griffin/core/job/JobControllerTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/job/JobControllerTest.java b/service/src/test/java/org/apache/griffin/core/job/JobControllerTest.java
index d939d82..a78bafc 100644
--- a/service/src/test/java/org/apache/griffin/core/job/JobControllerTest.java
+++ b/service/src/test/java/org/apache/griffin/core/job/JobControllerTest.java
@@ -73,13 +73,12 @@ public class JobControllerTest {
}
@Test
- public void testAddJob() throws Exception {
+ public void testAddJobForSuccess() throws Exception {
String groupName = "BA";
String jobName = "job1";
long measureId = 0;
JobRequestBody jobRequestBody = new JobRequestBody("YYYYMMdd-HH", "YYYYMMdd-HH", "111", "20170607", "100");
- ObjectMapper mapper = new ObjectMapper();
- String schedulerRequestBodyJson = mapper.writeValueAsString(jobRequestBody);
+ String schedulerRequestBodyJson = new ObjectMapper().writeValueAsString(jobRequestBody);
given(service.addJob(groupName, jobName, measureId, jobRequestBody)).willReturn(GriffinOperationMessage.CREATE_JOB_SUCCESS);
mvc.perform(post("/jobs").param("group", groupName).param("jobName", jobName)
@@ -93,7 +92,26 @@ public class JobControllerTest {
}
@Test
- public void testDeleteJob() throws Exception {
+ public void testAddJobForFail() throws Exception {
+ String groupName = "BA";
+ String jobName = "job1";
+ long measureId = 0;
+ JobRequestBody jobRequestBody = new JobRequestBody("YYYYMMdd-HH", "YYYYMMdd-HH", "111", "20170607", "100");
+ String schedulerRequestBodyJson = new ObjectMapper().writeValueAsString(jobRequestBody);
+ given(service.addJob(groupName, jobName, measureId, jobRequestBody)).willReturn(GriffinOperationMessage.CREATE_JOB_FAIL);
+
+ mvc.perform(post("/jobs").param("group", groupName).param("jobName", jobName)
+ .param("measureId", String.valueOf(measureId))
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(schedulerRequestBodyJson))
+ .andExpect(status().isOk())
+ .andExpect(jsonPath("$.code", is(405)))
+ .andExpect(jsonPath("$.description", is("Create Job Failed")))
+ .andDo(print());
+ }
+
+ @Test
+ public void testDeleteJobForSuccess() throws Exception {
String groupName = "BA";
String jobName = "job1";
given(service.deleteJob(groupName, jobName)).willReturn(GriffinOperationMessage.DELETE_JOB_SUCCESS);
@@ -105,6 +123,18 @@ public class JobControllerTest {
}
@Test
+ public void testDeleteJobForFail() throws Exception {
+ String groupName = "BA";
+ String jobName = "job1";
+ given(service.deleteJob(groupName, jobName)).willReturn(GriffinOperationMessage.DELETE_JOB_FAIL);
+
+ mvc.perform(delete("/jobs").param("group", groupName).param("jobName", jobName))
+ .andExpect(status().isOk())
+ .andExpect(jsonPath("$.code", is(406)))
+ .andExpect(jsonPath("$.description", is("Delete Job Failed")));
+ }
+
+ @Test
public void testFindInstancesOfJob() throws Exception {
String groupName = "BA";
String jobName = "job1";
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/460e2fd7/service/src/test/java/org/apache/griffin/core/job/JobServiceImplTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/job/JobServiceImplTest.java b/service/src/test/java/org/apache/griffin/core/job/JobServiceImplTest.java
index 6efa102..56567ff 100644
--- a/service/src/test/java/org/apache/griffin/core/job/JobServiceImplTest.java
+++ b/service/src/test/java/org/apache/griffin/core/job/JobServiceImplTest.java
@@ -20,7 +20,6 @@ under the License.
package org.apache.griffin.core.job;
import org.apache.griffin.core.error.exception.GriffinException;
-import org.apache.griffin.core.job.entity.JobHealth;
import org.apache.griffin.core.job.entity.JobInstance;
import org.apache.griffin.core.job.entity.JobRequestBody;
import org.apache.griffin.core.job.entity.LivySessionStates;
@@ -49,6 +48,7 @@ import static org.apache.griffin.core.measure.MeasureTestHelper.createJobDetail;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.doThrow;
import static org.quartz.TriggerBuilder.newTrigger;
@RunWith(SpringRunner.class)
@@ -82,74 +82,117 @@ public class JobServiceImplTest {
}
@Test
- public void testGetAliveJobs() throws SchedulerException {
+ public void testGetAliveJobsForNormalRun() throws SchedulerException {
Scheduler scheduler = Mockito.mock(Scheduler.class);
JobDetailImpl jobDetail = createJobDetail();
given(factory.getObject()).willReturn(scheduler);
given(scheduler.getJobGroupNames()).willReturn(Arrays.asList("group"));
- HashSet<JobKey> set = new HashSet<JobKey>() {{
- add(new JobKey("name", "group"));
- }};
+ HashSet<JobKey> set = new HashSet<>();
+ set.add(new JobKey("name", "group"));
given(scheduler.getJobKeys(GroupMatcher.jobGroupEquals("group"))).willReturn(set);
- Trigger trigger = newTrigger().withIdentity(TriggerKey.triggerKey("name", "group")).
- withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(3000).repeatForever())
- .startAt(new Date()).build();
- List<Trigger> triggers = Arrays.asList(trigger);
+ List<Trigger> triggers = Arrays.asList(newTriggerInstance("name", "group", 3000));
JobKey jobKey = set.iterator().next();
given((List<Trigger>) scheduler.getTriggersOfJob(jobKey)).willReturn(triggers);
given(scheduler.getJobDetail(jobKey)).willReturn(jobDetail);
assertEquals(service.getAliveJobs().size(), 1);
+ }
- // trigger is empty
+ @Test
+ public void testGetAliveJobsForNoJobsWithTriggerEmpty() throws SchedulerException {
+ Scheduler scheduler = Mockito.mock(Scheduler.class);
+ given(factory.getObject()).willReturn(scheduler);
+ given(scheduler.getJobGroupNames()).willReturn(Arrays.asList("group"));
+ HashSet<JobKey> set = new HashSet<>();
+ set.add(new JobKey("name", "group"));
+ given(scheduler.getJobKeys(GroupMatcher.jobGroupEquals("group"))).willReturn(set);
+ JobKey jobKey = set.iterator().next();
given((List<Trigger>) scheduler.getTriggersOfJob(jobKey)).willReturn(Arrays.asList());
assertEquals(service.getAliveJobs().size(), 0);
+ }
- // schedule exception
- GriffinException.GetJobsFailureException exception = null;
- try {
- given(scheduler.getTriggersOfJob(jobKey)).willThrow(new GriffinException.GetJobsFailureException());
- service.getAliveJobs();
- } catch (GriffinException.GetJobsFailureException e) {
- exception = e;
- }
+ @Test
+ public void testGetAliveJobsForSchedulerException() throws SchedulerException {
+ Scheduler scheduler = Mockito.mock(Scheduler.class);
+ given(factory.getObject()).willReturn(scheduler);
+ given(scheduler.getJobGroupNames()).willReturn(Arrays.asList("group"));
+ HashSet<JobKey> set = new HashSet<>();
+ set.add(new JobKey("name", "group"));
+ given(scheduler.getJobKeys(GroupMatcher.jobGroupEquals("group"))).willReturn(set);
+ JobKey jobKey = set.iterator().next();
+ GriffinException.GetJobsFailureException exception = getTriggersOfJobExpectException(scheduler, jobKey);
assertTrue(exception != null);
+ }
+ @Test
+ public void testAddJobForSuccess() {
+ JobRequestBody jobRequestBody = new JobRequestBody("YYYYMMdd-HH", "YYYYMMdd-HH",
+ String.valueOf(System.currentTimeMillis()), String.valueOf(System.currentTimeMillis()), "1000");
+ Scheduler scheduler = Mockito.mock(Scheduler.class);
+ given(factory.getObject()).willReturn(scheduler);
+ assertEquals(service.addJob("BA", "jobName", 0L, jobRequestBody), GriffinOperationMessage.CREATE_JOB_SUCCESS);
+ }
+ @Test
+ public void testAddJobForFailWithFormatError() {
+ JobRequestBody jobRequestBody = new JobRequestBody();
+ Scheduler scheduler = Mockito.mock(Scheduler.class);
+ given(factory.getObject()).willReturn(scheduler);
+ assertEquals(service.addJob("BA", "jobName", 0L, jobRequestBody), GriffinOperationMessage.CREATE_JOB_FAIL);
}
@Test
- public void testAddJob() {
+ public void testAddJobForFailWithTriggerKeyExist() throws SchedulerException {
String groupName = "BA";
- String jobName = "job1";
- long measureId = 0;
- JobRequestBody jobRequestBody = new JobRequestBody();
+ String jobName = "jobName";
+ JobRequestBody jobRequestBody = new JobRequestBody("YYYYMMdd-HH", "YYYYMMdd-HH",
+ String.valueOf(System.currentTimeMillis()), String.valueOf(System.currentTimeMillis()), "1000");
Scheduler scheduler = Mockito.mock(Scheduler.class);
given(factory.getObject()).willReturn(scheduler);
- assertEquals(service.addJob(groupName, jobName, measureId, jobRequestBody), GriffinOperationMessage.CREATE_JOB_FAIL);
+ given(scheduler.checkExists(TriggerKey.triggerKey(jobName, groupName))).willReturn(true);
+ assertEquals(service.addJob(groupName, jobName, 0L, jobRequestBody), GriffinOperationMessage.CREATE_JOB_FAIL);
+ }
- JobRequestBody jobRequestBody1 = new JobRequestBody("YYYYMMdd-HH", "YYYYMMdd-HH",
- System.currentTimeMillis() + "", System.currentTimeMillis() + "", "1000");
- Scheduler scheduler1 = Mockito.mock(Scheduler.class);
- given(factory.getObject()).willReturn(scheduler1);
- assertEquals(service.addJob(groupName, jobName, measureId, jobRequestBody1), GriffinOperationMessage.CREATE_JOB_SUCCESS);
+ @Test
+ public void testAddJobForFailWithScheduleException() throws SchedulerException {
+ String groupName = "BA";
+ String jobName = "jobName";
+ JobRequestBody jobRequestBody = new JobRequestBody("YYYYMMdd-HH", "YYYYMMdd-HH",
+ String.valueOf(System.currentTimeMillis()), String.valueOf(System.currentTimeMillis()), "1000");
+ Scheduler scheduler = Mockito.mock(Scheduler.class);
+ given(factory.getObject()).willReturn(scheduler);
+ Trigger trigger = newTrigger().withIdentity(TriggerKey.triggerKey(jobName, groupName)).build();
+ given(scheduler.scheduleJob(trigger)).willThrow(SchedulerException.class);
+ assertEquals(service.addJob(groupName, jobName, 0L, jobRequestBody), GriffinOperationMessage.CREATE_JOB_FAIL);
}
@Test
- public void testDeleteJob() throws SchedulerException {
+ public void testDeleteJobForSuccess() throws SchedulerException {
String groupName = "BA";
- String jobName = "job1";
+ String jobName = "jobName";
Scheduler scheduler = Mockito.mock(Scheduler.class);
- // DELETE_JOB_SUCCESS
given(factory.getObject()).willReturn(scheduler);
- given(scheduler.getJobDetail(new JobKey(jobName,groupName))).willReturn(createJobDetail());
+ given(scheduler.getJobDetail(new JobKey(jobName, groupName))).willReturn(createJobDetail());
assertEquals(service.deleteJob(groupName, jobName), GriffinOperationMessage.DELETE_JOB_SUCCESS);
+ }
- // DELETE_JOB_FAIL
- given(factory.getObject()).willThrow(SchedulerException.class);
+ @Test
+ public void testDeleteJobForFailWithPauseFailure() throws SchedulerException {
+ String groupName = "BA";
+ String jobName = "jobName";
+ Scheduler scheduler = Mockito.mock(Scheduler.class);
+ given(factory.getObject()).willReturn(scheduler);
+ doThrow(SchedulerException.class).when(scheduler).pauseJob(new JobKey(jobName, groupName));
assertEquals(service.deleteJob(groupName, jobName), GriffinOperationMessage.DELETE_JOB_FAIL);
}
@Test
+ public void testDeleteJobForFailWithNull() throws SchedulerException {
+ Scheduler scheduler = Mockito.mock(Scheduler.class);
+ given(factory.getObject()).willReturn(scheduler);
+ assertEquals(service.deleteJob("BA", "jobName"), GriffinOperationMessage.DELETE_JOB_FAIL);
+ }
+
+ @Test
public void testFindInstancesOfJob() {
String groupName = "BA";
String jobName = "job1";
@@ -158,11 +201,11 @@ public class JobServiceImplTest {
JobInstance jobInstance = new JobInstance(groupName, jobName, 1, LivySessionStates.State.dead, "app_id", "app_uri", System.currentTimeMillis());
Pageable pageRequest = new PageRequest(page, size, Sort.Direction.DESC, "timestamp");
given(jobInstanceRepo.findByGroupNameAndJobName(groupName, jobName, pageRequest)).willReturn(Arrays.asList(jobInstance));
- assertEquals(service.findInstancesOfJob(groupName, jobName, page, size).size(),1);
+ assertEquals(service.findInstancesOfJob(groupName, jobName, page, size).size(), 1);
}
@Test
- public void testGetHealthInfo() throws SchedulerException {
+ public void testGetHealthInfoWithHealthy() throws SchedulerException {
Scheduler scheduler = Mockito.mock(Scheduler.class);
given(factory.getObject()).willReturn(scheduler);
given(scheduler.getJobGroupNames()).willReturn(Arrays.asList("BA"));
@@ -173,25 +216,59 @@ public class JobServiceImplTest {
Pageable pageRequest = new PageRequest(0, 1, Sort.Direction.DESC, "timestamp");
List<JobInstance> scheduleStateList = new ArrayList<>();
- JobInstance jobInstance = new JobInstance();
- jobInstance.setGroupName("BA");
- jobInstance.setJobName("job1");
- jobInstance.setSessionId(1);
- jobInstance.setState(LivySessionStates.State.starting);
- jobInstance.setAppId("app_id");
- jobInstance.setTimestamp(System.currentTimeMillis());
- scheduleStateList.add(jobInstance);
+ scheduleStateList.add(newJobInstance());
given(jobInstanceRepo.findByGroupNameAndJobName(jobKey.getGroup(), jobKey.getName(), pageRequest)).willReturn(scheduleStateList);
- JobHealth health1 = service.getHealthInfo();
- assertEquals(health1.getHealthyJobCount(),1);
+ assertEquals(service.getHealthInfo().getHealthyJobCount(), 1);
+
+ }
- scheduleStateList.remove(0);
+ @Test
+ public void testGetHealthInfoWithUnhealthy() throws SchedulerException {
+ Scheduler scheduler = Mockito.mock(Scheduler.class);
+ given(factory.getObject()).willReturn(scheduler);
+ given(scheduler.getJobGroupNames()).willReturn(Arrays.asList("BA"));
+ JobKey jobKey = new JobKey("test");
+ Set<JobKey> jobKeySet = new HashSet<>();
+ jobKeySet.add(jobKey);
+ given(scheduler.getJobKeys(GroupMatcher.jobGroupEquals("BA"))).willReturn((jobKeySet));
+
+ Pageable pageRequest = new PageRequest(0, 1, Sort.Direction.DESC, "timestamp");
+ List<JobInstance> scheduleStateList = new ArrayList<>();
+ JobInstance jobInstance = newJobInstance();
jobInstance.setState(LivySessionStates.State.error);
scheduleStateList.add(jobInstance);
given(jobInstanceRepo.findByGroupNameAndJobName(jobKey.getGroup(), jobKey.getName(), pageRequest)).willReturn(scheduleStateList);
- JobHealth health2 = service.getHealthInfo();
- assertEquals(health2.getHealthyJobCount(),0);
+ assertEquals(service.getHealthInfo().getHealthyJobCount(), 0);
}
+ private Trigger newTriggerInstance(String name, String group, int internalInSeconds) {
+ return newTrigger().withIdentity(TriggerKey.triggerKey(name, group)).
+ withSchedule(SimpleScheduleBuilder.simpleSchedule()
+ .withIntervalInSeconds(internalInSeconds)
+ .repeatForever()).startAt(new Date()).build();
+ }
+ private GriffinException.GetJobsFailureException getTriggersOfJobExpectException(Scheduler scheduler, JobKey jobKey) {
+ GriffinException.GetJobsFailureException exception = null;
+ try {
+ given(scheduler.getTriggersOfJob(jobKey)).willThrow(new GriffinException.GetJobsFailureException());
+ service.getAliveJobs();
+ } catch (GriffinException.GetJobsFailureException e) {
+ exception = e;
+ } catch (SchedulerException e) {
+ e.printStackTrace();
+ }
+ return exception;
+ }
+
+ private JobInstance newJobInstance() {
+ JobInstance jobInstance = new JobInstance();
+ jobInstance.setGroupName("BA");
+ jobInstance.setJobName("job1");
+ jobInstance.setSessionId(1);
+ jobInstance.setState(LivySessionStates.State.starting);
+ jobInstance.setAppId("app_id");
+ jobInstance.setTimestamp(System.currentTimeMillis());
+ return jobInstance;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/460e2fd7/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java b/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java
index 66ebb59..8bc24bd 100644
--- a/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java
+++ b/service/src/test/java/org/apache/griffin/core/measure/MeasureControllerTest.java
@@ -60,6 +60,7 @@ public class MeasureControllerTest {
public void testGetAllMeasures() throws Exception {
Measure measure = createATestMeasure("view_item_hourly", "ebay");
given(service.getAllAliveMeasures()).willReturn(Arrays.asList(measure));
+
mvc.perform(get("/measures").contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(jsonPath("$.[0].name", is("view_item_hourly")));
@@ -70,6 +71,7 @@ public class MeasureControllerTest {
public void testGetMeasuresById() throws Exception {
Measure measure = createATestMeasure("view_item_hourly", "ebay");
given(service.getMeasureById(1L)).willReturn(measure);
+
mvc.perform(get("/measure/1").contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(jsonPath("$.name", is("view_item_hourly")))
@@ -77,50 +79,70 @@ public class MeasureControllerTest {
}
@Test
- public void testDeleteMeasuresById() throws Exception {
- Measure measure = createATestMeasure("view_item_hourly", "ebay");
- // RESOURCE_NOT_FOUND
+ public void testDeleteMeasuresByIdForSuccess() throws Exception {
+ given(service.deleteMeasureById(1L)).willReturn(GriffinOperationMessage.DELETE_MEASURE_BY_ID_SUCCESS);
+
+ mvc.perform(delete("/measure/1").contentType(MediaType.APPLICATION_JSON))
+ .andExpect(status().isOk())
+ .andExpect(jsonPath("$.description", is("Delete Measures By Name Succeed")))
+ .andExpect(jsonPath("$.code", is(202)));
+ }
+
+ @Test
+ public void testDeleteMeasuresByIdForNotFound() throws Exception {
given(service.deleteMeasureById(1L)).willReturn(GriffinOperationMessage.RESOURCE_NOT_FOUND);
+
mvc.perform(delete("/measure/1").contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(jsonPath("$.description", is("Resource Not Found")))
.andExpect(jsonPath("$.code", is(400)));
+ }
+
+ @Test
+ public void testDeleteMeasuresByIdForFail() throws Exception {
+ given(service.deleteMeasureById(1L)).willReturn(GriffinOperationMessage.DELETE_MEASURE_BY_ID_FAIL);
- // DELETE_MEASURE_BY_ID_SUCCESS
- given(service.deleteMeasureById(1L)).willReturn(GriffinOperationMessage.DELETE_MEASURE_BY_ID_SUCCESS);
mvc.perform(delete("/measure/1").contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
- .andExpect(jsonPath("$.description", is("Delete Measures By Name Succeed")))
- .andExpect(jsonPath("$.code", is(202)));
+ .andExpect(jsonPath("$.description", is("Delete Measures By Name Failed")))
+ .andExpect(jsonPath("$.code", is(402)));
}
-
@Test
- public void testUpdateMeasure() throws Exception {
+ public void testUpdateMeasureForSuccess() throws Exception {
Measure measure = createATestMeasure("view_item_hourly", "ebay");
- ObjectMapper mapper = new ObjectMapper();
- String measureJson = mapper.writeValueAsString(measure);
+ String measureJson = new ObjectMapper().writeValueAsString(measure);
+ given(service.updateMeasure(measure)).willReturn(GriffinOperationMessage.UPDATE_MEASURE_SUCCESS);
+
+ mvc.perform(put("/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
+ .andExpect(status().isOk())
+ .andExpect(jsonPath("$.description", is("Update Measure Succeed")))
+ .andExpect(jsonPath("$.code", is(204)));
+ }
- // RESOURCE_NOT_FOUND
+ @Test
+ public void testUpdateMeasureForNotFound() throws Exception {
+ Measure measure = createATestMeasure("view_item_hourly", "ebay");
+ String measureJson = new ObjectMapper().writeValueAsString(measure);
given(service.updateMeasure(measure)).willReturn(GriffinOperationMessage.RESOURCE_NOT_FOUND);
+
mvc.perform(put("/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
.andExpect(status().isOk())
.andExpect(jsonPath("$.description", is("Resource Not Found")))
.andExpect(jsonPath("$.code", is(400)));
- // UPDATE_MEASURE_FAIL
+ }
+
+ @Test
+ public void testUpdateMeasureForFail() throws Exception {
+ Measure measure = createATestMeasure("view_item_hourly", "ebay");
+ String measureJson = new ObjectMapper().writeValueAsString(measure);
given(service.updateMeasure(measure)).willReturn(GriffinOperationMessage.UPDATE_MEASURE_FAIL);
+
mvc.perform(put("/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
.andExpect(status().isOk())
.andExpect(jsonPath("$.description", is("Update Measure Failed")))
.andExpect(jsonPath("$.code", is(404)));
-
- // UPDATE_MEASURE_SUCCESS
- given(service.updateMeasure(measure)).willReturn(GriffinOperationMessage.UPDATE_MEASURE_SUCCESS);
- mvc.perform(put("/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
- .andExpect(status().isOk())
- .andExpect(jsonPath("$.description", is("Update Measure Succeed")))
- .andExpect(jsonPath("$.code", is(204)));
}
@Test
@@ -140,32 +162,39 @@ public class MeasureControllerTest {
}
@Test
- public void testCreateNewMeasure() throws Exception {
- String measureName = "view_item_hourly";
- String org = "ebay";
- Measure measure = createATestMeasure(measureName, org);
- ObjectMapper mapper = new ObjectMapper();
- String measureJson = mapper.writeValueAsString(measure);
- // CREATE_MEASURE_FAIL
- given(service.createMeasure(measure)).willReturn(GriffinOperationMessage.CREATE_MEASURE_FAIL);
+ public void testCreateNewMeasureForSuccess() throws Exception {
+ Measure measure = createATestMeasure("view_item_hourly", "ebay");
+ String measureJson = new ObjectMapper().writeValueAsString(measure);
+ given(service.createMeasure(measure)).willReturn(GriffinOperationMessage.CREATE_MEASURE_SUCCESS);
+
mvc.perform(post("/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
.andExpect(status().isOk())
- .andExpect(jsonPath("$.description", is("Create Measure Failed")))
- .andExpect(jsonPath("$.code", is(401)));
+ .andExpect(jsonPath("$.description", is("Create Measure Succeed")))
+ .andExpect(jsonPath("$.code", is(201)));
+ }
- // CREATE_MEASURE_FAIL_DUPLICATE
+ @Test
+ public void testCreateNewMeasureForFailWithDuplicate() throws Exception {
+ Measure measure = createATestMeasure("view_item_hourly", "ebay");
+ String measureJson = new ObjectMapper().writeValueAsString(measure);
given(service.createMeasure(measure)).willReturn(GriffinOperationMessage.CREATE_MEASURE_FAIL_DUPLICATE);
+
mvc.perform(post("/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
.andExpect(status().isOk())
.andExpect(jsonPath("$.description", is("Create Measure Failed, duplicate records")))
.andExpect(jsonPath("$.code", is(410)));
+ }
+
+ @Test
+ public void testCreateNewMeasureForFailWithSaveException() throws Exception {
+ Measure measure = createATestMeasure("view_item_hourly", "ebay");
+ String measureJson = new ObjectMapper().writeValueAsString(measure);
+ given(service.createMeasure(measure)).willReturn(GriffinOperationMessage.CREATE_MEASURE_FAIL);
- // CREATE_MEASURE_SUCCESS
- given(service.createMeasure(measure)).willReturn(GriffinOperationMessage.CREATE_MEASURE_SUCCESS);
mvc.perform(post("/measure").contentType(MediaType.APPLICATION_JSON).content(measureJson))
.andExpect(status().isOk())
- .andExpect(jsonPath("$.description", is("Create Measure Succeed")))
- .andExpect(jsonPath("$.code", is(201)));
+ .andExpect(jsonPath("$.description", is("Create Measure Failed")))
+ .andExpect(jsonPath("$.code", is(401)));
}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/460e2fd7/service/src/test/java/org/apache/griffin/core/measure/MeasureRepoTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/measure/MeasureRepoTest.java b/service/src/test/java/org/apache/griffin/core/measure/MeasureRepoTest.java
deleted file mode 100644
index 5f929f3..0000000
--- a/service/src/test/java/org/apache/griffin/core/measure/MeasureRepoTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package org.apache.griffin.core.measure;//package org.apache.griffin.core.measure;
-//
-//import org.apache.griffin.core.measure.entity.DataConnector;
-//import org.apache.griffin.core.measure.entity.EvaluateRule;
-//import org.apache.griffin.core.measure.entity.Measure;
-//import org.apache.griffin.core.measure.repo.DataConnectorRepo;
-//import org.apache.griffin.core.measure.repo.EvaluateRuleRepo;
-//import org.apache.griffin.core.measure.repo.MeasureRepo;
-//import org.codehaus.jackson.map.ObjectMapper;
-//import org.junit.Test;
-//import org.junit.runner.RunWith;
-//import org.slf4j.Logger;
-//import org.slf4j.LoggerFactory;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
-//import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
-//import org.springframework.context.annotation.PropertySource;
-//import org.springframework.test.context.jdbc.Sql;
-//import org.springframework.test.context.junit4.SpringRunner;
-//import org.springframework.transaction.annotation.Propagation;
-//import org.springframework.transaction.annotation.Transactional;
-//
-//import java.io.IOException;
-//import java.util.HashMap;
-//import java.util.List;
-//
-//import static org.assertj.core.api.Assertions.assertThat;
-//
-//@RunWith(SpringRunner.class)
-//@PropertySource("classpath:application.properties")
-//@DataJpaTest
-////@Sql(value = {"classpath:Init_quartz.sql", "classpath:quartz-test.sql"})
-//@Sql("classpath:test.sql")
-//public class MeasureRepoTest {
-//
-// private static final Logger LOGGER = LoggerFactory.getLogger(MeasureRepoTest.class);
-//
-//
-// @Autowired
-// private TestEntityManager testEntityManager;
-//
-// @Autowired
-// private MeasureRepo measureRepo;
-// @Autowired
-// private DataConnectorRepo dataConnectorRepo;
-// @Autowired
-// private EvaluateRuleRepo evaluateRuleRepo;
-//
-// @Test
-// public void testFindOrganizations() {
-// Iterable<String> orgs = measureRepo.findOrganizations();
-// System.out.println(orgs);
-// for (String org : orgs) {
-// assertThat(org).isEqualTo("eBay");
-// }
-//
-// }
-//
-// @Test
-// public void testFindNameByOrganization() {
-// List<String> names = measureRepo.findNameByOrganization("eBay");
-// assertThat(names.get(0)).isEqualTo("buy_rates_hourly");
-// assertThat(names.get(1)).isEqualTo("griffin_aver");
-// }
-//
-// @Test
-// public void testFindOrgByName() {
-// assertThat(measureRepo.findOrgByName("buy_rates_hourly")).isEqualTo("eBay");
-// assertThat(measureRepo.findOrgByName("griffin_aver")).isEqualTo("eBay");
-// }
-//
-// /* @Test
-// @Transactional(propagation = Propagation.NOT_SUPPORTED)
-// public void testUpdateMeasure() {
-// HashMap<String, String> sourceMap = new HashMap<>();
-// sourceMap.put("database", "griffin");
-// sourceMap.put("table.name", "count");
-// DataConnector source = new DataConnector(DataConnector.ConnectorType.HIVE, "1.3", sourceMap);
-// HashMap<String, String> targetMap = new HashMap<>();
-// targetMap.put("database", "default");
-// targetMap.put("table.name", "avr_in");
-// DataConnector target = null;
-// try {
-// target = new DataConnector(DataConnector.ConnectorType.HIVE, "1.4", new ObjectMapper().writeValueAsString(targetMap));
-// } catch (IOException e) {
-// LOGGER.error("Fail to convert map to string using ObjectMapper.");
-// }
-//
-// EvaluateRule rule = new EvaluateRule(0, "$source['uid'] == $target['url'] AND $source['uage'] == $target['createdts']");
-// //save before flushing
-// dataConnectorRepo.save(source);
-// dataConnectorRepo.save(target);
-// evaluateRuleRepo.save(rule);
-// measureRepo.updateMeasure((long) 1, "new desc2", "Paypal", source, target, rule);
-// for (Measure measure : measureRepo.findAll()) {
-// if (measure.getId().equals((long) 1)) {
-// assertThat(measure.getDescription()).isEqualTo("new desc2");
-// assertThat(measure.getOrganization()).isEqualTo("Paypal");
-// assertThat(measure.getSource()).isEqualTo(source);
-// assertThat(measure.getTarget()).isEqualTo(target);
-// assertThat(measure.getEvaluateRule()).isEqualTo(rule);
-// }
-// }
-//
-// }*/
-//}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/460e2fd7/service/src/test/java/org/apache/griffin/core/measure/MeasureServiceImplTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/measure/MeasureServiceImplTest.java b/service/src/test/java/org/apache/griffin/core/measure/MeasureServiceImplTest.java
index bc6b2ae..8345a5a 100644
--- a/service/src/test/java/org/apache/griffin/core/measure/MeasureServiceImplTest.java
+++ b/service/src/test/java/org/apache/griffin/core/measure/MeasureServiceImplTest.java
@@ -76,14 +76,8 @@ public class MeasureServiceImplTest {
@Test
- public void testDeleteMeasuresById() throws Exception {
+ public void testDeleteMeasuresByIdForSuccess() throws Exception {
Measure measure = createATestMeasure("view_item_hourly", "ebay");
- // RESOURCE_NOT_FOUND
- given(measureRepo.exists(1L)).willReturn(false);
- GriffinOperationMessage message1 = service.deleteMeasureById(1L);
- assertEquals(message1, GriffinOperationMessage.RESOURCE_NOT_FOUND);
-
- //DELETE_MEASURE_BY_ID_SUCCESS
given(measureRepo.exists(1L)).willReturn(true);
given(measureRepo.findOne(1L)).willReturn(measure);
doNothing().when(jobService).deleteJobsRelateToMeasure(measure);
@@ -93,27 +87,41 @@ public class MeasureServiceImplTest {
}
@Test
- public void testCreateNewMeasure() throws Exception {
- Measure measure = createATestMeasure("view_item_hourly", "ebay");
- // CREATE_MEASURE_SUCCESS
+ public void testDeleteMeasuresByIdForNotFound() throws Exception {
+ given(measureRepo.exists(1L)).willReturn(false);
+ GriffinOperationMessage message = service.deleteMeasureById(1L);
+ assertEquals(message, GriffinOperationMessage.RESOURCE_NOT_FOUND);
+ }
+
+ @Test
+ public void testCreateNewMeasureForSuccess() throws Exception {
String measureName = "view_item_hourly";
+ Measure measure = createATestMeasure(measureName, "ebay");
given(measureRepo.findByNameAndDeleted(measureName, false)).willReturn(new LinkedList<>());
given(measureRepo.save(measure)).willReturn(measure);
GriffinOperationMessage message = service.createMeasure(measure);
assertEquals(message, GriffinOperationMessage.CREATE_MEASURE_SUCCESS);
+ }
- // CREATE_MEASURE_FAIL_DUPLICATE
+ @Test
+ public void testCreateNewMeasureForFailWithDuplicate() throws Exception {
+ String measureName = "view_item_hourly";
+ Measure measure = createATestMeasure(measureName, "ebay");
LinkedList<Measure> list = new LinkedList<>();
list.add(measure);
given(measureRepo.findByNameAndDeleted(measureName, false)).willReturn(list);
- GriffinOperationMessage message1 = service.createMeasure(measure);
- assertEquals(message1, GriffinOperationMessage.CREATE_MEASURE_FAIL_DUPLICATE);
+ GriffinOperationMessage message = service.createMeasure(measure);
+ assertEquals(message, GriffinOperationMessage.CREATE_MEASURE_FAIL_DUPLICATE);
+ }
- // CREATE_MEASURE_FAIL
+ @Test
+ public void testCreateNewMeasureForFailWithSaveException() throws Exception {
+ String measureName = "view_item_hourly";
+ Measure measure = createATestMeasure(measureName, "ebay");
given(measureRepo.findByNameAndDeleted(measureName, false)).willReturn(new LinkedList<>());
given(measureRepo.save(measure)).willReturn(null);
- GriffinOperationMessage message2 = service.createMeasure(measure);
- assertEquals(message2, GriffinOperationMessage.CREATE_MEASURE_FAIL);
+ GriffinOperationMessage message = service.createMeasure(measure);
+ assertEquals(message, GriffinOperationMessage.CREATE_MEASURE_FAIL);
}
@Test
@@ -127,19 +135,29 @@ public class MeasureServiceImplTest {
}
@Test
- public void testUpdateMeasure() throws Exception {
+ public void testUpdateMeasureForSuccess() throws Exception {
Measure measure = createATestMeasure("view_item_hourly", "ebay");
- // RESOURCE_NOT_FOUND
- given(measureRepo.exists(measure.getId())).willReturn(false);
- GriffinOperationMessage message1 = service.updateMeasure(measure);
- assertEquals(message1, GriffinOperationMessage.RESOURCE_NOT_FOUND);
-
- //UPDATE_MEASURE_SUCCESS
given(measureRepo.exists(measure.getId())).willReturn(true);
given(measureRepo.save(measure)).willReturn(measure);
- GriffinOperationMessage message2 = service.updateMeasure(measure);
- assertEquals(message2, GriffinOperationMessage.UPDATE_MEASURE_SUCCESS);
+ GriffinOperationMessage message = service.updateMeasure(measure);
+ assertEquals(message, GriffinOperationMessage.UPDATE_MEASURE_SUCCESS);
}
+ @Test
+ public void testUpdateMeasureForNotFound() throws Exception {
+ Measure measure = createATestMeasure("view_item_hourly", "ebay");
+ given(measureRepo.exists(measure.getId())).willReturn(false);
+ GriffinOperationMessage message = service.updateMeasure(measure);
+ assertEquals(message, GriffinOperationMessage.RESOURCE_NOT_FOUND);
+ }
+
+ @Test
+ public void testUpdateMeasureForFailWithSaveException() throws Exception {
+ Measure measure = createATestMeasure("view_item_hourly", "ebay");
+ given(measureRepo.exists(measure.getId())).willReturn(true);
+ given(measureRepo.save(measure)).willThrow(Exception.class);
+ GriffinOperationMessage message = service.updateMeasure(measure);
+ assertEquals(message, GriffinOperationMessage.UPDATE_MEASURE_FAIL);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/460e2fd7/service/src/test/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreServiceImplTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreServiceImplTest.java b/service/src/test/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreServiceImplTest.java
index d732e34..07d4fc2 100644
--- a/service/src/test/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreServiceImplTest.java
+++ b/service/src/test/java/org/apache/griffin/core/metastore/hive/HiveMetaStoreServiceImplTest.java
@@ -64,26 +64,30 @@ public class HiveMetaStoreServiceImplTest {
}
@Test
- public void testGetAllDatabases() throws MetaException {
+ public void testGetAllDatabasesForNormalRun() throws MetaException {
given(client.getAllDatabases()).willReturn(Arrays.asList("default"));
assertEquals(service.getAllDatabases().iterator().hasNext(), true);
+ }
- // MetaException
+ @Test
+ public void testGetAllDatabasesForMetaException() throws MetaException {
given(client.getAllDatabases()).willThrow(MetaException.class);
doNothing().when(client).reconnect();
service.getAllDatabases();
assertTrue(service.getAllDatabases() == null);
-
}
@Test
- public void testGetAllTableNames() throws MetaException {
+ public void testGetAllTableNamesForNormalRun() throws MetaException {
String dbName = "default";
given(client.getAllTables(dbName)).willReturn(Arrays.asList(dbName));
assertEquals(service.getAllTableNames(dbName).iterator().hasNext(), true);
+ }
- // MetaException
+ @Test
+ public void testGetAllTableNamesForMetaException() throws MetaException {
+ String dbName = "default";
given(client.getAllTables(dbName)).willThrow(MetaException.class);
doNothing().when(client).reconnect();
assertTrue(service.getAllTableNames(dbName) == null);
@@ -91,21 +95,24 @@ public class HiveMetaStoreServiceImplTest {
}
@Test
- public void testGetAllTableByDBName() throws TException {
+ public void testGetAllTableByDBNameForNormalRun() throws TException {
String useDbName = "default";
String tableName = "table";
given(client.getAllTables(useDbName)).willReturn(Arrays.asList(tableName));
given(client.getTable(useDbName, tableName)).willReturn(new Table());
assertEquals(service.getAllTable(useDbName).size(), 1);
+ }
- // MetaException
+ @Test
+ public void testGetAllTableByDBNameForMetaException() throws TException {
+ String useDbName = "default";
given(client.getAllTables(useDbName)).willThrow(MetaException.class);
doNothing().when(client).reconnect();
assertEquals(service.getAllTable(useDbName).size(), 0);
}
@Test
- public void testGetAllTable() throws TException {
+ public void testGetAllTableForNormalRun() throws TException {
String useDbName = "default";
String tableName = "table";
List<String> databases = Arrays.asList(useDbName);
@@ -113,31 +120,37 @@ public class HiveMetaStoreServiceImplTest {
given(client.getAllTables(databases.iterator().next())).willReturn(Arrays.asList(tableName));
given(client.getTable(useDbName, tableName)).willReturn(new Table());
assertEquals(service.getAllTable().size(), 1);
+ }
- //pls attention:do not change the position of the following two MetaException test
- //because we use throw exception,so they are in order.
- // MetaException1
+ @Test
+ public void testGetAllTableForMetaException1() throws TException {
+ String useDbName = "default";
+ List<String> databases = Arrays.asList(useDbName);
given(client.getAllDatabases()).willReturn(databases);
given(client.getAllTables(useDbName)).willThrow(MetaException.class);
doNothing().when(client).reconnect();
assertEquals(service.getAllTable().get(useDbName).size(), 0);
+ }
- // MetaException2
+ @Test
+ public void testGetAllTableForMetaException2() throws TException {
given(client.getAllDatabases()).willThrow(MetaException.class);
doNothing().when(client).reconnect();
assertEquals(service.getAllTable().size(), 0);
-
-
}
@Test
- public void testGetTable() throws Exception {
+ public void testGetTableForNormalRun() throws Exception {
String dbName = "default";
String tableName = "tableName";
given(client.getTable(dbName, tableName)).willReturn(new Table());
assertTrue(service.getTable(dbName, tableName) != null);
+ }
- //getTable throws Exception
+ @Test
+ public void testGetTableForException() throws Exception {
+ String dbName = "default";
+ String tableName = "tableName";
given(client.getTable(dbName, tableName)).willThrow(Exception.class);
doNothing().when(client).reconnect();
assertTrue(service.getTable(dbName, tableName) == null);
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/460e2fd7/service/src/test/java/org/apache/griffin/core/util/GriffinUtilTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/util/GriffinUtilTest.java b/service/src/test/java/org/apache/griffin/core/util/GriffinUtilTest.java
index 111331a..c89670a 100644
--- a/service/src/test/java/org/apache/griffin/core/util/GriffinUtilTest.java
+++ b/service/src/test/java/org/apache/griffin/core/util/GriffinUtilTest.java
@@ -27,45 +27,50 @@ import org.junit.Test;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
+import java.util.Properties;
import static org.junit.Assert.assertEquals;
-/**
- * Created by xiangrchen on 7/27/17.
- */
public class GriffinUtilTest {
@Before
- public void setup(){
+ public void setup() {
}
@Test
- public void test_toJson(){
- JobHealth jobHealth=new JobHealth(5,10);
- String jobHealthStr= GriffinUtil.toJson(jobHealth);
- assertEquals(jobHealthStr,"{\"healthyJobCount\":5,\"jobCount\":10}");
+ public void testToJson() {
+ JobHealth jobHealth = new JobHealth(5, 10);
+ String jobHealthStr = GriffinUtil.toJson(jobHealth);
+ assertEquals(jobHealthStr, "{\"healthyJobCount\":5,\"jobCount\":10}");
}
@Test
- public void test_toEntity() throws IOException {
- String str="{\"healthyJobCount\":5,\"jobCount\":10}";
- JobHealth jobHealth= GriffinUtil.toEntity(str,JobHealth.class);
- assertEquals(jobHealth.getJobCount(),10);
- assertEquals(jobHealth.getHealthyJobCount(),5);
+ public void testToEntityWithParamClass() throws IOException {
+ String str = "{\"healthyJobCount\":5,\"jobCount\":10}";
+ JobHealth jobHealth = GriffinUtil.toEntity(str, JobHealth.class);
+ assertEquals(jobHealth.getJobCount(), 10);
+ assertEquals(jobHealth.getHealthyJobCount(), 5);
}
@Test
- public void test_toEntity1() throws IOException {
- String str="{\"aaa\":12, \"bbb\":13}";
- TypeReference<HashMap<String,Integer>> type=new TypeReference<HashMap<String,Integer>>(){};
- Map map= GriffinUtil.toEntity(str,type);
- assertEquals(map.get("aaa"),12);
+ public void testToEntityWithParamTypeReference() throws IOException {
+ String str = "{\"aaa\":12, \"bbb\":13}";
+ TypeReference<HashMap<String, Integer>> type = new TypeReference<HashMap<String, Integer>>() {
+ };
+ Map map = GriffinUtil.toEntity(str, type);
+ assertEquals(map.get("aaa"), 12);
}
@Test
- public void test_toJson2() throws IOException {
-// LivySessionStateMap.State state=
- System.out.println(GriffinOperationMessage.CREATE_JOB_FAIL);
+ public void testGetPropertiesForSuccess() {
+ Properties properties = GriffinUtil.getProperties("/quartz.properties");
+ assertEquals(properties.get("org.quartz.jobStore.isClustered"), "true");
+ }
+
+ @Test
+ public void testGetPropertiesForFailWithWrongPath() {
+ Properties properties = GriffinUtil.getProperties(".././quartz.properties");
+ assertEquals(properties, null);
}
}