diff --git a/.idea/.name b/.idea/.name
index 84788cc..d6a1fc5 100644
--- a/.idea/.name
+++ b/.idea/.name
@@ -1 +1 @@
-InGame.java
\ No newline at end of file
+compiler.xml
\ No newline at end of file
diff --git a/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_0.xml b/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_0.xml
new file mode 100644
index 0000000..2d55c44
--- /dev/null
+++ b/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_0.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__joda_time_joda_time_2_9_2.xml b/.idea/libraries/Maven__joda_time_joda_time_2_9_2.xml
new file mode 100644
index 0000000..74dd7a3
--- /dev/null
+++ b/.idea/libraries/Maven__joda_time_joda_time_2_9_2.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__junit_junit_4_12.xml b/.idea/libraries/Maven__junit_junit_4_12.xml
new file mode 100644
index 0000000..0dae5bd
--- /dev/null
+++ b/.idea/libraries/Maven__junit_junit_4_12.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_commons_commons_imaging_1_0_alpha2.xml b/.idea/libraries/Maven__org_apache_commons_commons_imaging_1_0_alpha2.xml
new file mode 100644
index 0000000..aec92a5
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_commons_commons_imaging_1_0_alpha2.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
new file mode 100644
index 0000000..56c47f4
--- /dev/null
+++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 4258c62..a57100a 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -7,6 +7,7 @@
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..35eb1dd 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
index 0d5877d..1bf331e 100644
--- a/dependency-reduced-pom.xml
+++ b/dependency-reduced-pom.xml
@@ -40,18 +40,81 @@
+
+ io.cucumber
+ cucumber-java
+ 7.17.0
+ test
+
+
+ apiguardian-api
+ org.apiguardian
+
+
+
+
+ io.cucumber
+ cucumber-core
+ 7.17.0
+ test
+
+
+ cucumber-gherkin
+ io.cucumber
+
+
+ cucumber-gherkin-messages
+ io.cucumber
+
+
+ messages
+ io.cucumber
+
+
+ testng-xml-formatter
+ io.cucumber
+
+
+ tag-expressions
+ io.cucumber
+
+
+ cucumber-expressions
+ io.cucumber
+
+
+ datatable
+ io.cucumber
+
+
+ cucumber-plugin
+ io.cucumber
+
+
+ docstring
+ io.cucumber
+
+
+ html-formatter
+ io.cucumber
+
+
+ junit-xml-formatter
+ io.cucumber
+
+
+ ci-environment
+ io.cucumber
+
+
+ apiguardian-api
+ org.apiguardian
+
+
+
-
-
-
- com.github.spotbugs
- spotbugs-maven-plugin
- 4.8.5.0
-
-
-
- 1.81.8
+ 1.8
diff --git a/gs-maven.iml b/gs-maven.iml
new file mode 100644
index 0000000..d26eb5d
--- /dev/null
+++ b/gs-maven.iml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index aa3bda0..d9b037c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
4.0.0
-
+
org.springframeworkgs-mavenjar
@@ -40,6 +40,19 @@
jaxb-api2.3.0
+
+ io.cucumber
+ cucumber-java
+ 7.17.0
+ test
+
+
+ io.cucumber
+ cucumber-core
+ 7.17.0
+ test
+
+
@@ -67,13 +80,4 @@
-
-
-
- com.github.spotbugs
- spotbugs-maven-plugin
- 4.8.5.0
-
-
-
-
+
\ No newline at end of file
diff --git a/src/main/java/program/main/Game.java b/src/main/java/program/main/Game.java
index 62b7058..49f1337 100644
--- a/src/main/java/program/main/Game.java
+++ b/src/main/java/program/main/Game.java
@@ -178,6 +178,7 @@ public ArrayList Pipes() {
return pipes;
}
+
/**
* Futtatja a játék fő ciklusát.
*/
diff --git a/src/main/java/program/main/Main.java b/src/main/java/program/main/Main.java
index e6a69e3..1433c97 100644
--- a/src/main/java/program/main/Main.java
+++ b/src/main/java/program/main/Main.java
@@ -16,12 +16,14 @@
*/
public class Main {
+
public static Game game = new Game();
/**
* a cmd ArrayListben tároljuk el a konzolról beérkezett parancsokat
*/
static ArrayList cmds = new ArrayList<>();
+
/**
* A játékban véletlenszerű események is szerpelnek, ezeket lehet véletlenszerure,
* vagy determinisztikusra állítani a random booleannal
diff --git a/src/main/java/program/main/NomadPipeInteraction.java b/src/main/java/program/main/NomadPipeInteraction.java
index 6fbc8f6..f6d958e 100644
--- a/src/main/java/program/main/NomadPipeInteraction.java
+++ b/src/main/java/program/main/NomadPipeInteraction.java
@@ -82,4 +82,12 @@ public static boolean getendturn(){
public static void setendturn(boolean temp){
endturn = temp;
}
+
+ public Object getSlippery() {
+ return slippery;
+ }
+
+ public Object getEnd() {
+ return end;
+ }
}
diff --git a/src/main/java/program/main/PlumberButtonPanel.java b/src/main/java/program/main/PlumberButtonPanel.java
index 80b9f4d..1d557a5 100644
--- a/src/main/java/program/main/PlumberButtonPanel.java
+++ b/src/main/java/program/main/PlumberButtonPanel.java
@@ -140,4 +140,17 @@ public void actionPerformed(ActionEvent e) {
}
Main.game.gamePanel.repaint();
}
+
+ public Object getpickupnewpipe() {
+ return pickupnewpipe;
+ }
+
+ public Object getpickUpPump() {
+ return pickUpPump;
+ }
+
+ public Object getChangePipeIn() {return changePipeIn;}
+
+ public Object getChangePipeOut() { return changePipeOut;}
+
}
diff --git a/src/main/java/program/main/PlumberPipeInteraction.java b/src/main/java/program/main/PlumberPipeInteraction.java
index 5e0813d..1023a23 100644
--- a/src/main/java/program/main/PlumberPipeInteraction.java
+++ b/src/main/java/program/main/PlumberPipeInteraction.java
@@ -90,4 +90,18 @@ public static boolean getendturn(){
public static void setendturn(boolean temp){
endturn = temp;
}
+
+ public Object getSticky() {
+ return sticky;
+ }
+
+ public Object getDestroy() {return destroy;}
+
+ public Object getRepair(){
+ return repair;
+ }
+
+ public Object getEnd() {
+ return end;
+ }
}
diff --git a/src/main/java/program/main/startMenu.java b/src/main/java/program/main/startMenu.java
index 9b725f0..7e3f452 100644
--- a/src/main/java/program/main/startMenu.java
+++ b/src/main/java/program/main/startMenu.java
@@ -200,5 +200,7 @@ public void actionPerformed(ActionEvent e) {
panel.add(settingsButton);
}
-
+ public JButton getStartButton(){
+ return startButton;
+ }
}
diff --git a/src/test/java/com/stepDefinition/UIChangePipeIn.java b/src/test/java/com/stepDefinition/UIChangePipeIn.java
new file mode 100644
index 0000000..2344a42
--- /dev/null
+++ b/src/test/java/com/stepDefinition/UIChangePipeIn.java
@@ -0,0 +1,38 @@
+package com.stepDefinition;
+
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+import program.main.PlumberButtonPanel;
+import program.main.PlumberPipeInWindow;
+import program.main.State;
+
+import java.awt.event.ActionEvent;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static program.main.Main.game;
+
+public class UIChangePipeIn {
+ private PlumberButtonPanel pbPanel = new PlumberButtonPanel();
+ private PlumberPipeInWindow ppWindow = new PlumberPipeInWindow(3);
+ @When("click on change pipe in")
+ public void click_on_change_pipe_in() {
+ System.out.println("test started");
+ ActionEvent event = new ActionEvent(pbPanel.getChangePipeIn(), ActionEvent.ACTION_PERFORMED, "change pipe in");
+ pbPanel.actionPerformed(event);
+ }
+ @When("select pipe in")
+ public void select_pipe_in() {
+ System.out.println("test started");
+ ppWindow.actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "pipe8"));
+ }
+
+ @Then("check if pipe in has changed")
+ public void check_if_the_pipe_in_has_changed() {
+ System.out.println("test started");
+ assertEquals(game.Fields().get(0).getPipeIn(), game.Pipes().get(7));
+ }
+
+
+
+}
diff --git a/src/test/java/com/stepDefinition/UIChangePipeOut.java b/src/test/java/com/stepDefinition/UIChangePipeOut.java
new file mode 100644
index 0000000..b3e46a8
--- /dev/null
+++ b/src/test/java/com/stepDefinition/UIChangePipeOut.java
@@ -0,0 +1,36 @@
+package com.stepDefinition;
+
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+import program.main.PlumberButtonPanel;
+import program.main.PlumberPipeInWindow;
+import program.main.PlumberPipeOutWindow;
+
+import java.awt.event.ActionEvent;
+
+import static org.junit.Assert.assertEquals;
+import static program.main.Main.game;
+
+public class UIChangePipeOut {
+
+ private PlumberButtonPanel pbPanel = new PlumberButtonPanel();
+ private PlumberPipeOutWindow ppWindow = new PlumberPipeOutWindow(3);
+ @When("click on change pipe out")
+ public void click_on_change_pipe_out() {
+ System.out.println("test started");
+ ActionEvent event = new ActionEvent(pbPanel.getChangePipeOut(), ActionEvent.ACTION_PERFORMED, "change pipe out");
+ pbPanel.actionPerformed(event);
+ }
+ @When("select pipe out")
+ public void select_pipe_out() {
+ System.out.println("test started");
+ ppWindow.actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "pipe1"));
+ }
+
+ @Then("check if pipe out has changed")
+ public void check_if_the_pipe_out_has_changed() {
+ System.out.println("test started");
+ assertEquals(game.Fields().get(3).getPipeOut(), game.Pipes().get(0));
+ }
+
+}
diff --git a/src/test/java/com/stepDefinition/UIDestroyPipeSteps.java b/src/test/java/com/stepDefinition/UIDestroyPipeSteps.java
new file mode 100644
index 0000000..9d87e72
--- /dev/null
+++ b/src/test/java/com/stepDefinition/UIDestroyPipeSteps.java
@@ -0,0 +1,30 @@
+package com.stepDefinition;
+
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+import program.main.PlumberButtonPanel;
+import program.main.PlumberPipeInteraction;
+import program.main.State;
+
+import java.awt.event.ActionEvent;
+
+import static org.junit.Assert.assertEquals;
+import static program.main.Main.game;
+
+public class UIDestroyPipeSteps {
+
+
+ private PlumberPipeInteraction ppInteraction = new PlumberPipeInteraction();
+
+ @When("click on destroy pipe")
+ public void click_on_destroy_pipe() {
+ System.out.println("test started");
+ ActionEvent event = new ActionEvent(ppInteraction.getDestroy(), ActionEvent.ACTION_PERFORMED, "destroy");
+ ppInteraction.actionPerformed(event);
+ }
+ @Then("test if pipe is broken")
+ public void test_if_pipe_is_broken() {
+ System.out.println("test started");
+ assertEquals(game.Pipes().get(3).getState(), State.Broken);
+ }
+}
diff --git a/src/test/java/com/stepDefinition/UIMakePipeStickySteps.java b/src/test/java/com/stepDefinition/UIMakePipeStickySteps.java
new file mode 100644
index 0000000..1df19a6
--- /dev/null
+++ b/src/test/java/com/stepDefinition/UIMakePipeStickySteps.java
@@ -0,0 +1,27 @@
+package com.stepDefinition;
+
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+import program.main.PlumberPipeInteraction;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static program.main.Main.game;
+
+import java.awt.event.ActionEvent;
+
+public class UIMakePipeStickySteps {
+
+ private PlumberPipeInteraction ppInteraction = new PlumberPipeInteraction();
+ @When("click on make sticky")
+ public void click_on_make_sticky() {
+ System.out.println("test started");
+ ActionEvent endButtonEvent = new ActionEvent(ppInteraction.getSticky(), ActionEvent.ACTION_PERFORMED, "sticky");
+ ppInteraction.actionPerformed(endButtonEvent);
+ }
+ @Then("test if pipe is sticky")
+ public void test_if_pipe_is_sticky() {
+ System.out.println("test started");
+ assertTrue(game.Pipes().get(3).GetSticky());
+ }
+}
diff --git a/src/test/java/com/stepDefinition/UINomadMakesPipeSlipperySteps.java b/src/test/java/com/stepDefinition/UINomadMakesPipeSlipperySteps.java
new file mode 100644
index 0000000..070fe86
--- /dev/null
+++ b/src/test/java/com/stepDefinition/UINomadMakesPipeSlipperySteps.java
@@ -0,0 +1,41 @@
+package com.stepDefinition;
+
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+import program.main.NomadMoveWindow;
+import program.main.NomadPipeInteraction;
+import program.main.PlumberMoveWindow;
+import program.main.PlumberPipeInteraction;
+
+import java.awt.event.ActionEvent;
+
+import static org.junit.Assert.assertTrue;
+import static program.main.Main.game;
+
+public class UINomadMakesPipeSlipperySteps {
+ private NomadPipeInteraction npInteraction = new NomadPipeInteraction();
+ private NomadMoveWindow nmWindow = new NomadMoveWindow(3);
+
+ @When("select destination nomad")
+ public void select_destination_nomad() {
+ System.out.println("test started");
+ nmWindow.actionPerformed(new ActionEvent(this,ActionEvent.ACTION_PERFORMED,"pump4"));
+ }
+ @When("click on make slippery")
+ public void click_on_make_slippery() {
+ System.out.println("test started");
+ ActionEvent endButtonEvent = new ActionEvent(npInteraction.getSlippery(), ActionEvent.ACTION_PERFORMED, "slippery");
+ npInteraction.actionPerformed(endButtonEvent);
+ }
+ @When("click on end turn nomad")
+ public void click_on_end_turn_nomad() {
+ System.out.println("test started");
+ ActionEvent endButtonEvent = new ActionEvent(npInteraction.getEnd(), ActionEvent.ACTION_PERFORMED, "end");
+ npInteraction.actionPerformed(endButtonEvent);
+ }
+ @Then("check if the pipe is slippery")
+ public void check_if_the_pipe_is_slippery() {
+ System.out.println("test started");
+ assertTrue(game.Pipes().get(2).GetSlippery());
+ }
+}
diff --git a/src/test/java/com/stepDefinition/UIPickUpNewPipeSteps.java b/src/test/java/com/stepDefinition/UIPickUpNewPipeSteps.java
new file mode 100644
index 0000000..5e53aa0
--- /dev/null
+++ b/src/test/java/com/stepDefinition/UIPickUpNewPipeSteps.java
@@ -0,0 +1,20 @@
+package com.stepDefinition;
+
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+import program.main.PlumberButtonPanel;
+
+import java.awt.event.ActionEvent;
+
+import static org.junit.Assert.assertTrue;
+import static program.main.Main.game;
+
+public class UIPickUpNewPipeSteps {
+ private PlumberButtonPanel pbPanel = new PlumberButtonPanel();
+ @When("click on pick new up pipe")
+ public void click_on_pick_new_up_pipe() {
+ System.out.println("test started");
+ ActionEvent e = new ActionEvent(pbPanel.getpickupnewpipe(), ActionEvent.ACTION_PERFORMED, "pickupnewpipe");
+ pbPanel.actionPerformed(e);
+ }
+}
diff --git a/src/test/java/com/stepDefinition/UIPickUpPipeSteps.java b/src/test/java/com/stepDefinition/UIPickUpPipeSteps.java
new file mode 100644
index 0000000..6d8e346
--- /dev/null
+++ b/src/test/java/com/stepDefinition/UIPickUpPipeSteps.java
@@ -0,0 +1,47 @@
+package com.stepDefinition;
+
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import org.junit.Assert;
+import program.main.Player;
+import io.cucumber.java.en.When;
+import program.main.*;
+
+import java.awt.event.ActionEvent;
+
+import static org.junit.Assert.assertTrue;
+import static program.main.Main.game;
+import static program.main.State.Working;
+import static program.main.State.Broken;
+import static program.main.Main.game;
+import static program.main.State.Working;
+import static program.main.State.Broken;
+import static org.junit.Assert.assertEquals;
+
+public class UIPickUpPipeSteps {
+
+ private PlumberButtonPanel pbPanel = new PlumberButtonPanel();
+ private PlumberPickUpWindow ppuWindow = new PlumberPickUpWindow(3);
+ @When("click on pick up pipe")
+ public void click_on_pick_up_pipe() {
+ System.out.println("test started");
+ ActionEvent e = new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "pickUpPipe");
+ pbPanel.actionPerformed(e);
+ }
+ @When("select a pipe")
+ public void select_a_pipe() {
+ System.out.println("test started");
+ ppuWindow.actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "pipe7"));
+ }
+ @When("check if plumber has pipe in pocket")
+ public void check_if_plumber_has_pipe_in_pocket() {
+ System.out.println("test started");
+ assertTrue(game.Plumbers().get(0).getPipeInPocket() != null);
+ }
+ @Then("check if the pipe is no more connected to the previous location")
+ public void check_if_the_pipe_is_no_more_connected_to_the_previous_location() {
+ System.out.println("test started");
+ assertTrue(!game.Plumbers().get(0).getPosition().getConnectedPipes().contains(game.Plumbers().get(0).getPipeInPocket()));
+ }
+
+}
diff --git a/src/test/java/com/stepDefinition/UIPickUpPumpSteps.java b/src/test/java/com/stepDefinition/UIPickUpPumpSteps.java
new file mode 100644
index 0000000..1199ffd
--- /dev/null
+++ b/src/test/java/com/stepDefinition/UIPickUpPumpSteps.java
@@ -0,0 +1,35 @@
+package com.stepDefinition;
+
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import org.junit.Assert;
+import program.main.Player;
+import io.cucumber.java.en.When;
+import program.main.*;
+
+import java.awt.event.ActionEvent;
+
+import static org.junit.Assert.assertTrue;
+import static program.main.Main.game;
+import static program.main.State.Working;
+import static program.main.State.Broken;
+import static program.main.Main.game;
+import static program.main.State.Working;
+import static program.main.State.Broken;
+import static org.junit.Assert.assertEquals;
+
+public class UIPickUpPumpSteps {
+ private PlumberButtonPanel pbPanel = new PlumberButtonPanel();
+ @When("click on pick up pump")
+ public void click_on_pick_up_pump() {
+ System.out.println("test started");
+ ActionEvent e = new ActionEvent(pbPanel.getpickUpPump(), ActionEvent.ACTION_PERFORMED, "pickUpPump");
+ pbPanel.actionPerformed(e);
+ }
+ @Then("test if he really has a pump")
+ public void test_if_he_really_has_a_pump() {
+ System.out.println("test started");
+ assertTrue(Controller.getCurrentPlumber().getPumpInPocket() != null);
+
+ }
+}
diff --git a/src/test/java/com/stepDefinition/UIPlumberMovesSteps.java b/src/test/java/com/stepDefinition/UIPlumberMovesSteps.java
new file mode 100644
index 0000000..5439d5e
--- /dev/null
+++ b/src/test/java/com/stepDefinition/UIPlumberMovesSteps.java
@@ -0,0 +1,48 @@
+package com.stepDefinition;
+
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import org.junit.Assert;
+import program.main.Player;
+import io.cucumber.java.en.When;
+import program.main.*;
+
+import java.awt.event.ActionEvent;
+
+import static org.junit.Assert.assertTrue;
+import static program.main.Main.game;
+import static program.main.State.Working;
+import static program.main.State.Broken;
+import static program.main.Main.game;
+import static program.main.State.Working;
+import static program.main.State.Broken;
+import static org.junit.Assert.assertEquals;
+
+public class UIPlumberMovesSteps {
+ private PlumberButtonPanel pbPanel = new PlumberButtonPanel();
+ private PlumberMoveWindow pmWindow = new PlumberMoveWindow(3);
+
+ private PlumberPipeInteraction ppInteraction = new PlumberPipeInteraction();
+ @When("click on move button")
+ public void click_on_move_button() {
+ System.out.println("test started");
+ ActionEvent e = new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "move");
+ pbPanel.actionPerformed(e);
+ }
+ @When("select destination")
+ public void select_destination() {
+ System.out.println("test started");
+ pmWindow.actionPerformed(new ActionEvent(this,ActionEvent.ACTION_PERFORMED,"pump2"));
+ }
+ @When("click on end turn")
+ public void click_on_end_turn() {
+ System.out.println("test started");
+ ActionEvent endButtonEvent = new ActionEvent(ppInteraction.getEnd(), ActionEvent.ACTION_PERFORMED, "end");
+ ppInteraction.actionPerformed(endButtonEvent);
+ }
+ @Then("check new position")
+ public void check_new_position() {
+ System.out.println("test started");
+ assertEquals(game.Plumbers().get(0).getPosition(), game.Fields().get(3));
+ }
+}
diff --git a/src/test/java/com/stepDefinition/UIRepairBrokenPipeSteps.java b/src/test/java/com/stepDefinition/UIRepairBrokenPipeSteps.java
new file mode 100644
index 0000000..fdfc3fc
--- /dev/null
+++ b/src/test/java/com/stepDefinition/UIRepairBrokenPipeSteps.java
@@ -0,0 +1,27 @@
+package com.stepDefinition;
+
+import io.cucumber.java.en.Then;
+import io.cucumber.java.en.When;
+import program.main.PlumberPipeInteraction;
+import program.main.State;
+
+import java.awt.event.ActionEvent;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static program.main.Main.game;
+
+public class UIRepairBrokenPipeSteps {
+ private PlumberPipeInteraction ppInteraction = new PlumberPipeInteraction();
+ @When("click on repair pipe")
+ public void click_on_repair_pipe() {
+ System.out.println("test started");
+ ActionEvent endButtonEvent = new ActionEvent(ppInteraction.getRepair(), ActionEvent.ACTION_PERFORMED, "repair");
+ ppInteraction.actionPerformed(endButtonEvent);
+ }
+ @Then("test if pipe is fixed")
+ public void test_if_pipe_is_fixed() {
+ System.out.println("test started");
+ assertEquals(game.Pipes().get(3).getState(), State.Working);
+ }
+}
diff --git a/src/test/java/com/stepDefinition/UIStartSteps.java b/src/test/java/com/stepDefinition/UIStartSteps.java
new file mode 100644
index 0000000..c66504b
--- /dev/null
+++ b/src/test/java/com/stepDefinition/UIStartSteps.java
@@ -0,0 +1,39 @@
+package com.stepDefinition;
+
+import io.cucumber.java.en.Given;
+import io.cucumber.java.en.Then;
+import org.junit.Assert;
+import program.main.Player;
+import io.cucumber.java.en.When;
+import program.main.*;
+
+import java.awt.event.ActionEvent;
+
+import static program.main.Main.game;
+import static program.main.State.Working;
+import static program.main.State.Broken;
+import static program.main.Main.game;
+import static program.main.State.Working;
+import static program.main.State.Broken;
+import static org.junit.Assert.assertEquals;
+
+public class UIStartSteps {
+ private startMenu startMenu;
+ @Given("game window starts")
+ public void game_window_starts() {
+ System.out.println("test started");
+ Player.setGame(game);
+ startMenu = new startMenu();
+ }
+ @When("click on start")
+ public void click_on_start() {
+ System.out.println("test started");
+ startMenu.getStartButton().getActionListeners()[0].actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "Start"));
+ }
+
+ @Then("game starts")
+ public void game_starts() {
+ System.out.println("test started");
+ Assert.assertTrue(startMenu.getstart());
+ }
+}
diff --git a/src/test/java/program/GreeterTest.java b/src/test/java/program/GreeterTest.java
deleted file mode 100644
index 63f5f95..0000000
--- a/src/test/java/program/GreeterTest.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*package program;
-
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-
-import program.main.Greeter;
-
-public class GreeterTest {
-
- private Greeter greeter = new Greeter();
-
- @Test
- public void greeterSaysHello() {
- assertThat(greeter.sayHello(), containsString("Hello"));
- }
-
-}*/
\ No newline at end of file
diff --git a/src/test/resources/Features/UIChangePipeIn.feature b/src/test/resources/Features/UIChangePipeIn.feature
new file mode 100644
index 0000000..10b190f
--- /dev/null
+++ b/src/test/resources/Features/UIChangePipeIn.feature
@@ -0,0 +1,11 @@
+Feature: Tests a plumber changing the input of a pipe
+
+ Scenario: A plumber moves from the starting pump to a neighboring one, and changes the pipe's input in-between
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on change pipe in
+ And select pipe in
+ And click on end turn
+ Then check if pipe in has changed
\ No newline at end of file
diff --git a/src/test/resources/Features/UIChangePipeOut.feature b/src/test/resources/Features/UIChangePipeOut.feature
new file mode 100644
index 0000000..f15d543
--- /dev/null
+++ b/src/test/resources/Features/UIChangePipeOut.feature
@@ -0,0 +1,37 @@
+Feature: Tests a plumber changing the output of a pipe
+
+ Scenario: A plumber moves from the starting pump to a neighboring one, and changes the pipe's output in-between
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination nomad
+ And click on end turn nomad
+ And click on move button
+ And select destination nomad
+ And click on end turn nomad
+ And click on move button
+ And select destination nomad
+ And click on end turn nomad
+ And click on move button
+ And select destination nomad
+ And click on end turn nomad
+ And click on move button
+ And select destination
+ And click on change pipe out
+ And select pipe out
+ And click on end turn
+ Then check if pipe out has changed
\ No newline at end of file
diff --git a/src/test/resources/Features/UIDestroyPipe.feature b/src/test/resources/Features/UIDestroyPipe.feature
new file mode 100644
index 0000000..ecfec0d
--- /dev/null
+++ b/src/test/resources/Features/UIDestroyPipe.feature
@@ -0,0 +1,12 @@
+Feature: Tests a plumber destroying a pipe
+
+ Scenario: A plumber moves from the starting pump to a neighboring one, and destroys the pipe in-between
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on move button
+ And select destination
+ And click on destroy pipe
+ And click on end turn
+ Then test if pipe is broken
diff --git a/src/test/resources/Features/UIMakePipeSticky.feature b/src/test/resources/Features/UIMakePipeSticky.feature
new file mode 100644
index 0000000..f35c0ea
--- /dev/null
+++ b/src/test/resources/Features/UIMakePipeSticky.feature
@@ -0,0 +1,12 @@
+Feature: Test if a player can make a pipe sticky.
+
+ Scenario: Plumber stands on a pump then moves to the other pump and makes the pipe between them sticky.
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on move button
+ And select destination
+ And click on make sticky
+ And click on end turn
+ Then test if pipe is sticky
\ No newline at end of file
diff --git a/src/test/resources/Features/UINomadMakesPipeSlippery.feature b/src/test/resources/Features/UINomadMakesPipeSlippery.feature
new file mode 100644
index 0000000..ddb81b4
--- /dev/null
+++ b/src/test/resources/Features/UINomadMakesPipeSlippery.feature
@@ -0,0 +1,24 @@
+Feature: Nomad makes pipe slippery.
+
+ Scenario: First the plumbers move, then nomad stands on a pump then moves to the other pump and makes the pipe between them slippery.
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination nomad
+ And click on make slippery
+ And click on end turn nomad
+ Then check if the pipe is slippery
\ No newline at end of file
diff --git a/src/test/resources/Features/UIPickUpNewPipe.feature b/src/test/resources/Features/UIPickUpNewPipe.feature
new file mode 100644
index 0000000..db3e284
--- /dev/null
+++ b/src/test/resources/Features/UIPickUpNewPipe.feature
@@ -0,0 +1,9 @@
+Feature: Test is plumber can pick up a new pipe.
+
+ Scenario: Plumber stands on a pump and picks up a new pipe.
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on pick new up pipe
+ Then check if plumber has pipe in pocket
\ No newline at end of file
diff --git a/src/test/resources/Features/UIPickUpPipe.feature b/src/test/resources/Features/UIPickUpPipe.feature
new file mode 100644
index 0000000..cc7deab
--- /dev/null
+++ b/src/test/resources/Features/UIPickUpPipe.feature
@@ -0,0 +1,11 @@
+Feature: Test is plumber can pick up an existing pipe.
+
+ Scenario: Plumber stands on a pump and picks up an incoming pipe.
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on pick up pipe
+ And select a pipe
+ And check if plumber has pipe in pocket
+ Then check if the pipe is no more connected to the previous location
\ No newline at end of file
diff --git a/src/test/resources/Features/UIPickUpPump.feature b/src/test/resources/Features/UIPickUpPump.feature
new file mode 100644
index 0000000..281146f
--- /dev/null
+++ b/src/test/resources/Features/UIPickUpPump.feature
@@ -0,0 +1,9 @@
+Feature: plumber picks up a pump
+
+ Scenario: test if he really has a pump in his pocket
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on pick up pump
+ Then test if he really has a pump
\ No newline at end of file
diff --git a/src/test/resources/Features/UIPlumberMoves.feature b/src/test/resources/Features/UIPlumberMoves.feature
new file mode 100644
index 0000000..005dd5b
--- /dev/null
+++ b/src/test/resources/Features/UIPlumberMoves.feature
@@ -0,0 +1,11 @@
+Feature: Player moves from pump to pump.
+
+ Scenario: Test if player's position changed.
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on move button
+ And select destination
+ And click on end turn
+ Then check new position
\ No newline at end of file
diff --git a/src/test/resources/Features/UIRepairBrokenPipe.feature b/src/test/resources/Features/UIRepairBrokenPipe.feature
new file mode 100644
index 0000000..57510c4
--- /dev/null
+++ b/src/test/resources/Features/UIRepairBrokenPipe.feature
@@ -0,0 +1,17 @@
+Feature: Tests a plumber repairing a pipe.
+
+ Scenario: A plumber moves from the starting pump to a neighboring one, and destroys the pipe in-between, then an other plumber moves and repairs that pipe.
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on move button
+ And select destination
+ And click on destroy pipe
+ And click on end turn
+ And test if pipe is broken
+ And click on move button
+ And select destination
+ And click on repair pipe
+ And click on end turn
+ Then test if pipe is fixed
diff --git a/src/test/resources/Features/UIstart.feature b/src/test/resources/Features/UIstart.feature
new file mode 100644
index 0000000..abdd877
--- /dev/null
+++ b/src/test/resources/Features/UIstart.feature
@@ -0,0 +1,7 @@
+Feature: Test is UI starts well.
+
+ Scenario: Test is UI starts well.
+
+ Given game window starts
+ When click on start
+ Then game starts
\ No newline at end of file
diff --git a/target/classes/program/main/Game.class b/target/classes/program/main/Game.class
index 4aacc6e..04e3d5d 100644
Binary files a/target/classes/program/main/Game.class and b/target/classes/program/main/Game.class differ
diff --git a/target/classes/program/main/Main.class b/target/classes/program/main/Main.class
index 08bbae0..e2ae227 100644
Binary files a/target/classes/program/main/Main.class and b/target/classes/program/main/Main.class differ
diff --git a/target/classes/program/main/NomadPipeInteraction.class b/target/classes/program/main/NomadPipeInteraction.class
index 79de03c..7945e72 100644
Binary files a/target/classes/program/main/NomadPipeInteraction.class and b/target/classes/program/main/NomadPipeInteraction.class differ
diff --git a/target/classes/program/main/PlumberButtonPanel.class b/target/classes/program/main/PlumberButtonPanel.class
index 932110b..1abd67c 100644
Binary files a/target/classes/program/main/PlumberButtonPanel.class and b/target/classes/program/main/PlumberButtonPanel.class differ
diff --git a/target/classes/program/main/PlumberPipeInteraction.class b/target/classes/program/main/PlumberPipeInteraction.class
index 14a185d..e6fc9ba 100644
Binary files a/target/classes/program/main/PlumberPipeInteraction.class and b/target/classes/program/main/PlumberPipeInteraction.class differ
diff --git a/target/classes/program/main/startMenu.class b/target/classes/program/main/startMenu.class
index 766fca7..55b2082 100644
Binary files a/target/classes/program/main/startMenu.class and b/target/classes/program/main/startMenu.class differ
diff --git a/target/gs-maven-0.1.0-shaded.jar b/target/gs-maven-0.1.0-shaded.jar
new file mode 100644
index 0000000..26591b4
Binary files /dev/null and b/target/gs-maven-0.1.0-shaded.jar differ
diff --git a/target/gs-maven-0.1.0.jar b/target/gs-maven-0.1.0.jar
index ea41998..26591b4 100644
Binary files a/target/gs-maven-0.1.0.jar and b/target/gs-maven-0.1.0.jar differ
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index f4edf3b..65ecb0d 100644
--- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -1,35 +1,33 @@
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/GameWindow.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Plumber.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/NomadPipeInteraction.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Game.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/HelloWorld.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/startMenu.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/InGame.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Nomad.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/ImagePanel.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Controller.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/NomadMoveWindow.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Main.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/State.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/PlumberPickUpWindow.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/PlumberPipeInWindow.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/NomadButtonPanel.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/GamePanel.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/PlumberButtonPanel.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/NomadPipeOutWindow.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Pipe.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Cistern.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/LoadSave.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/restart_menu.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Field.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Round.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/PlumberPipeOutWindow.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/PlumberPipeInteraction.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Cactus.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Greeter.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Pump.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Spring.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/settings.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/PlumberMoveWindow.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/Player.java
-/Users/macbook/Documents/iet-hf-2024-favagok/src/main/java/program/main/NomadPipeInWindow.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\PlumberPipeInteraction.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\LoadSave.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\GameWindow.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\startMenu.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\Nomad.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\NomadMoveWindow.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\PlumberPipeInWindow.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\Main.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\Pipe.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\Controller.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\GamePanel.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\PlumberMoveWindow.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\Field.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\Plumber.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\settings.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\Player.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\NomadPipeInteraction.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\State.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\Cistern.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\Round.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\InGame.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\PlumberPickUpWindow.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\Game.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\Spring.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\ImagePanel.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\NomadPipeOutWindow.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\Pump.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\restart_menu.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\NomadPipeInWindow.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\PlumberButtonPanel.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\PlumberPipeOutWindow.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\NomadButtonPanel.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\main\java\program\main\Cactus.java
diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
index fd5538d..ce9713b 100644
--- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
+++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -1 +1,6 @@
-/Users/macbook/Documents/iet-hf-2024-favagok/src/test/java/program/GreeterTest.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\test\java\com\stepDefinition\UIPickUpNewPipeSteps.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\test\java\com\stepDefinition\UIPlumberMovesSteps.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\test\java\com\stepDefinition\UIStartSteps.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\test\java\com\stepDefinition\UIPickUpPipeSteps.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\test\java\com\stepDefinition\UIMakePipeStickSteps.java
+C:\Users\Felhasznalo\Documents\Egytemem\6. felev\IET\iet-hf-2024-favagok\src\test\java\com\stepDefinition\UIPickUpPumpSteps.java
diff --git a/target/original-gs-maven-0.1.0.jar b/target/original-gs-maven-0.1.0.jar
index ea41998..58645c8 100644
Binary files a/target/original-gs-maven-0.1.0.jar and b/target/original-gs-maven-0.1.0.jar differ
diff --git a/target/test-classes/Features/UIChangePipeIn.feature b/target/test-classes/Features/UIChangePipeIn.feature
new file mode 100644
index 0000000..10b190f
--- /dev/null
+++ b/target/test-classes/Features/UIChangePipeIn.feature
@@ -0,0 +1,11 @@
+Feature: Tests a plumber changing the input of a pipe
+
+ Scenario: A plumber moves from the starting pump to a neighboring one, and changes the pipe's input in-between
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on change pipe in
+ And select pipe in
+ And click on end turn
+ Then check if pipe in has changed
\ No newline at end of file
diff --git a/target/test-classes/Features/UIChangePipeOut.feature b/target/test-classes/Features/UIChangePipeOut.feature
new file mode 100644
index 0000000..f15d543
--- /dev/null
+++ b/target/test-classes/Features/UIChangePipeOut.feature
@@ -0,0 +1,37 @@
+Feature: Tests a plumber changing the output of a pipe
+
+ Scenario: A plumber moves from the starting pump to a neighboring one, and changes the pipe's output in-between
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination nomad
+ And click on end turn nomad
+ And click on move button
+ And select destination nomad
+ And click on end turn nomad
+ And click on move button
+ And select destination nomad
+ And click on end turn nomad
+ And click on move button
+ And select destination nomad
+ And click on end turn nomad
+ And click on move button
+ And select destination
+ And click on change pipe out
+ And select pipe out
+ And click on end turn
+ Then check if pipe out has changed
\ No newline at end of file
diff --git a/target/test-classes/Features/UIDestroyPipe.feature b/target/test-classes/Features/UIDestroyPipe.feature
new file mode 100644
index 0000000..ecfec0d
--- /dev/null
+++ b/target/test-classes/Features/UIDestroyPipe.feature
@@ -0,0 +1,12 @@
+Feature: Tests a plumber destroying a pipe
+
+ Scenario: A plumber moves from the starting pump to a neighboring one, and destroys the pipe in-between
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on move button
+ And select destination
+ And click on destroy pipe
+ And click on end turn
+ Then test if pipe is broken
diff --git a/target/test-classes/Features/UIMakePipeSticky.feature b/target/test-classes/Features/UIMakePipeSticky.feature
new file mode 100644
index 0000000..f35c0ea
--- /dev/null
+++ b/target/test-classes/Features/UIMakePipeSticky.feature
@@ -0,0 +1,12 @@
+Feature: Test if a player can make a pipe sticky.
+
+ Scenario: Plumber stands on a pump then moves to the other pump and makes the pipe between them sticky.
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on move button
+ And select destination
+ And click on make sticky
+ And click on end turn
+ Then test if pipe is sticky
\ No newline at end of file
diff --git a/target/test-classes/Features/UINomadMakesPipeSlippery.feature b/target/test-classes/Features/UINomadMakesPipeSlippery.feature
new file mode 100644
index 0000000..ddb81b4
--- /dev/null
+++ b/target/test-classes/Features/UINomadMakesPipeSlippery.feature
@@ -0,0 +1,24 @@
+Feature: Nomad makes pipe slippery.
+
+ Scenario: First the plumbers move, then nomad stands on a pump then moves to the other pump and makes the pipe between them slippery.
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination
+ And click on end turn
+ And click on move button
+ And select destination nomad
+ And click on make slippery
+ And click on end turn nomad
+ Then check if the pipe is slippery
\ No newline at end of file
diff --git a/target/test-classes/Features/UIPickUpNewPipe.feature b/target/test-classes/Features/UIPickUpNewPipe.feature
new file mode 100644
index 0000000..db3e284
--- /dev/null
+++ b/target/test-classes/Features/UIPickUpNewPipe.feature
@@ -0,0 +1,9 @@
+Feature: Test is plumber can pick up a new pipe.
+
+ Scenario: Plumber stands on a pump and picks up a new pipe.
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on pick new up pipe
+ Then check if plumber has pipe in pocket
\ No newline at end of file
diff --git a/target/test-classes/Features/UIPickUpPipe.feature b/target/test-classes/Features/UIPickUpPipe.feature
new file mode 100644
index 0000000..cc7deab
--- /dev/null
+++ b/target/test-classes/Features/UIPickUpPipe.feature
@@ -0,0 +1,11 @@
+Feature: Test is plumber can pick up an existing pipe.
+
+ Scenario: Plumber stands on a pump and picks up an incoming pipe.
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on pick up pipe
+ And select a pipe
+ And check if plumber has pipe in pocket
+ Then check if the pipe is no more connected to the previous location
\ No newline at end of file
diff --git a/target/test-classes/Features/UIPickUpPump.feature b/target/test-classes/Features/UIPickUpPump.feature
new file mode 100644
index 0000000..281146f
--- /dev/null
+++ b/target/test-classes/Features/UIPickUpPump.feature
@@ -0,0 +1,9 @@
+Feature: plumber picks up a pump
+
+ Scenario: test if he really has a pump in his pocket
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on pick up pump
+ Then test if he really has a pump
\ No newline at end of file
diff --git a/target/test-classes/Features/UIPlumberMoves.feature b/target/test-classes/Features/UIPlumberMoves.feature
new file mode 100644
index 0000000..005dd5b
--- /dev/null
+++ b/target/test-classes/Features/UIPlumberMoves.feature
@@ -0,0 +1,11 @@
+Feature: Player moves from pump to pump.
+
+ Scenario: Test if player's position changed.
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on move button
+ And select destination
+ And click on end turn
+ Then check new position
\ No newline at end of file
diff --git a/target/test-classes/Features/UIRepairBrokenPipe.feature b/target/test-classes/Features/UIRepairBrokenPipe.feature
new file mode 100644
index 0000000..57510c4
--- /dev/null
+++ b/target/test-classes/Features/UIRepairBrokenPipe.feature
@@ -0,0 +1,17 @@
+Feature: Tests a plumber repairing a pipe.
+
+ Scenario: A plumber moves from the starting pump to a neighboring one, and destroys the pipe in-between, then an other plumber moves and repairs that pipe.
+
+ Given game window starts
+ When click on start
+ And game starts
+ And click on move button
+ And select destination
+ And click on destroy pipe
+ And click on end turn
+ And test if pipe is broken
+ And click on move button
+ And select destination
+ And click on repair pipe
+ And click on end turn
+ Then test if pipe is fixed
diff --git a/target/test-classes/Features/UIstart.feature b/target/test-classes/Features/UIstart.feature
new file mode 100644
index 0000000..abdd877
--- /dev/null
+++ b/target/test-classes/Features/UIstart.feature
@@ -0,0 +1,7 @@
+Feature: Test is UI starts well.
+
+ Scenario: Test is UI starts well.
+
+ Given game window starts
+ When click on start
+ Then game starts
\ No newline at end of file
diff --git a/target/test-classes/com/stepDefinition/ChangePipeInSteps_bad.class b/target/test-classes/com/stepDefinition/ChangePipeInSteps_bad.class
new file mode 100644
index 0000000..975d2c8
Binary files /dev/null and b/target/test-classes/com/stepDefinition/ChangePipeInSteps_bad.class differ
diff --git a/target/test-classes/com/stepDefinition/UIChangePipeIn.class b/target/test-classes/com/stepDefinition/UIChangePipeIn.class
new file mode 100644
index 0000000..1e191e5
Binary files /dev/null and b/target/test-classes/com/stepDefinition/UIChangePipeIn.class differ
diff --git a/target/test-classes/com/stepDefinition/UIChangePipeOut.class b/target/test-classes/com/stepDefinition/UIChangePipeOut.class
new file mode 100644
index 0000000..2bdf0a6
Binary files /dev/null and b/target/test-classes/com/stepDefinition/UIChangePipeOut.class differ
diff --git a/target/test-classes/com/stepDefinition/UIDestroyPipeSteps.class b/target/test-classes/com/stepDefinition/UIDestroyPipeSteps.class
new file mode 100644
index 0000000..a4202fa
Binary files /dev/null and b/target/test-classes/com/stepDefinition/UIDestroyPipeSteps.class differ
diff --git a/target/test-classes/com/stepDefinition/UIMakePipeStickySteps.class b/target/test-classes/com/stepDefinition/UIMakePipeStickySteps.class
new file mode 100644
index 0000000..8212f64
Binary files /dev/null and b/target/test-classes/com/stepDefinition/UIMakePipeStickySteps.class differ
diff --git a/target/test-classes/com/stepDefinition/UINomadMakesPipeSlipperySteps.class b/target/test-classes/com/stepDefinition/UINomadMakesPipeSlipperySteps.class
new file mode 100644
index 0000000..8b5f9e4
Binary files /dev/null and b/target/test-classes/com/stepDefinition/UINomadMakesPipeSlipperySteps.class differ
diff --git a/target/test-classes/com/stepDefinition/UIPickUpNewPipeSteps.class b/target/test-classes/com/stepDefinition/UIPickUpNewPipeSteps.class
new file mode 100644
index 0000000..378a72a
Binary files /dev/null and b/target/test-classes/com/stepDefinition/UIPickUpNewPipeSteps.class differ
diff --git a/target/test-classes/com/stepDefinition/UIPickUpPipeSteps.class b/target/test-classes/com/stepDefinition/UIPickUpPipeSteps.class
new file mode 100644
index 0000000..7bdc9a8
Binary files /dev/null and b/target/test-classes/com/stepDefinition/UIPickUpPipeSteps.class differ
diff --git a/target/test-classes/com/stepDefinition/UIPickUpPumpSteps.class b/target/test-classes/com/stepDefinition/UIPickUpPumpSteps.class
new file mode 100644
index 0000000..371f01d
Binary files /dev/null and b/target/test-classes/com/stepDefinition/UIPickUpPumpSteps.class differ
diff --git a/target/test-classes/com/stepDefinition/UIPlumberMovesSteps.class b/target/test-classes/com/stepDefinition/UIPlumberMovesSteps.class
new file mode 100644
index 0000000..5ed0d33
Binary files /dev/null and b/target/test-classes/com/stepDefinition/UIPlumberMovesSteps.class differ
diff --git a/target/test-classes/com/stepDefinition/UIRepairBrokenPipeSteps.class b/target/test-classes/com/stepDefinition/UIRepairBrokenPipeSteps.class
new file mode 100644
index 0000000..7d405bd
Binary files /dev/null and b/target/test-classes/com/stepDefinition/UIRepairBrokenPipeSteps.class differ
diff --git a/target/test-classes/com/stepDefinition/UIStartSteps.class b/target/test-classes/com/stepDefinition/UIStartSteps.class
new file mode 100644
index 0000000..a7b93e9
Binary files /dev/null and b/target/test-classes/com/stepDefinition/UIStartSteps.class differ