Skip to content

Commit

Permalink
Add test cases for job statistics api.
Browse files Browse the repository at this point in the history
  • Loading branch information
haocao committed Apr 6, 2017
1 parent e594a14 commit bd44936
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ function shardingStatusFormatter(value, row) {
return "<span class='label label-success'>已完成</span>";
break;
case "SHARDING_ERROR":
return "<span class='label label-warning'>分片调整中</span>";
return "<span class='label label-info'>分片调整中</span>";
break;
default:
return "<span class='label label-default'>等待运行</span>";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ function statusFormatter(value, row) {
return "<span class='label label-warning'>已禁用</span>";
break;
case "SHARDING_ERROR":
return "<span class='label label-warning'>分片调整中</span>";
return "<span class='label label-info'>分片调整中</span>";
break;
case "CRASHED":
return "<span class='label label-default'>已下线</span>";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ private JobStatus getJobStatus(final String jobName) {
shardingInstances.add(instanceId);
}
}
if (!instances.containsAll(shardingInstances)) {
if (!instances.containsAll(shardingInstances) || shardingInstances.isEmpty()) {
return JobStatus.SHARDING_ERROR;
}
for (String each : regCenter.getChildrenKeys(jobNodePath.getServerNodePath())) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,6 @@ public void setUp() {
jobStatisticsAPI = new JobStatisticsAPIImpl(regCenter);
}

@Test
public void assertGetAllJobsBriefInfoWithoutNamespace() {
when(regCenter.getChildrenKeys("/")).thenReturn(Arrays.asList("test_job_1", "test_job_2"));
assertThat(jobStatisticsAPI.getAllJobsBriefInfo().size(), is(0));
}

@Test
public void assertGetJobsTotalCount() {
when(regCenter.getChildrenKeys("/")).thenReturn(Arrays.asList("test_job_1", "test_job_2"));
Expand All @@ -69,14 +63,57 @@ public void assertGetJobBriefInfo() {
when(regCenter.get("/test_job/sharding/0/instance")).thenReturn("ip1@-@defaultInstance");
when(regCenter.get("/test_job/sharding/1/instance")).thenReturn("ip1@-@defaultInstance");
when(regCenter.get("/test_job/sharding/2/instance")).thenReturn("ip2@-@defaultInstance");
when(regCenter.get("/test_job/servers/instances/ip1@-@defaultInstance")).thenReturn("RUNNING");
when(regCenter.get("/test_job/servers/instances/ip2@-@defaultInstance")).thenReturn("READY");
when(regCenter.getChildrenKeys("/test_job/instances")).thenReturn(Arrays.asList("ip1@-@defaultInstance", "ip2@-@defaultInstance"));
JobBriefInfo jobBrief = jobStatisticsAPI.getJobBriefInfo("test_job");
assertThat(jobBrief.getJobName(), is("test_job"));
assertThat(jobBrief.getDescription(), is("desc"));
assertThat(jobBrief.getCron(), is("0/1 * * * * ?"));
assertThat(jobBrief.getInstanceCount(), is(2));
assertThat(jobBrief.getShardingTotalCount(), is(3));
assertThat(jobBrief.getStatus(), is(JobStatus.OK));
}

@Test
public void assertGetDisabledJobBriefInfo() {
when(regCenter.getChildrenKeys("/")).thenReturn(Lists.newArrayList("test_job"));
when(regCenter.get("/test_job/config")).thenReturn(LifecycleJsonConstants.getSimpleJobJson("test_job", "desc"));
when(regCenter.getChildrenKeys("/test_job/servers")).thenReturn(Arrays.asList("ip1", "ip2"));
when(regCenter.get("/test_job/servers/ip1")).thenReturn("DISABLED");
when(regCenter.getChildrenKeys("/test_job/instances")).thenReturn(Arrays.asList("ip1@-@defaultInstance", "ip2@-@defaultInstance"));
when(regCenter.getChildrenKeys("/test_job/sharding")).thenReturn(Arrays.asList("0", "1"));
when(regCenter.get("/test_job/sharding/0/instance")).thenReturn("ip1@-@defaultInstance");
when(regCenter.get("/test_job/sharding/1/instance")).thenReturn("ip2@-@defaultInstance");
JobBriefInfo jobBrief = jobStatisticsAPI.getJobBriefInfo("test_job");
assertThat(jobBrief.getStatus(), is(JobStatus.DISABLED));
}

@Test
public void assertGetShardingErrorJobBriefInfo() {
when(regCenter.getChildrenKeys("/")).thenReturn(Lists.newArrayList("test_job"));
when(regCenter.get("/test_job/config")).thenReturn(LifecycleJsonConstants.getSimpleJobJson("test_job", "desc"));
when(regCenter.getChildrenKeys("/test_job/servers")).thenReturn(Arrays.asList("ip1", "ip2"));
when(regCenter.getChildrenKeys("/test_job/instances")).thenReturn(Arrays.asList("ip1@-@defaultInstance", "ip2@-@defaultInstance"));
when(regCenter.getChildrenKeys("/test_job/sharding")).thenReturn(Arrays.asList("0", "1", "2"));
when(regCenter.get("/test_job/sharding/0/instance")).thenReturn("ip1@-@defaultInstance");
when(regCenter.get("/test_job/sharding/1/instance")).thenReturn("ip2@-@defaultInstance");
when(regCenter.get("/test_job/sharding/2/instance")).thenReturn("ip3@-@defaultInstance");
JobBriefInfo jobBrief = jobStatisticsAPI.getJobBriefInfo("test_job");
assertThat(jobBrief.getStatus(), is(JobStatus.SHARDING_ERROR));
}

@Test
public void assertGetCrashedJobBriefInfo() {
when(regCenter.getChildrenKeys("/")).thenReturn(Lists.newArrayList("test_job"));
when(regCenter.get("/test_job/config")).thenReturn(LifecycleJsonConstants.getSimpleJobJson("test_job", "desc"));
when(regCenter.getChildrenKeys("/test_job/servers")).thenReturn(Arrays.asList("ip1", "ip2"));
JobBriefInfo jobBrief = jobStatisticsAPI.getJobBriefInfo("test_job");
assertThat(jobBrief.getStatus(), is(JobStatus.CRASHED));
}

@Test
public void assertGetAllJobsBriefInfoWithoutNamespace() {
when(regCenter.getChildrenKeys("/")).thenReturn(Arrays.asList("test_job_1", "test_job_2"));
assertThat(jobStatisticsAPI.getAllJobsBriefInfo().size(), is(0));
}

@Test
Expand All @@ -86,37 +123,45 @@ public void assertGetAllJobsBriefInfo() {
when(regCenter.get("/test_job_2/config")).thenReturn(LifecycleJsonConstants.getSimpleJobJson("test_job_2", "desc2"));
when(regCenter.getChildrenKeys("/test_job_1/servers")).thenReturn(Arrays.asList("ip1", "ip2"));
when(regCenter.getChildrenKeys("/test_job_2/servers")).thenReturn(Arrays.asList("ip3", "ip4"));
when(regCenter.getChildrenKeys("/test_job_1/instances")).thenReturn(Arrays.asList("ip1@-@defaultInstance"));
when(regCenter.getChildrenKeys("/test_job_2/instances")).thenReturn(Arrays.asList("ip1@-@defaultInstance", "ip2@-@defaultInstance"));
when(regCenter.getChildrenKeys("/test_job_1/sharding")).thenReturn(Arrays.asList("0", "1"));
when(regCenter.get("/test_job_1/sharding/0/instance")).thenReturn("ip1@-@defaultInstance");
when(regCenter.get("/test_job_1/sharding/1/instance")).thenReturn("ip2@-@defaultInstance");
when(regCenter.getChildrenKeys("/test_job_2/sharding")).thenReturn(Arrays.asList("0", "1"));
when(regCenter.get("/test_job_2/sharding/0/instance")).thenReturn("ip3@-@defaultInstance");
when(regCenter.get("/test_job_2/sharding/1/instance")).thenReturn("ip4@-@defaultInstance");
when(regCenter.getChildrenKeys("/test_job_1/instances")).thenReturn(Arrays.asList("ip1@-@defaultInstance", "ip2@-@defaultInstance"));
when(regCenter.getChildrenKeys("/test_job_2/instances")).thenReturn(Arrays.asList("ip3@-@defaultInstance", "ip4@-@defaultInstance"));
int i = 0;
for (JobBriefInfo each : jobStatisticsAPI.getAllJobsBriefInfo()) {
i++;
assertThat(each.getJobName(), is("test_job_" + i));
assertThat(each.getDescription(), is("desc" + i));
assertThat(each.getCron(), is("0/1 * * * * ?"));
assertThat(each.getInstanceCount(), is(i));
assertThat(each.getInstanceCount(), is(2));
assertThat(each.getShardingTotalCount(), is(3));
assertThat(each.getStatus(), is(JobStatus.OK));
}
}

@Test
public void getJobsBriefInfoByIp() {
when(regCenter.getChildrenKeys("/")).thenReturn(Arrays.asList("test_job_1", "test_job_2"));
when(regCenter.get("/test_job_1/config")).thenReturn(LifecycleJsonConstants.getSimpleJobJson("test_job_1", "desc1"));
when(regCenter.get("/test_job_2/config")).thenReturn(LifecycleJsonConstants.getSimpleJobJson("test_job_2", "desc2"));
public void assertGetJobsBriefInfoByIp() {
when(regCenter.getChildrenKeys("/")).thenReturn(Arrays.asList("test_job_1", "test_job_2", "test_job_3"));
when(regCenter.getChildrenKeys("/test_job_1/servers")).thenReturn(Arrays.asList("ip1"));
when(regCenter.getChildrenKeys("/test_job_2/servers")).thenReturn(Arrays.asList("ip1"));
when(regCenter.getChildrenKeys("/test_job_3/servers")).thenReturn(Arrays.asList("ip1"));
when(regCenter.isExisted("/test_job_1/servers/ip1")).thenReturn(true);
when(regCenter.isExisted("/test_job_2/servers/ip1")).thenReturn(true);
when(regCenter.get("/test_job_2/servers/ip1")).thenReturn("DISABLED");
when(regCenter.getChildrenKeys("/test_job_1/instances")).thenReturn(Arrays.asList("ip1@-@defaultInstance"));
int i = 0;
for (JobBriefInfo each : jobStatisticsAPI.getJobsBriefInfo("ip1")) {
assertThat(each.getJobName(), is("test_job_" + ++i));
if (i == 1) {
assertThat(each.getStatus(), is(JobStatus.OK));
assertThat(each.getInstanceCount(), is(1));
} else {
assertThat(each.getStatus(), is(JobStatus.OK));
} else if (i == 2) {
assertThat(each.getInstanceCount(), is(0));
assertThat(each.getStatus(), is(JobStatus.CRASHED));
assertThat(each.getStatus(), is(JobStatus.DISABLED));
}
}
}
Expand Down

0 comments on commit bd44936

Please sign in to comment.