From 4adcd849f41882b23e0ee9ea58fa6e14d91d15c6 Mon Sep 17 00:00:00 2001 From: Szombatioi <62300631+Szombatioi@users.noreply.github.com> Date: Wed, 22 May 2024 22:05:59 +0200 Subject: [PATCH 1/8] FieldTest added --- test/core/test/FieldTest.java | 55 ++++++++ test/core/test/UnitTest.java | 15 +++ .../cucumber/CucumberStepDefinitions.java | 120 +++++++++--------- 3 files changed, 130 insertions(+), 60 deletions(-) create mode 100644 test/core/test/FieldTest.java create mode 100644 test/core/test/UnitTest.java diff --git a/test/core/test/FieldTest.java b/test/core/test/FieldTest.java new file mode 100644 index 0000000..3ebb568 --- /dev/null +++ b/test/core/test/FieldTest.java @@ -0,0 +1,55 @@ +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.google.errorprone.annotations.DoNotMock; + +import temalab.common.MainModel; +import temalab.model.Field; +import temalab.model.Position; +import temalab.model.Team; +import temalab.model.Unit; +import temalab.model.Field.Type; + +public class FieldTest { + @Mock + Field field; + @Mock + Field otherField; + @Mock + private MainModel mockMainModel; + @Mock + Unit unit; + + @BeforeEach + public void init(){ + field = new Field(new Position(0,0), Type.GRASS); + otherField = new Field(new Position(0,1), Type.GRASS); + + Team team = new Team("TestTeam", "null", 10, null); + unit = new Unit(otherField, team, Unit.Type.TANK); + } + + @Test + public void unitArrivesOnFieldSuccess(){ + Assert.assertTrue(field.arrive(unit)); + } + + @Test + public void unitTakesShot(){ + int unitDefaultHealth = unit.getHealth(); + field.takeShot(1); + Assert.assertEquals(unitDefaultHealth-1, unit.getHealth()); + } + + @Test + public void fieldsNeighbouring(){ + Assert.assertTrue(field.isNeighbouring(otherField)); + } + + @Test + public void fieldIsInDistance(){ + Assert.assertTrue(field.inDistance(otherField, 1)); + } + +} diff --git a/test/core/test/UnitTest.java b/test/core/test/UnitTest.java new file mode 100644 index 0000000..4058fc7 --- /dev/null +++ b/test/core/test/UnitTest.java @@ -0,0 +1,15 @@ +import org.junit.Before; + +import temalab.model.Field; +import temalab.model.Position; +import temalab.model.Unit; +import temalab.model.Field.Type; + +public class UnitTest { + private Unit unit; + + @Before + public void init(){ + //unit = new Unit(new Field(new Position(0,0), Type.FOREST), new Team(), "TANK.txt"); + } +} diff --git a/test/core/test/cucumber/CucumberStepDefinitions.java b/test/core/test/cucumber/CucumberStepDefinitions.java index ec9be24..58b5e18 100644 --- a/test/core/test/cucumber/CucumberStepDefinitions.java +++ b/test/core/test/cucumber/CucumberStepDefinitions.java @@ -1,60 +1,60 @@ -package cucumber; - -import io.cucumber.java.Before; -import io.cucumber.java.en.Given; -import io.cucumber.java.en.Then; -import io.cucumber.java.en.When; -import org.junit.Assert; -import temalab.common.MainModel; -import temalab.common.map_generation.AllGreenMapGeneratorStrategy; -import temalab.model.Field; -import temalab.model.Position; -import temalab.model.Team; -import temalab.model.Unit; - -public class CucumberStepDefinitions { - MainModel mainModel = new MainModel(3, new AllGreenMapGeneratorStrategy()); - Field infantryField; - Field tankField; - Team red; - Team white; - Unit infantry; - Unit tank; - - @Before - public void setup() { - red = new Team("red", null, 0, mainModel); - white = new Team("white", null, 0, mainModel); - } - - @Given("the infantry is on the field") - public void theInfantryIsOnTheField() { - infantryField = mainModel.getField(new Position(0, 0)); - infantry = new Unit(infantryField, red, Unit.Type.INFANTRY); - } - - @When("a tank shoots on the field") - public void aTankShootsOnTheField() { - tankField = mainModel.getField(new Position(0, 1)); - tank = new Unit(infantryField, white, Unit.Type.TANK); - tank.shoot(infantryField); - } - - @Then("the infantry takes {int} damage") - public void theInfantryTakesDamage(int damage) { - Assert.assertTrue(infantry.getMaxHealth() >= damage ? infantry.getHealth() == infantry.getMaxHealth() - damage : infantry.getHealth() <= 0 && infantryField.getUnit() == null); - } - - @Given("nothing") - public void _nothing() { - } - - @When("nothing happens") - public void nothing() { - } - - @Then("true") - public void _true() { - Assert.assertTrue(true); - } -} +// package cucumber; + +// import io.cucumber.java.Before; +// import io.cucumber.java.en.Given; +// import io.cucumber.java.en.Then; +// import io.cucumber.java.en.When; +// import org.junit.Assert; +// import temalab.common.MainModel; +// import temalab.common.map_generation.AllGreenMapGeneratorStrategy; +// import temalab.model.Field; +// import temalab.model.Position; +// import temalab.model.Team; +// import temalab.model.Unit; + +// public class CucumberStepDefinitions { +// MainModel mainModel = new MainModel(3, new AllGreenMapGeneratorStrategy()); +// Field infantryField; +// Field tankField; +// Team red; +// Team white; +// Unit infantry; +// Unit tank; + +// @Before +// public void setup() { +// red = new Team("red", null, 0, mainModel); +// white = new Team("white", null, 0, mainModel); +// } + +// @Given("the infantry is on the field") +// public void theInfantryIsOnTheField() { +// infantryField = mainModel.getField(new Position(0, 0)); +// infantry = new Unit(infantryField, red, Unit.Type.INFANTRY); +// } + +// @When("a tank shoots on the field") +// public void aTankShootsOnTheField() { +// tankField = mainModel.getField(new Position(0, 1)); +// tank = new Unit(infantryField, white, Unit.Type.TANK); +// tank.shoot(infantryField); +// } + +// @Then("the infantry takes {int} damage") +// public void theInfantryTakesDamage(int damage) { +// Assert.assertTrue(infantry.getMaxHealth() >= damage ? infantry.getHealth() == infantry.getMaxHealth() - damage : infantry.getHealth() <= 0 && infantryField.getUnit() == null); +// } + +// @Given("nothing") +// public void _nothing() { +// } + +// @When("nothing happens") +// public void nothing() { +// } + +// @Then("true") +// public void _true() { +// Assert.assertTrue(true); +// } +// } From 204566d7b2ef94ec972a6c13578ac96968d93fd1 Mon Sep 17 00:00:00 2001 From: Szombatioi <62300631+Szombatioi@users.noreply.github.com> Date: Wed, 22 May 2024 22:23:14 +0200 Subject: [PATCH 2/8] Finished FieldTest testcases --- test/core/test/FieldTest.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/test/core/test/FieldTest.java b/test/core/test/FieldTest.java index 3ebb568..bebf510 100644 --- a/test/core/test/FieldTest.java +++ b/test/core/test/FieldTest.java @@ -12,22 +12,23 @@ import temalab.model.Field.Type; public class FieldTest { + + private Field field; + @Mock - Field field; - @Mock - Field otherField; + private Field otherField; @Mock private MainModel mockMainModel; @Mock - Unit unit; + private Unit unit; @BeforeEach public void init(){ field = new Field(new Position(0,0), Type.GRASS); - otherField = new Field(new Position(0,1), Type.GRASS); + // otherField = new Field(new Position(0,1), Type.GRASS); - Team team = new Team("TestTeam", "null", 10, null); - unit = new Unit(otherField, team, Unit.Type.TANK); + // Team team = new Team("TestTeam", "null", 10, mockMainModel); + //unit = new Unit(otherField, team, Unit.Type.TANK); } @Test @@ -37,9 +38,11 @@ public void unitArrivesOnFieldSuccess(){ @Test public void unitTakesShot(){ + when(unit.getHealth()).thenReturn(1).thenReturn(0); int unitDefaultHealth = unit.getHealth(); field.takeShot(1); Assert.assertEquals(unitDefaultHealth-1, unit.getHealth()); + verify(unit, times(1)).takeShot(1); } @Test From 476623d2279d54f6de8a7604a9dda9f4568adbb0 Mon Sep 17 00:00:00 2001 From: Szombatioi <62300631+Szombatioi@users.noreply.github.com> Date: Wed, 22 May 2024 22:24:27 +0200 Subject: [PATCH 3/8] .-. --- .../cucumber/CucumberStepDefinitions.java | 120 +++++++++--------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/test/core/test/cucumber/CucumberStepDefinitions.java b/test/core/test/cucumber/CucumberStepDefinitions.java index 58b5e18..ec9be24 100644 --- a/test/core/test/cucumber/CucumberStepDefinitions.java +++ b/test/core/test/cucumber/CucumberStepDefinitions.java @@ -1,60 +1,60 @@ -// package cucumber; - -// import io.cucumber.java.Before; -// import io.cucumber.java.en.Given; -// import io.cucumber.java.en.Then; -// import io.cucumber.java.en.When; -// import org.junit.Assert; -// import temalab.common.MainModel; -// import temalab.common.map_generation.AllGreenMapGeneratorStrategy; -// import temalab.model.Field; -// import temalab.model.Position; -// import temalab.model.Team; -// import temalab.model.Unit; - -// public class CucumberStepDefinitions { -// MainModel mainModel = new MainModel(3, new AllGreenMapGeneratorStrategy()); -// Field infantryField; -// Field tankField; -// Team red; -// Team white; -// Unit infantry; -// Unit tank; - -// @Before -// public void setup() { -// red = new Team("red", null, 0, mainModel); -// white = new Team("white", null, 0, mainModel); -// } - -// @Given("the infantry is on the field") -// public void theInfantryIsOnTheField() { -// infantryField = mainModel.getField(new Position(0, 0)); -// infantry = new Unit(infantryField, red, Unit.Type.INFANTRY); -// } - -// @When("a tank shoots on the field") -// public void aTankShootsOnTheField() { -// tankField = mainModel.getField(new Position(0, 1)); -// tank = new Unit(infantryField, white, Unit.Type.TANK); -// tank.shoot(infantryField); -// } - -// @Then("the infantry takes {int} damage") -// public void theInfantryTakesDamage(int damage) { -// Assert.assertTrue(infantry.getMaxHealth() >= damage ? infantry.getHealth() == infantry.getMaxHealth() - damage : infantry.getHealth() <= 0 && infantryField.getUnit() == null); -// } - -// @Given("nothing") -// public void _nothing() { -// } - -// @When("nothing happens") -// public void nothing() { -// } - -// @Then("true") -// public void _true() { -// Assert.assertTrue(true); -// } -// } +package cucumber; + +import io.cucumber.java.Before; +import io.cucumber.java.en.Given; +import io.cucumber.java.en.Then; +import io.cucumber.java.en.When; +import org.junit.Assert; +import temalab.common.MainModel; +import temalab.common.map_generation.AllGreenMapGeneratorStrategy; +import temalab.model.Field; +import temalab.model.Position; +import temalab.model.Team; +import temalab.model.Unit; + +public class CucumberStepDefinitions { + MainModel mainModel = new MainModel(3, new AllGreenMapGeneratorStrategy()); + Field infantryField; + Field tankField; + Team red; + Team white; + Unit infantry; + Unit tank; + + @Before + public void setup() { + red = new Team("red", null, 0, mainModel); + white = new Team("white", null, 0, mainModel); + } + + @Given("the infantry is on the field") + public void theInfantryIsOnTheField() { + infantryField = mainModel.getField(new Position(0, 0)); + infantry = new Unit(infantryField, red, Unit.Type.INFANTRY); + } + + @When("a tank shoots on the field") + public void aTankShootsOnTheField() { + tankField = mainModel.getField(new Position(0, 1)); + tank = new Unit(infantryField, white, Unit.Type.TANK); + tank.shoot(infantryField); + } + + @Then("the infantry takes {int} damage") + public void theInfantryTakesDamage(int damage) { + Assert.assertTrue(infantry.getMaxHealth() >= damage ? infantry.getHealth() == infantry.getMaxHealth() - damage : infantry.getHealth() <= 0 && infantryField.getUnit() == null); + } + + @Given("nothing") + public void _nothing() { + } + + @When("nothing happens") + public void nothing() { + } + + @Then("true") + public void _true() { + Assert.assertTrue(true); + } +} From 8f74c5c6291ceda2a2e05fe8cef201e6d30189bf Mon Sep 17 00:00:00 2001 From: Szombatioi <62300631+Szombatioi@users.noreply.github.com> Date: Wed, 22 May 2024 22:26:20 +0200 Subject: [PATCH 4/8] .-. .-. --- test/core/test/UnitTest.java | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 test/core/test/UnitTest.java diff --git a/test/core/test/UnitTest.java b/test/core/test/UnitTest.java deleted file mode 100644 index 4058fc7..0000000 --- a/test/core/test/UnitTest.java +++ /dev/null @@ -1,15 +0,0 @@ -import org.junit.Before; - -import temalab.model.Field; -import temalab.model.Position; -import temalab.model.Unit; -import temalab.model.Field.Type; - -public class UnitTest { - private Unit unit; - - @Before - public void init(){ - //unit = new Unit(new Field(new Position(0,0), Type.FOREST), new Team(), "TANK.txt"); - } -} From c928e5789addcf6a1cb94ed5dc00b10a358a9a6a Mon Sep 17 00:00:00 2001 From: Szombatioi <62300631+Szombatioi@users.noreply.github.com> Date: Wed, 22 May 2024 22:31:15 +0200 Subject: [PATCH 5/8] Fixed errors --- test/core/test/FieldTest.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/test/core/test/FieldTest.java b/test/core/test/FieldTest.java index bebf510..8d2d5c3 100644 --- a/test/core/test/FieldTest.java +++ b/test/core/test/FieldTest.java @@ -1,7 +1,3 @@ -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - import com.google.errorprone.annotations.DoNotMock; import temalab.common.MainModel; @@ -10,7 +6,13 @@ import temalab.model.Team; import temalab.model.Unit; import temalab.model.Field.Type; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +@ExtendWith(MockitoExtension.class) public class FieldTest { private Field field; @@ -33,7 +35,7 @@ public void init(){ @Test public void unitArrivesOnFieldSuccess(){ - Assert.assertTrue(field.arrive(unit)); + assertTrue(field.arrive(unit)); } @Test @@ -41,18 +43,18 @@ public void unitTakesShot(){ when(unit.getHealth()).thenReturn(1).thenReturn(0); int unitDefaultHealth = unit.getHealth(); field.takeShot(1); - Assert.assertEquals(unitDefaultHealth-1, unit.getHealth()); + assertEquals(unitDefaultHealth-1, unit.getHealth()); verify(unit, times(1)).takeShot(1); } @Test public void fieldsNeighbouring(){ - Assert.assertTrue(field.isNeighbouring(otherField)); + assertTrue(field.isNeighbouring(otherField)); } @Test public void fieldIsInDistance(){ - Assert.assertTrue(field.inDistance(otherField, 1)); + assertTrue(field.inDistance(otherField, 1)); } } From 110c359021bf8cd96b22837b0d8ca3a241b74178 Mon Sep 17 00:00:00 2001 From: Szombatioi <62300631+Szombatioi@users.noreply.github.com> Date: Wed, 22 May 2024 22:33:38 +0200 Subject: [PATCH 6/8] Fixed import errors --- test/core/test/FieldTest.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/core/test/FieldTest.java b/test/core/test/FieldTest.java index 8d2d5c3..b3354d2 100644 --- a/test/core/test/FieldTest.java +++ b/test/core/test/FieldTest.java @@ -12,6 +12,10 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.*; + @ExtendWith(MockitoExtension.class) public class FieldTest { From 2a4ff08ee9735eef02e187fb9910be843d0de022 Mon Sep 17 00:00:00 2001 From: Szombatioi <62300631+Szombatioi@users.noreply.github.com> Date: Wed, 22 May 2024 22:35:48 +0200 Subject: [PATCH 7/8] Fixed import errors #2 --- test/core/test/FieldTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/test/core/test/FieldTest.java b/test/core/test/FieldTest.java index b3354d2..9601bd7 100644 --- a/test/core/test/FieldTest.java +++ b/test/core/test/FieldTest.java @@ -14,6 +14,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.*; @ExtendWith(MockitoExtension.class) From cfb959f791a727eb6095d7d49c345d5bcebafdc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A1t=C3=A1n=20Sandle?= Date: Wed, 22 May 2024 23:23:21 +0200 Subject: [PATCH 8/8] FieldTest --- test/core/test/FieldTest.java | 98 +++++++++++++++-------------------- 1 file changed, 42 insertions(+), 56 deletions(-) diff --git a/test/core/test/FieldTest.java b/test/core/test/FieldTest.java index 9601bd7..9734140 100644 --- a/test/core/test/FieldTest.java +++ b/test/core/test/FieldTest.java @@ -1,65 +1,51 @@ -import com.google.errorprone.annotations.DoNotMock; - -import temalab.common.MainModel; -import temalab.model.Field; -import temalab.model.Position; -import temalab.model.Team; -import temalab.model.Unit; -import temalab.model.Field.Type; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import temalab.model.Field; +import temalab.model.Field.Type; +import temalab.model.Position; +import temalab.model.Unit; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; @ExtendWith(MockitoExtension.class) -public class FieldTest { - - private Field field; - - @Mock - private Field otherField; - @Mock - private MainModel mockMainModel; - @Mock - private Unit unit; - - @BeforeEach - public void init(){ - field = new Field(new Position(0,0), Type.GRASS); - // otherField = new Field(new Position(0,1), Type.GRASS); - - // Team team = new Team("TestTeam", "null", 10, mockMainModel); - //unit = new Unit(otherField, team, Unit.Type.TANK); - } - - @Test - public void unitArrivesOnFieldSuccess(){ - assertTrue(field.arrive(unit)); - } - - @Test - public void unitTakesShot(){ - when(unit.getHealth()).thenReturn(1).thenReturn(0); - int unitDefaultHealth = unit.getHealth(); - field.takeShot(1); - assertEquals(unitDefaultHealth-1, unit.getHealth()); - verify(unit, times(1)).takeShot(1); - } - - @Test - public void fieldsNeighbouring(){ - assertTrue(field.isNeighbouring(otherField)); - } - - @Test - public void fieldIsInDistance(){ - assertTrue(field.inDistance(otherField, 1)); - } - +class FieldTest { + + private Field field; + + + @Mock + private Position mockPosition; + @Mock + private Unit mockUnit; + @Mock + private Unit mockOtherUnit; + + @BeforeEach + public void init() { + field = new Field(mockPosition, Type.GRASS); + } + + @Test + void test_arrive_OK() { + assertTrue(field.arrive(mockUnit)); + } + + @Test + void test_arrive_occupied() { + field.arrive(mockOtherUnit); + assertFalse(field.arrive(mockUnit)); + } + + @Test + void test_takeShot() { + field.arrive(mockUnit); + field.takeShot(5); + verify(mockUnit, times(1)).takeShot(5); + } }