Basic job implementation #5
@@ -1,26 +1,5 @@
|
|||||||
package Job;
|
package Job;
|
||||||
|
|
||||||
public class Job {
|
public interface Job {
|
||||||
protected String name;
|
void performJobAction();
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
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 org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
@@ -26,10 +26,11 @@ class PlayerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void can_change_job() {
|
public void can_change_job() {
|
||||||
var p = defaultPlayer();
|
var p = defaultPlayer();
|
||||||
var job = Job.Miner();
|
|
||||||
assertNull(p.getJob());
|
assertNull(p.getJob());
|
||||||
|
|
||||||
|
var job = new Miner();
|
||||||
p.learnJob(job);
|
p.learnJob(job);
|
||||||
assertEquals(Job.Miner(), p.getJob());
|
assertEquals(new Miner(), p.getJob());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user