Basic job implementation #5
@@ -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();
|
||||
}
|
||||
|
||||
30
src/main/java/Job/Miner.java
Normal file
30
src/main/java/Job/Miner.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user