Basic job implementation #5

Merged
erns6604 merged 10 commits from player into main 2025-10-17 10:06:38 +02:00
3 changed files with 36 additions and 26 deletions
Showing only changes of commit b98392813b - Show all commits

View File

@@ -1,26 +1,5 @@
package Job;
public class Job {
protected String name;
public Job(String name) {
this.name = name;
}
public static Job Miner() {
return new Job("Miner");
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Job job = (Job) o;
return name.equals(job.name);
}
@Override
public int hashCode() {
return name.hashCode();
}
public interface Job {
void performJobAction();
}

View File

@@ -0,0 +1,30 @@
package Job;
import java.util.Objects;
public class Miner implements Job {
private final String jobName = "Miner";
public Miner() {}
@Override
public void performJobAction() {
System.out.println("Dig...");
}
@Override
public String toString() {
return "Miner";
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
return o != null && getClass() == o.getClass();
}
@Override
public int hashCode() {
return Objects.hash(jobName);
}
}

View File

@@ -1,4 +1,4 @@
import Job.Job;
import Job.Miner;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
@@ -26,10 +26,11 @@ class PlayerTest {
@Test
public void can_change_job() {
var p = defaultPlayer();
var job = Job.Miner();
assertNull(p.getJob());
var job = new Miner();
p.learnJob(job);
assertEquals(Job.Miner(), p.getJob());
assertEquals(new Miner(), p.getJob());
}