diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml new file mode 100644 index 000000000..806986630 --- /dev/null +++ b/.github/workflows/android.yml @@ -0,0 +1,26 @@ +name: Android CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: set up JDK 11 + uses: actions/setup-java@v2 + with: + java-version: '11' + distribution: 'temurin' + cache: gradle + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Build with Gradle + run: ./gradlew build diff --git a/app/build.gradle b/app/build.gradle index 0d17b9380..e1558670d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -26,4 +26,4 @@ dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' -} +} \ No newline at end of file diff --git a/app/src/main/java/com/example/simpleparadox/listycity/City.java b/app/src/main/java/com/example/simpleparadox/listycity/City.java index fb6fbd1d1..969fbce4c 100644 --- a/app/src/main/java/com/example/simpleparadox/listycity/City.java +++ b/app/src/main/java/com/example/simpleparadox/listycity/City.java @@ -4,7 +4,7 @@ public class City { private String city; private String province; - City(String city, String province){ + public City(String city, String province){ this.city = city; this.province = province; } diff --git a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java index 1a7af1f60..fff8a73f5 100644 --- a/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java +++ b/app/src/main/java/com/example/simpleparadox/listycity/CustomList.java @@ -1,3 +1,5 @@ + + package com.example.simpleparadox.listycity; import android.content.Context; @@ -10,8 +12,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.w3c.dom.Text; - import java.util.ArrayList; public class CustomList extends ArrayAdapter { @@ -47,4 +47,45 @@ public View getView(int position, @Nullable View convertView, @NonNull ViewGroup return view; } + + /** + * this function gets the size of the list + * @return + */ + + public int getCount() { + return cities.size(); + } + + /** + * this function would add a city object to the list. + */ + + public void addCity(City city) { + + cities.add(city); + return; + + } + + public boolean hasCity(City city) { + + if (cities.contains(city)) { + + return true; + } + return false; + } + + public boolean deleteCity(City city) { + + cities.remove(city); + + return !hasCity(city); + } + + public int countCities() { + + return cities.size(); + } } diff --git a/app/src/test/java/com/example/simpleparadox/tests/customListTest.java b/app/src/test/java/com/example/simpleparadox/tests/customListTest.java new file mode 100644 index 000000000..3e953ebfd --- /dev/null +++ b/app/src/test/java/com/example/simpleparadox/tests/customListTest.java @@ -0,0 +1,61 @@ +package com.example.simpleparadox.tests; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import com.example.simpleparadox.listycity.City; +import com.example.simpleparadox.listycity.CustomList; + +import org.junit.Before; +import org.junit.Test; + +import java.util.ArrayList; + +public class customListTest { + + private CustomList customList; + + @Before + public void createList() { + customList= new CustomList(null, new ArrayList()); + } + + @Test + public void addCityTest() { + int listSize = customList.getCount(); + customList.addCity(new City("Halifax" , "NS")); + + assertEquals(customList.getCount(), listSize + 1); + } + + + @Test + public void hasCityTest() { + + City city = new City("Edmonton", "AB"); + + customList.addCity(city); + + assertTrue(customList.hasCity(city)); + } + + @Test + public void deleteCityTest() { + + City city = new City("Edmonton", "AB"); + + customList.addCity(city); + + assertTrue(customList.deleteCity(city)); + } + + @Test + public void countCities() { + + customList.addCity(new City("Edmonton", "AB")); + + assertEquals(customList.countCities(), 1); + } + +} +