diff --git "a/doc/BDD tesztek k\303\251sz\303\255t\303\251se - Cucumber.md" "b/doc/BDD tesztek k\303\251sz\303\255t\303\251se - Cucumber.md" new file mode 100644 index 0000000..3fee571 --- /dev/null +++ "b/doc/BDD tesztek k\303\251sz\303\255t\303\251se - Cucumber.md" @@ -0,0 +1,48 @@ +# BDD tesztek - Cucumber + +## Szerelő javít tesztek + +### Cső megjavítása +- Van egy elromlott cső, amin áll egy szerelő, és ezt megpróbálja megjavítani. +- Ezután a csőnek megjavítottnak kell lennie. + +### Pumpa megjavítása +- Van egy elromlott pumpa, amin áll egy szerelő, és ezt megpróbálja megjavítani. +- Ezután a pumpának megjavítottnak kell lennie. + +## Szabotőr akciók egy csövön tesztek + +### Cső elrontása +- Van egy nem elromlott cső, amin áll egy szabotőr, és ezt megpróbálja elrontani. +- Ezután a csőnek elromlottnak kell lennie. + +### Cső csúszóssá tevése +- Van egy cső, amin áll egy szabotőr, és ezt megpróbálja csúszóssá tenni. +- Ezután a csőnek csúszósnak kell lennie. + +### Cső ragadóssá tevése +- Van egy cső, amin áll egy szabotőr, és ezt megpróbálja ragadóssá tenni. +- Ezután a csőnek ragadósnak kell lennie. + +## Szerelő akciók egy ciszternán tesztek + +### Cső elvétele +- Van egy ciszterna, amin áll egy szerelő, és megpróbál elvenni egy csövet a ciszternából. +- Ezután a ciszternában már csak 4 csőnek kell lennie, és a szerelőnél, kell aktív elemnek lennie. + +### Pumpa elvétele +- Van egy ciszterna, amin áll egy szerelő, és megpróbál elvenni egy pumpát a ciszternából. +- Ezután a ciszternában már nem szabad pumpának lennie, és a szerelőnél, kell aktív elemnek lennie. + +## Játékosok mozgatása tesztek + +### Egy játékos egy csőre lép +- Egy szerelő a kezdőpozíciójában, éppen egy ciszternán áll. Tudván, hogy jobbra tőle egy üres cső található, átlép arra a mezőre. +- Az **assertEquals** összehasonlító függvénnyel ellenőrzi a teszt végén, hogy a szerelő jelenlegi mezője, amelyen tartózkodik valóban megváltozott-e a szomszédos csőre, illetve a szomszédos csövön beállítódik-e, hogy rajta tartózkodik a szerelő. + +### Két játékos egy azonos pumpára lép +- Egy szerelő a kezdőpozíciójában, éppen egy ciszternán áll. Emellett egy másik játékost, a teszt esetében egy szabotőrt a ciszternától kettővel odébb lévő csőre van elhelyezve. A ciszterna és a cső közé egy pumpa lett letéve, amelyen egyszerre több játékos is tartózkodhat. Mindkét játékos átlép a mezőjükről a szomszédos pumpára. +- Az **assertEquals** összehasonlító függvénnyel ellenőrzi a teszt végén, hogy mind a szerelő és mind a szabötőr jelenlegi mezője, amelyen tartózkodnak valóban megváltozott-e a szomszédos pumpára, illetve a szomszédos pumpán beállítódik-e, hogy rajta tartózkodik a mindkét játékos. + +## Összefoglalás +A szerintünk átfogó és részletes tesztek megírása után végre is hajtottuk őket, és mindegyikre az elvárt viselkedést kaptuk. A legfontosabb funkciókat többnyire sikerült letesztelni, azonban nehézségeket okozott pár helyen a Getter/Setter függvények hiánya, amely miatt pár esetet nem lehetett/nehezebb volt megvizsgálni. De a végrehajtott tesztek alapján a program helyesen funkcionálónak tűnik. \ No newline at end of file diff --git a/pom.xml b/pom.xml index 119baba..b470bfb 100644 --- a/pom.xml +++ b/pom.xml @@ -1,7 +1,7 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - + 1.0-SNAPSHOT @@ -35,22 +35,40 @@ UTF-8 + + + + io.cucumber + cucumber-java + 7.17.0 + test + + + + + io.cucumber + cucumber-junit + 7.17.0 + test + + + - - maven-assembly-plugin - - - - Main - - - - jar-with-dependencies - - + + maven-assembly-plugin + + + + Main + + + + jar-with-dependencies + + - + org.apache.maven.plugins maven-resources-plugin diff --git a/src/main/java/ActionHandler.java b/src/main/java/drukmakoriSzerelok/ActionHandler.java similarity index 99% rename from src/main/java/ActionHandler.java rename to src/main/java/drukmakoriSzerelok/ActionHandler.java index 8432326..82f940c 100644 --- a/src/main/java/ActionHandler.java +++ b/src/main/java/drukmakoriSzerelok/ActionHandler.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.util.*; /** diff --git a/src/main/java/Active.java b/src/main/java/drukmakoriSzerelok/Active.java similarity index 98% rename from src/main/java/Active.java rename to src/main/java/drukmakoriSzerelok/Active.java index cb81c4c..cf798af 100644 --- a/src/main/java/Active.java +++ b/src/main/java/drukmakoriSzerelok/Active.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + /** * Absztrakt osztaly, A jatek aktev elemeinek absztrakt ososztaly, amelybol leszarmazik a pumpa, illetve a cso. * Itt szerepelnek a kozos tulajdonsagaik az aktiv elemeknek, ilyen a mozgathatosag es az elromlas is. diff --git a/src/main/java/BlankField.java b/src/main/java/drukmakoriSzerelok/BlankField.java similarity index 98% rename from src/main/java/BlankField.java rename to src/main/java/drukmakoriSzerelok/BlankField.java index 6dc4e57..f04ccbd 100644 --- a/src/main/java/BlankField.java +++ b/src/main/java/drukmakoriSzerelok/BlankField.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.util.ArrayList; import java.util.UUID; diff --git a/src/main/java/Field.java b/src/main/java/drukmakoriSzerelok/Field.java similarity index 99% rename from src/main/java/Field.java rename to src/main/java/drukmakoriSzerelok/Field.java index 733cb8f..cc4f612 100644 --- a/src/main/java/Field.java +++ b/src/main/java/drukmakoriSzerelok/Field.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/Fixer.java b/src/main/java/drukmakoriSzerelok/Fixer.java similarity index 99% rename from src/main/java/Fixer.java rename to src/main/java/drukmakoriSzerelok/Fixer.java index 7679a23..3c93a77 100644 --- a/src/main/java/Fixer.java +++ b/src/main/java/drukmakoriSzerelok/Fixer.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.util.ArrayList; /** diff --git a/src/main/java/Fountain.java b/src/main/java/drukmakoriSzerelok/Fountain.java similarity index 99% rename from src/main/java/Fountain.java rename to src/main/java/drukmakoriSzerelok/Fountain.java index 2065308..928b1e5 100644 --- a/src/main/java/Fountain.java +++ b/src/main/java/drukmakoriSzerelok/Fountain.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.util.ArrayList; import java.util.List; import java.util.UUID; diff --git a/src/main/java/Game.java b/src/main/java/drukmakoriSzerelok/Game.java similarity index 99% rename from src/main/java/Game.java rename to src/main/java/drukmakoriSzerelok/Game.java index 3a4e160..52dd793 100644 --- a/src/main/java/Game.java +++ b/src/main/java/drukmakoriSzerelok/Game.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.util.ArrayList; /** diff --git a/src/main/java/GameField.java b/src/main/java/drukmakoriSzerelok/GameField.java similarity index 99% rename from src/main/java/GameField.java rename to src/main/java/drukmakoriSzerelok/GameField.java index bc56216..c8c40f6 100644 --- a/src/main/java/GameField.java +++ b/src/main/java/drukmakoriSzerelok/GameField.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.awt.*; import java.util.ArrayList; import javax.swing.*; diff --git a/src/main/java/GameFrame.java b/src/main/java/drukmakoriSzerelok/GameFrame.java similarity index 99% rename from src/main/java/GameFrame.java rename to src/main/java/drukmakoriSzerelok/GameFrame.java index 8b2246b..8c141ae 100644 --- a/src/main/java/GameFrame.java +++ b/src/main/java/drukmakoriSzerelok/GameFrame.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.awt.*; import java.awt.event.*; import java.awt.geom.AffineTransform; diff --git a/src/main/java/HelpFrame.java b/src/main/java/drukmakoriSzerelok/HelpFrame.java similarity index 99% rename from src/main/java/HelpFrame.java rename to src/main/java/drukmakoriSzerelok/HelpFrame.java index db6f79c..7401a29 100644 --- a/src/main/java/HelpFrame.java +++ b/src/main/java/drukmakoriSzerelok/HelpFrame.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.awt.*; import javax.swing.*; diff --git a/src/main/java/Main.java b/src/main/java/drukmakoriSzerelok/Main.java similarity index 88% rename from src/main/java/Main.java rename to src/main/java/drukmakoriSzerelok/Main.java index cf3d758..f98e13a 100644 --- a/src/main/java/Main.java +++ b/src/main/java/drukmakoriSzerelok/Main.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.io.*; /** diff --git a/src/main/java/MainMenu.java b/src/main/java/drukmakoriSzerelok/MainMenu.java similarity index 99% rename from src/main/java/MainMenu.java rename to src/main/java/drukmakoriSzerelok/MainMenu.java index 75582c2..a71ef21 100644 --- a/src/main/java/MainMenu.java +++ b/src/main/java/drukmakoriSzerelok/MainMenu.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.awt.*; import java.awt.event.*; import java.io.File; diff --git a/src/main/java/Map.java b/src/main/java/drukmakoriSzerelok/Map.java similarity index 99% rename from src/main/java/Map.java rename to src/main/java/drukmakoriSzerelok/Map.java index 527d5f8..e04d08c 100644 --- a/src/main/java/Map.java +++ b/src/main/java/drukmakoriSzerelok/Map.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/Pipe.java b/src/main/java/drukmakoriSzerelok/Pipe.java similarity index 99% rename from src/main/java/Pipe.java rename to src/main/java/drukmakoriSzerelok/Pipe.java index 9bed9dc..3878033 100644 --- a/src/main/java/Pipe.java +++ b/src/main/java/drukmakoriSzerelok/Pipe.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.util.ArrayList; import java.util.List; import java.util.Random; diff --git a/src/main/java/Player.java b/src/main/java/drukmakoriSzerelok/Player.java similarity index 99% rename from src/main/java/Player.java rename to src/main/java/drukmakoriSzerelok/Player.java index 270a047..0de9128 100644 --- a/src/main/java/Player.java +++ b/src/main/java/drukmakoriSzerelok/Player.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.util.ArrayList; import java.util.Random; diff --git a/src/main/java/Pump.java b/src/main/java/drukmakoriSzerelok/Pump.java similarity index 99% rename from src/main/java/Pump.java rename to src/main/java/drukmakoriSzerelok/Pump.java index 1f664a9..2b5d0c2 100644 --- a/src/main/java/Pump.java +++ b/src/main/java/drukmakoriSzerelok/Pump.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.util.ArrayList; import java.util.List; import java.util.Random; diff --git a/src/main/java/Saboteur.java b/src/main/java/drukmakoriSzerelok/Saboteur.java similarity index 98% rename from src/main/java/Saboteur.java rename to src/main/java/drukmakoriSzerelok/Saboteur.java index 4e7f5cf..aac494d 100644 --- a/src/main/java/Saboteur.java +++ b/src/main/java/drukmakoriSzerelok/Saboteur.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.util.ArrayList; import java.util.Random; diff --git a/src/main/java/SettingsFrame.java b/src/main/java/drukmakoriSzerelok/SettingsFrame.java similarity index 99% rename from src/main/java/SettingsFrame.java rename to src/main/java/drukmakoriSzerelok/SettingsFrame.java index 1f494fc..f1fa7c9 100644 --- a/src/main/java/SettingsFrame.java +++ b/src/main/java/drukmakoriSzerelok/SettingsFrame.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.awt.*; import java.awt.event.*; import java.util.ArrayList; diff --git a/src/main/java/Steppable.java b/src/main/java/drukmakoriSzerelok/Steppable.java similarity index 88% rename from src/main/java/Steppable.java rename to src/main/java/drukmakoriSzerelok/Steppable.java index 267525b..b299f29 100644 --- a/src/main/java/Steppable.java +++ b/src/main/java/drukmakoriSzerelok/Steppable.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + /** * Interfesz, amelyet megvalosito osztalyok a kor vegen frissulnek es uj allapotba lepnek. */ diff --git a/src/main/java/Tank.java b/src/main/java/drukmakoriSzerelok/Tank.java similarity index 99% rename from src/main/java/Tank.java rename to src/main/java/drukmakoriSzerelok/Tank.java index d08d111..ff6973e 100644 --- a/src/main/java/Tank.java +++ b/src/main/java/drukmakoriSzerelok/Tank.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + import java.util.*; /** diff --git a/src/main/java/Wait.java b/src/main/java/drukmakoriSzerelok/Wait.java similarity index 97% rename from src/main/java/Wait.java rename to src/main/java/drukmakoriSzerelok/Wait.java index ce80a60..fdd4151 100644 --- a/src/main/java/Wait.java +++ b/src/main/java/drukmakoriSzerelok/Wait.java @@ -1,3 +1,5 @@ +package drukmakoriSzerelok; + /** * Várakozast iranyito es vegrehajto osztaly. */ diff --git a/src/test/java/cucumberTest/CucumberTestRunner.java b/src/test/java/cucumberTest/CucumberTestRunner.java new file mode 100644 index 0000000..2037fe8 --- /dev/null +++ b/src/test/java/cucumberTest/CucumberTestRunner.java @@ -0,0 +1,12 @@ +package cucumberTest; + +import io.cucumber.junit.CucumberOptions; +import org.junit.runner.RunWith; +import io.cucumber.junit.Cucumber; + + +@RunWith(Cucumber.class) +@CucumberOptions() +public class CucumberTestRunner { +} + diff --git a/src/test/java/cucumberTest/FixerActionsOnTank.java b/src/test/java/cucumberTest/FixerActionsOnTank.java new file mode 100644 index 0000000..99d0eee --- /dev/null +++ b/src/test/java/cucumberTest/FixerActionsOnTank.java @@ -0,0 +1,57 @@ +package cucumberTest; + +import drukmakoriSzerelok.Game; +import drukmakoriSzerelok.Tank; +import drukmakoriSzerelok.Fixer; + +import io.cucumber.java.en.Given; +import io.cucumber.java.en.Then; +import io.cucumber.java.en.When; + +import static org.junit.Assert.assertEquals; + +public class FixerActionsOnTank { + private Tank tank = new Tank(); + private Fixer fixer = new Fixer("fixer1",""); + + public FixerActionsOnTank(){ + Game.Get().SetActivePlayer(fixer); + } + + @Given("a tank") + public void a_tank() { + Game game = Game.Get(); + } + + @Given("the fixer currently standing on that tank") + public void the_fixer_currently_standing_on_that_tank() { + fixer.SetField(tank); + tank.AddPlayer(fixer); + } + + @When("the saboteur tries to carry a pipe") + public void the_saboteur_tries_to_carry_a_pipe() { + fixer.CarryPipe(tank); + } + + @When("the saboteur tries to carry a pump") + public void the_saboteur_tries_to_carry_a_pump() { + fixer.CarryPump(tank); + } + + @Then("the tank should have {string} pipes") + public void the_tank_should_have_pipes(String answer){ + assertEquals(answer, String.valueOf(tank.getNumberOfPipes())); + } + + @Then("the tank should have {string} pumps") + public void the_tank_should_have_pumps(String answer){ + assertEquals(answer, String.valueOf(tank.getNumberOfPumps())); + } + + @Then("the fixer should {string}have an active field") + public void the_fixer_should_have_an_active_field(String answer){ + var result = fixer.GetHasActive() ? "" : "not "; + assertEquals(answer, result); + } +} diff --git a/src/test/java/cucumberTest/FixerFixes.java b/src/test/java/cucumberTest/FixerFixes.java new file mode 100644 index 0000000..6e60011 --- /dev/null +++ b/src/test/java/cucumberTest/FixerFixes.java @@ -0,0 +1,65 @@ +package cucumberTest; + +import drukmakoriSzerelok.Fixer; +import drukmakoriSzerelok.Game; +import drukmakoriSzerelok.Pipe; +import drukmakoriSzerelok.Pump; + +import io.cucumber.java.en.Given; +import io.cucumber.java.en.Then; +import io.cucumber.java.en.When; + +import static org.junit.Assert.assertEquals; + +class IsItBroken{ + static String isItBroken(boolean status) { + return status ? "fixed" : "broken"; + } +} + +public class FixerFixes { + private Pipe pipe = new Pipe(); + private Pump pump = new Pump(); + private Fixer fixer = new Fixer("fixer1",""); + + private boolean result; + + public FixerFixes(){ + Game.Get().SetActivePlayer(fixer); + } + + @Given("a broken pipe") + public void a_broken_pipe() { + pipe.SetIsBroken(true); + Game game = Game.Get(); + } + + @Given("a broken pump") + public void a_broken_pump() { + pump.SetIsBroken(true); + Game game = Game.Get(); + } + + @Given("the fixer currently standing on that pipe") + public void the_fixer_currently_standing_on_that_pipe() { + fixer.SetField(pipe); + pipe.AddPlayer(fixer); + } + + @Given("the fixer currently standing on that pump") + public void the_fixer_currently_standing_on_that_pump() { + fixer.SetField(pump); + pump.AddPlayer(fixer); + } + + @When("the fixer tries to repair that") + public void the_fixer_tries_to_repair_that(){ + fixer.Fix(pipe); + result = ! pipe.GetIsBroken(); + } + + @Then("it should be {string}") + public void it_should_be(String answer){ + assertEquals(answer, IsItBroken.isItBroken(result)); + } +} diff --git a/src/test/java/cucumberTest/PlayerMoves.java b/src/test/java/cucumberTest/PlayerMoves.java new file mode 100644 index 0000000..5f87a4d --- /dev/null +++ b/src/test/java/cucumberTest/PlayerMoves.java @@ -0,0 +1,78 @@ +package cucumberTest; + +import drukmakoriSzerelok.*; +import io.cucumber.java.en.Given; +import io.cucumber.java.en.Then; +import io.cucumber.java.en.When; + +import static org.junit.Assert.assertEquals; + +public class PlayerMoves{ + Field tank; + Player player; + Field neighbour; + + @Given("a default map") + public void a_default_map() { + Game.Get(); + } + @Given("a fixer currently standing on a tank") + public void a_fixer_currently_standing_on_a_tank() { + player = Game.Get().GetPlayers().get(0); + Game.Get().SetActivePlayer(player); + tank = player.GetField(); + } + @Given("a neighbour pipe") + public void a_neighbour_pipe() { + neighbour = Game.Get().GetMap().GetNeighbourFromDirection(tank, "right"); + } + @When("the fixer tries to move to the neighbour pipe") + public void the_fixer_tries_to_move_to_the_neighbour_pipe() { + player.Move(neighbour); + } + @Then("the {string} should be placed on the {string} pipe") + public void the_fixer_should_be_placed_on_the_neighbour_pipe(String answer1, String answer2) { + var result = player.GetField() == neighbour ? "neighbour" : "tank"; + var result2 = neighbour.GetPlayer().get(0) == player ? "fixer" : "nobody"; + assertEquals(answer2, result); + assertEquals(answer1, result2); + } + + + Field field1; + Field field2; + Player player1; + Player player2; + Field pump; + + @Given("two players currently standing on two separate fields") + public void two_players_currently_standing_on_two_separate_fields() { + player1 = Game.Get().GetPlayers().get(0); + player2 = Game.Get().GetPlayers().get(1); + field1 = player1.GetField(); + field2 = Game.Get().GetMap().GetNeighbourFromDirection(Game.Get().GetMap().GetNeighbourFromDirection(field1, "right"), "right"); + field2.AddPlayer(player2); + player2.SetField(field2); + } + @Given("a neighbour pump") + public void a_neighbour_pump() { + pump = Game.Get().GetMap().GetNeighbourFromDirection(field1, "left"); + pump = new Pump(); + } + @When("both players try to move to the neighbour pump") + public void both_players_try_to_move_to_the_neighbour_pump() { + Game.Get().SetActivePlayer(player1); + player1.Move(pump); + Game.Get().SetActivePlayer(player2); + player2.Move(pump); + } + @Then("{string} players should be placed on the {string}") + public void both_players_should_be_placed_on_the_pump(String answer1, String answer2) { + String result1 = String.valueOf(pump.GetPlayer().size()); + String result2 = player1.GetField() == pump ? "pump" : "other"; + String result3 = player2.GetField() == pump ? "pump" : "other"; + assertEquals(answer1, result1); + assertEquals(answer2, result2); + assertEquals(answer2, result3); + } +} \ No newline at end of file diff --git a/src/test/java/cucumberTest/SaboteurActionsOnPipe.java b/src/test/java/cucumberTest/SaboteurActionsOnPipe.java new file mode 100644 index 0000000..79eba0c --- /dev/null +++ b/src/test/java/cucumberTest/SaboteurActionsOnPipe.java @@ -0,0 +1,75 @@ +package cucumberTest; + +import drukmakoriSzerelok.Saboteur; +import drukmakoriSzerelok.Game; +import drukmakoriSzerelok.Pipe; + +import io.cucumber.java.en.Given; +import io.cucumber.java.en.Then; +import io.cucumber.java.en.When; + +import static org.junit.Assert.assertEquals; + +class IsPipeStatusCorrect { + static String isItSlippery(boolean status) { + return status ? "" : "not "; + } + + static String isItSticky(boolean status) { return status ? "" : "not "; } +} + +public class SaboteurActionsOnPipe { + private Pipe pipe = new Pipe(); + private Saboteur saboteur = new Saboteur("saboteur1",""); + + private boolean result; + + public SaboteurActionsOnPipe(){ + Game.Get().SetActivePlayer(saboteur); + } + + @Given("a not broken pipe") + public void a_not_broken_pipe() { + pipe.SetIsBroken(false); + Game game = Game.Get(); + } + + @Given("the saboteur currently standing on that pipe") + public void the_saboteur_currently_standing_on_that_pipe() { + saboteur.SetField(pipe); + pipe.AddPlayer(saboteur); + } + + @When("the saboteur tries to break that") + public void the_saboteur_tries_to_break_that() { + saboteur.PipeSabotage(pipe); + result = ! pipe.GetIsBroken(); + } + + @Given("a pipe") + public void a_pipe() { + Game game = Game.Get(); + } + + @When("the saboteur tries to make that slippery") + public void the_saboteur_tries_to_make_that_slippery() { + saboteur.MakeSlippery(pipe); + result = pipe.GetSlippery() > 0; + } + + @When("the saboteur tries to make that sticky") + public void the_saboteur_tries_to_make_that_sticky() { + saboteur.MakeSticky(pipe); + result = pipe.GetSticky() > 0; + } + + @Then("the pipe should be {string}slippery") + public void the_pipe_should_be_slippery(String answer){ + assertEquals(answer, IsPipeStatusCorrect.isItSlippery(result)); + } + + @Then("the pipe should be {string}sticky") + public void the_pipe_should_be_sticky(String answer){ + assertEquals(answer, IsPipeStatusCorrect.isItSticky(result)); + } +} diff --git a/src/test/resources/cucumberTest/FixerActionsOnTank.feature b/src/test/resources/cucumberTest/FixerActionsOnTank.feature new file mode 100644 index 0000000..7328704 --- /dev/null +++ b/src/test/resources/cucumberTest/FixerActionsOnTank.feature @@ -0,0 +1,14 @@ +Feature: + Scenario: test carrying pipe + Given a tank + Given the fixer currently standing on that tank + When the saboteur tries to carry a pipe + Then the tank should have "4" pipes + Then the fixer should ""have an active field + + Scenario: test carrying pump + Given a tank + Given the fixer currently standing on that tank + When the saboteur tries to carry a pump + Then the tank should have "0" pumps + Then the fixer should ""have an active field \ No newline at end of file diff --git a/src/test/resources/cucumberTest/FixerFixes.feature b/src/test/resources/cucumberTest/FixerFixes.feature new file mode 100644 index 0000000..b7ced98 --- /dev/null +++ b/src/test/resources/cucumberTest/FixerFixes.feature @@ -0,0 +1,12 @@ +Feature: + Scenario: test fixing a pipe + Given a broken pipe + Given the fixer currently standing on that pipe + When the fixer tries to repair that + Then it should be "fixed" + + Scenario: test fixing a pump + Given a broken pump + Given the fixer currently standing on that pump + When the fixer tries to repair that + Then it should be "fixed" \ No newline at end of file diff --git a/src/test/resources/cucumberTest/PlayerMoves.feature b/src/test/resources/cucumberTest/PlayerMoves.feature new file mode 100644 index 0000000..e3e83b2 --- /dev/null +++ b/src/test/resources/cucumberTest/PlayerMoves.feature @@ -0,0 +1,14 @@ +Feature: + Scenario: a player moves to another pipe + Given a default map + And a fixer currently standing on a tank + And a neighbour pipe + When the fixer tries to move to the neighbour pipe + Then the "fixer" should be placed on the "neighbour" pipe + + Scenario: two players move to the same pump + Given a default map + And two players currently standing on two separate fields + And a neighbour pump + When both players try to move to the neighbour pump + Then "2" players should be placed on the "pump" diff --git a/src/test/resources/cucumberTest/SaboteurActionsOnPipe.feature b/src/test/resources/cucumberTest/SaboteurActionsOnPipe.feature new file mode 100644 index 0000000..2204457 --- /dev/null +++ b/src/test/resources/cucumberTest/SaboteurActionsOnPipe.feature @@ -0,0 +1,18 @@ +Feature: + Scenario: test breaking a pipe + Given a not broken pipe + Given the saboteur currently standing on that pipe + When the saboteur tries to break that + Then it should be "broken" + + Scenario: test making a pipe slippery + Given a pipe + Given the saboteur currently standing on that pipe + When the saboteur tries to make that slippery + Then the pipe should be ""slippery + + Scenario: test making a pipe sticky + Given a pipe + Given the saboteur currently standing on that pipe + When the saboteur tries to make that sticky + Then the pipe should be ""sticky \ No newline at end of file