Skip to content

Commit

Permalink
fix: recurring tasks get correct default priority without data (#604) (
Browse files Browse the repository at this point in the history
…#605)

## Brief, plain english overview of your changes here

Include the default priority of a task class when creating an instance
without data

## Fixes
#604 

## Reminders
- [x] Added/ran automated tests
- [x] Update README and/or examples
- [x] Ran `mvn spotless:apply`
  • Loading branch information
geirsagberg authored Jan 17, 2025
1 parent 463b613 commit 3f54519
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,12 @@ public TaskInstance<T> instance(String id) {

@Override
public TaskInstance<T> instance(String id, T data) {
return instanceBuilder(id).priority(getDefaultPriority()).data(data).build();
return instanceBuilder(id).data(data).build();
}

@Override
public TaskInstance.Builder<T> instanceBuilder(String id) {
return new Builder<>(this.name, id);
return new Builder<T>(this.name, id).priority(getDefaultPriority());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.github.kagkarlsson.scheduler.task;

import static org.junit.jupiter.api.Assertions.*;

import com.github.kagkarlsson.scheduler.task.helper.RecurringTask;
import com.github.kagkarlsson.scheduler.task.helper.Tasks;
import com.github.kagkarlsson.scheduler.task.schedule.Daily;
import java.time.LocalTime;
import org.junit.jupiter.api.Test;

class AbstractTaskTest {

@Test
void test_default_priority_with_data() {
RecurringTask<String> task =
Tasks.recurring("task", new Daily(LocalTime.MIDNIGHT), String.class)
.executeStateful((taskInstance, executionContext) -> "");

assertEquals(task.getDefaultPriority(), task.instance("id", "data").getPriority());
}

@Test
void test_default_priority_without_data() {
RecurringTask<Void> task =
Tasks.recurring("task", new Daily(LocalTime.MIDNIGHT))
.execute((taskInstance, executionContext) -> {});

assertEquals(task.getDefaultPriority(), task.instance("id").getPriority());
}

@Test
void test_default_priority_with_instance_builder() {
RecurringTask<Void> task =
Tasks.recurring("task", new Daily(LocalTime.MIDNIGHT))
.execute((taskInstance, executionContext) -> {});

assertEquals(task.getDefaultPriority(), task.instanceBuilder("id").build().getPriority());
}
}

0 comments on commit 3f54519

Please sign in to comment.