Skip to content

Commit

Permalink
add Tests for Task
Browse files Browse the repository at this point in the history
Signed-off-by: Varun Bansal <bansvaru@amazon.com>
  • Loading branch information
linuxpi committed Aug 1, 2024
1 parent 09d6965 commit 4cc246b
Show file tree
Hide file tree
Showing 5 changed files with 193 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ private Builder(TaskId taskId, TaskStatus taskStatus, TaskParams params, TaskTyp
* @param task Task to build from
* @return Task.Builder
*/
public Builder builder(Task task) {
public static Builder builder(Task task) {
Builder builder = new Builder(
task.getTaskId(),
task.getTaskStatus(),
Expand All @@ -273,6 +273,7 @@ public Builder builder(Task task) {
builder.assignedAt(task.getAssignedAt());
builder.startedAt(task.getStartedAt());
builder.completedAt(task.getCompletedAt());
builder.lastHeartbeatAt(task.getLastHeartbeatAt());
builder.assignedNode(task.getAssignedNode());
return builder;
}
Expand All @@ -286,7 +287,7 @@ public Builder builder(Task task) {
* @param createdAt Task Creation Time
* @return Task.Builder
*/
public Builder builder(TaskId taskId, TaskStatus taskStatus, TaskParams params, TaskType taskType, long createdAt) {
public static Builder builder(TaskId taskId, TaskStatus taskStatus, TaskParams params, TaskType taskType, long createdAt) {
return new Builder(taskId, taskStatus, params, taskType, createdAt);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

package org.opensearch.task.commons.worker;

import java.util.Objects;

/**
* Represents a worker node in the fleet
*/
Expand Down Expand Up @@ -78,4 +80,17 @@ public String getName() {
public String getIp() {
return ip;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
WorkerNode that = (WorkerNode) o;
return Objects.equals(id, that.id) && Objects.equals(name, that.name) && Objects.equals(ip, that.ip);
}

@Override
public int hashCode() {
return Objects.hash(id, name, ip);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* compatible open source license.
*/

package org.opensearch.offline_tasks;
package org.opensearch.task.commons;

import org.opensearch.test.OpenSearchTestCase;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* The OpenSearch Contributors require contributions made to
* this file be licensed under the Apache-2.0 license or a
* compatible open source license.
*/

package org.opensearch.task.commons.mocks;

import org.opensearch.task.commons.task.TaskParams;

public class MockTaskParams extends TaskParams {

private final String value;

public MockTaskParams(String mockValue) {
super();
value = mockValue;
}

public String getValue() {
return value;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
/*
* SPDX-License-Identifier: Apache-2.0
*
* The OpenSearch Contributors require contributions made to
* this file be licensed under the Apache-2.0 license or a
* compatible open source license.
*/

package org.opensearch.task.commons.task;

import org.opensearch.task.commons.mocks.MockTaskParams;
import org.opensearch.task.commons.worker.WorkerNode;
import org.junit.Test;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;

/**
* Test for {@link Task}
*/
public class TaskTests {

public void testTaskConstructorAndGetters() {
TaskId taskId = new TaskId("123");
TaskStatus taskStatus = TaskStatus.UNASSIGNED;
TaskParams params = new MockTaskParams("mock");
TaskType taskType = TaskType.MERGE;
long createdAt = System.currentTimeMillis();
long assignedAt = createdAt + 1000;
long startedAt = createdAt + 2000;
long completedAt = createdAt + 3000;
long lastHeartbeatAt = createdAt + 2500;
WorkerNode assignedNode = WorkerNode.createWorkerNode("node1", "nodeip", "nodename");

Task task = new Task(
taskId,
taskStatus,
params,
taskType,
createdAt,
assignedAt,
startedAt,
completedAt,
lastHeartbeatAt,
assignedNode
);

assertEquals(taskId, task.getTaskId());
assertEquals(taskStatus, task.getTaskStatus());
assertEquals(params, task.getParams());
assertEquals(taskType, task.getTaskType());
assertEquals(createdAt, task.getCreatedAt());
assertEquals(assignedAt, task.getAssignedAt());
assertEquals(startedAt, task.getStartedAt());
assertEquals(completedAt, task.getCompletedAt());
assertEquals(lastHeartbeatAt, task.getLastHeartbeatAt());
assertEquals(assignedNode, task.getAssignedNode());
}

public void testBuilderFromTask() {
TaskId taskId = new TaskId("123");
TaskStatus taskStatus = TaskStatus.UNASSIGNED;
TaskParams params = new MockTaskParams("mock");
TaskType taskType = TaskType.MERGE;
long createdAt = System.currentTimeMillis();
long assignedAt = createdAt + 1000;
long startedAt = createdAt + 2000;
long completedAt = createdAt + 3000;
long lastHeartbeatAt = createdAt + 2500;
WorkerNode assignedNode = WorkerNode.createWorkerNode("node1", "nodeip", "nodename");

Task originalTask = new Task(
taskId,
taskStatus,
params,
taskType,
createdAt,
assignedAt,
startedAt,
completedAt,
lastHeartbeatAt,
assignedNode
);

Task.Builder builder = Task.Builder.builder(originalTask);
Task newTask = builder.build();

assertEquals(originalTask.getTaskId(), newTask.getTaskId());
assertEquals(originalTask.getTaskStatus(), newTask.getTaskStatus());
assertEquals(originalTask.getParams(), newTask.getParams());
assertEquals(originalTask.getTaskType(), newTask.getTaskType());
assertEquals(originalTask.getCreatedAt(), newTask.getCreatedAt());
assertEquals(originalTask.getAssignedAt(), newTask.getAssignedAt());
assertEquals(originalTask.getStartedAt(), newTask.getStartedAt());
assertEquals(originalTask.getCompletedAt(), newTask.getCompletedAt());
assertEquals(originalTask.getLastHeartbeatAt(), newTask.getLastHeartbeatAt());
assertEquals(originalTask.getAssignedNode(), newTask.getAssignedNode());
}

public void testBuilderFromAttributes() {
TaskId taskId = new TaskId("123");
TaskStatus taskStatus = TaskStatus.UNASSIGNED;
TaskParams params = new MockTaskParams("mock");
TaskType taskType = TaskType.MERGE;
long createdAt = System.currentTimeMillis();

Task.Builder builder = Task.Builder.builder(taskId, taskStatus, params, taskType, createdAt);
builder.assignedAt(createdAt + 1000);
builder.startedAt(createdAt + 2000);
builder.completedAt(createdAt + 3000);
builder.lastHeartbeatAt(createdAt + 2500);
builder.assignedNode(WorkerNode.createWorkerNode("node1", "nodeip", "nodename"));

Task task = builder.build();

assertEquals(taskId, task.getTaskId());
assertEquals(taskStatus, task.getTaskStatus());
assertEquals(params, task.getParams());
assertEquals(taskType, task.getTaskType());
assertEquals(createdAt, task.getCreatedAt());
assertEquals(createdAt + 1000, task.getAssignedAt());
assertEquals(createdAt + 2000, task.getStartedAt());
assertEquals(createdAt + 3000, task.getCompletedAt());
assertEquals(createdAt + 2500, task.getLastHeartbeatAt());
assertEquals(WorkerNode.createWorkerNode("node1", "nodeip", "nodename"), task.getAssignedNode());
}

public void testBuilderWithNullOptionalFields() {
TaskId taskId = new TaskId("123");
TaskStatus taskStatus = TaskStatus.UNASSIGNED;
TaskParams params = new MockTaskParams("mock");
TaskType taskType = TaskType.MERGE;
long createdAt = System.currentTimeMillis();

Task.Builder builder = Task.Builder.builder(taskId, taskStatus, params, taskType, createdAt);
Task task = builder.build();

assertEquals(taskId, task.getTaskId());
assertEquals(taskStatus, task.getTaskStatus());
assertEquals(params, task.getParams());
assertEquals(taskType, task.getTaskType());
assertEquals(createdAt, task.getCreatedAt());
assertEquals(0, task.getAssignedAt());
assertEquals(0, task.getStartedAt());
assertEquals(0, task.getCompletedAt());
assertEquals(0, task.getLastHeartbeatAt());
assertNull(task.getAssignedNode());
}
}

0 comments on commit 4cc246b

Please sign in to comment.