From 83adabfaeb91bf4c021731e55e89425f7235ab79 Mon Sep 17 00:00:00 2001 From: Tuomo Untinen Date: Tue, 25 Jul 2017 07:14:21 +0300 Subject: [PATCH] #56 Adds very basic text if war is being declared into news text. --- .../starMap/newsCorp/NewsFactory.java | 18 +++++++++++++ .../starMap/newsCorp/NewsFactoryTest.java | 27 +++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/src/main/java/org/openRealmOfStars/starMap/newsCorp/NewsFactory.java b/src/main/java/org/openRealmOfStars/starMap/newsCorp/NewsFactory.java index 8a4edf838..e6e3493a0 100644 --- a/src/main/java/org/openRealmOfStars/starMap/newsCorp/NewsFactory.java +++ b/src/main/java/org/openRealmOfStars/starMap/newsCorp/NewsFactory.java @@ -74,6 +74,24 @@ public static NewsData makeWarNews(final PlayerInfo aggressor, instructions.addRelationSymbol(ImageInstruction.WAR); instructions.addText(defender.getEmpireName()); news.setImageInstructions(instructions.build()); + StringBuilder sb = new StringBuilder(100); + sb.append(aggressor.getEmpireName()); + sb.append(" declares war against "); + sb.append(defender.getEmpireName()); + sb.append("! "); + if (meetingPlace instanceof Planet) { + Planet planet = (Planet) meetingPlace; + sb.append("This meeting happened in "); + sb.append(planet.getName()); + if (planet.getPlanetPlayerInfo() != null) { + sb.append(", which is owned by "); + sb.append(planet.getPlanetPlayerInfo().getEmpireName()); + sb.append(". "); + } + } else { + sb.append("This meeting happened in deep space."); + } + news.setNewsText(sb.toString()); return news; } } diff --git a/src/test/java/org/openRealmOfStars/starMap/newsCorp/NewsFactoryTest.java b/src/test/java/org/openRealmOfStars/starMap/newsCorp/NewsFactoryTest.java index 8b1e57deb..08e184dcb 100644 --- a/src/test/java/org/openRealmOfStars/starMap/newsCorp/NewsFactoryTest.java +++ b/src/test/java/org/openRealmOfStars/starMap/newsCorp/NewsFactoryTest.java @@ -6,6 +6,7 @@ import org.junit.experimental.categories.Category; import org.mockito.Mockito; import org.openRealmOfStars.player.PlayerInfo; +import org.openRealmOfStars.starMap.planet.Planet; /** * @@ -43,6 +44,32 @@ public void testWar() { aggressor.getEmpireName())); assertEquals(true, news.getImageInstructions().contains( defender.getEmpireName())); + assertEquals(true, news.getNewsText().contains( + aggressor.getEmpireName())); + assertEquals(true, news.getNewsText().contains( + defender.getEmpireName())); + } + + @Test + @Category(org.openRealmOfStars.UnitTest.class) + public void testWarOnPlanet() { + Planet planet = Mockito.mock(Planet.class); + Mockito.when(planet.getName()).thenReturn("Planet I"); + PlayerInfo aggressor = Mockito.mock(PlayerInfo.class); + Mockito.when(aggressor.getEmpireName()).thenReturn("Empire of Test"); + PlayerInfo defender = Mockito.mock(PlayerInfo.class); + Mockito.when(defender.getEmpireName()).thenReturn("Democracy of Defender"); + NewsData news = NewsFactory.makeWarNews(aggressor, defender, planet); + assertEquals(true, news.getImageInstructions().contains( + aggressor.getEmpireName())); + assertEquals(true, news.getImageInstructions().contains( + defender.getEmpireName())); + assertEquals(true, news.getImageInstructions().contains("planet")); + assertEquals(true, news.getNewsText().contains( + aggressor.getEmpireName())); + assertEquals(true, news.getNewsText().contains( + defender.getEmpireName())); + assertEquals(true, news.getNewsText().contains(planet.getName())); } }