diff --git a/app/src/main/java/com/example/citylist/CityList.java b/app/src/main/java/com/example/citylist/CityList.java index c3cc4466..48bde713 100644 --- a/app/src/main/java/com/example/citylist/CityList.java +++ b/app/src/main/java/com/example/citylist/CityList.java @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.List; /** @@ -27,9 +28,40 @@ public void add(City city) { * @return * Return the sorted list of cities */ - public List getCities() { + public List getCities(int param) { List cityList = cities; - Collections.sort(cityList); + if(param==1){ + Collections.sort(cityList); + } + else{ + Collections.sort(cityList, new Comparator() { + @Override + public int compare(City city, City t1) { + return city.getProvinceName().compareTo(t1.getProvinceName()); + } + }); + + } + //Collections.sort(cityList); return cityList; } + + /** + * + * @param city + * if city doesnt exist,return an exception + */ + public void delete(City city){ + if(!cities.contains(city)){ + throw new IllegalArgumentException(); + + } + else{ + cities.remove(city); + } + } + + public int count(){ + return cities.size(); + } } diff --git a/app/src/test/java/com/example/citylist/CityListTest.java b/app/src/test/java/com/example/citylist/CityListTest.java index aa8ebe85..1410e26d 100644 --- a/app/src/test/java/com/example/citylist/CityListTest.java +++ b/app/src/test/java/com/example/citylist/CityListTest.java @@ -18,35 +18,75 @@ private City mockCity() { @Test public void testAdd() { CityList cityList = mockCityList(); - assertEquals(1, cityList.getCities().size()); + assertEquals(1, cityList.getCities(1).size()); City city = new City("Regina", "SK"); cityList.add(city); - assertEquals(2, cityList.getCities().size()); - assertTrue(cityList.getCities().contains(city)); + assertEquals(2, cityList.getCities(1).size()); + assertTrue(cityList.getCities(1).contains(city)); } + @Test + public void testdelete(){ + CityList cityList=new CityList(); + City city=new City("montreal","canada"); + City city1=new City("panjab","uttorprodesh"); + cityList.add(city); + cityList.add(city1); + assertEquals(2,cityList.count()); + cityList.delete(city); + assertEquals(1,cityList.count()); + assertTrue(!cityList.getCities(1).contains(city)); + } + @Test + public void testDeleteException() { + CityList cityList=new CityList(); + City city=new City("montreal","canada"); + City city1=new City("panjab","uttorprodesh"); + cityList.add(city); + cityList.add(city1); + cityList.delete(city); + + assertThrows(IllegalArgumentException.class, () -> { + cityList.delete(city1); + }); + } @Test public void testAddException() { CityList cityList = new CityList(); City city = mockCity(); + City city1 =mockCity(); cityList.add(city); + cityList.add(city1); assertThrows(IllegalArgumentException.class, () -> { - cityList.add(city); + cityList.add(city1); }); } - @Test + /* @Test public void testGetCities() { CityList cityList = mockCityList(); - assertEquals(0, mockCity().compareTo(cityList.getCities().get(0))); + assertEquals(0, mockCity().compareTo(cityList.getCities(1).get(0))); + + City city = new City("Charlottetown", "Prince Edward Island"); + cityList.add(city); + + assertEquals(0, city.compareTo(cityList.getCities(1).get(0))); + assertEquals(0, mockCity().compareTo(cityList.getCities(1).get(1))); + }*/ + @Test + public void tesTGetCities() { + CityList cityList =new CityList() ; + City city1=new City("ZZZZ","CD"); + cityList.add(city1); + //assertEquals(0, city1.compareTo(cityList.getCities(1).get(0))); City city = new City("Charlottetown", "Prince Edward Island"); cityList.add(city); - assertEquals(0, city.compareTo(cityList.getCities().get(0))); - assertEquals(0, mockCity().compareTo(cityList.getCities().get(1))); + assertEquals(0, city.compareTo(cityList.getCities(2).get(0))); + assertEquals(0, city1.compareTo(cityList.getCities(2).get(1))); } }