diff --git a/src/main/java/Team5/SmartTowns/Data/Location.java b/src/main/java/Team5/SmartTowns/Data/Location.java index 01ba2932c6b7d0a6201aa8128161bf7ad8b27526..cf9e69645f80f10116cdcc6a7b428c622e619c91 100644 --- a/src/main/java/Team5/SmartTowns/Data/Location.java +++ b/src/main/java/Team5/SmartTowns/Data/Location.java @@ -3,8 +3,11 @@ package Team5.SmartTowns.Data; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; + @Data @AllArgsConstructor +@NoArgsConstructor public class Location { // private int locationID; private String locationName; @@ -13,6 +16,8 @@ public class Location { private String locationPlace; private int locationTrailID; + + @Override public String toString() { return "Location{" + diff --git a/src/main/java/Team5/SmartTowns/Towns/TownController.java b/src/main/java/Team5/SmartTowns/Towns/TownController.java index a09e012a0b448d668a3d7e7c395cbff27826dac7..6029b5e790d80a36cfd911020c3cfd5b23d40397 100644 --- a/src/main/java/Team5/SmartTowns/Towns/TownController.java +++ b/src/main/java/Team5/SmartTowns/Towns/TownController.java @@ -10,7 +10,9 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.servlet.ModelAndView; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; @Controller public class TownController { @@ -29,7 +31,7 @@ public class TownController { } - @GetMapping("/home/town") + @GetMapping("/home/town/Caerphilly") public ModelAndView getATownTrailsList(){ ModelAndView modelAndView = new ModelAndView("userTrails/userTrailsTemplate"); TownStorage townsCurrent= new TownStorage().getInstance(); @@ -37,15 +39,19 @@ public class TownController { List<Town> Towns = townRepository.getAllTowns(); modelAndView.addObject("towns", Towns); List<Location> Locations = locationRepository.getAllLocation(); + Locations= filterByLocationForTrails(Locations, "Caerphilly"); modelAndView.addObject("locations", Locations); return modelAndView; } public List<Location> filterByLocationForTrails(List<Location> locationList , String town){ - List<Location> filteredList; - for( location:locationList){ + List<Location> filteredList = new ArrayList<Location>();; + for( Location location:locationList){ + if (Objects.equals(location.getLocationPlace(), town)){ + filteredList.add(location); + } - } + }return filteredList; } diff --git a/src/main/resources/templates/userTrails/userTrailsTemplate.html b/src/main/resources/templates/userTrails/userTrailsTemplate.html index 65317b0ebf892a3a254a14f3f9f26e61dec7a3c0..97b99771f33f7e65f3f376d1b44a26230aeb2a0d 100644 --- a/src/main/resources/templates/userTrails/userTrailsTemplate.html +++ b/src/main/resources/templates/userTrails/userTrailsTemplate.html @@ -6,7 +6,27 @@ </head> <body> <main> - <div th:each="location:${locations}"></div> + <H1>Caerphilly</H1> + <div th:each="location:${locations}"> + + <H2></H2> + + <ul> + <li th:text="${location.getLocationPlace()}"></li> + </ul> + + + + + + + + + + + + + </div> diff --git a/src/test/java/Team5/SmartTowns/SmartTownsApplicationTests.java b/src/test/java/Team5/SmartTowns/SmartTownsApplicationTests.java index b506b4dd06a2e682319d4f18b0fd58897f27f6a2..68a585a4a58322490600f41ccb5b33502fee4622 100644 --- a/src/test/java/Team5/SmartTowns/SmartTownsApplicationTests.java +++ b/src/test/java/Team5/SmartTowns/SmartTownsApplicationTests.java @@ -1,22 +1,38 @@ package Team5.SmartTowns; import Team5.SmartTowns.Data.Location; +import Team5.SmartTowns.Data.Town; +import Team5.SmartTowns.Data.TownRepository; import Team5.SmartTowns.Towns.TownController; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import java.util.List; + import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertSame; @SpringBootTest class SmartTownsApplicationTests { + private static TownController townController; @Autowired private Team5.SmartTowns.Data.locationRepository locationRepository; private Team5.SmartTowns.Data.Location location; + + @Autowired + private Team5.SmartTowns.Data.TownRepository townRepository; + + private Team5.SmartTowns.Data.Location town; + + @BeforeAll + public static void before() { + locationRepositroy = new location.locationRepository(); + } // @BeforeAll // public static void before(){} // location = new Location(); @@ -26,14 +42,20 @@ class SmartTownsApplicationTests { void contextLoads() { } -// @Test -// public void whenFilteringTownsByLocationsReturnOneTown() { -// -// townController.filterByLocationForTrails() -// -// -// assertEquals(, townController.filterByLocationForTrails); -// } -// -// + @Test + public void whenFilteringTownsByLocationsReturnOneTown() { + List<Location> allLocations = locationRepository.getAllLocation(); + List<Town> allTowns = townRepository.getAllTowns(); + int allLocationNumber=allLocations.size(); + int allLocationNumberAfterFilter=0; + for (Town town : allTowns){ + allLocationNumberAfterFilter+=townController.filterByLocationForTrails(allLocations,town.getTownName()).size(); + } + assertSame(allLocationNumber,allLocationNumberAfterFilter); + /// list of all locations, +// filter by all three towns +// add together size should be same + } + + }