diff --git a/.travis.yml b/.travis.yml index dd32434..fba97e9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,3 +37,6 @@ android: script: - ./gradlew test --stacktrace + +after_success: +- ./gradlew cobertura coveralls \ No newline at end of file diff --git a/build.gradle b/build.gradle index c2eea8e..69930b1 100644 --- a/build.gradle +++ b/build.gradle @@ -12,12 +12,16 @@ buildscript { } } +plugins { + id 'net.saliman.cobertura' version '2.3.1' + id 'com.github.kt3k.coveralls' version '2.8.2' +} + +cobertura.coverageFormats = ['html', 'xml'] // coveralls plugin depends on xml format report + allprojects { repositories { jcenter() } } -task clean(type: Delete) { - delete rootProject.buildDir -} diff --git a/sqlitemodel/src/main/java/ie/mavon/sqlitemodel/SQLiteModel.java b/sqlitemodel/src/main/java/ie/mavon/sqlitemodel/SQLiteModel.java index 5dc2899..0b51dfb 100644 --- a/sqlitemodel/src/main/java/ie/mavon/sqlitemodel/SQLiteModel.java +++ b/sqlitemodel/src/main/java/ie/mavon/sqlitemodel/SQLiteModel.java @@ -381,6 +381,7 @@ public boolean save() { */ public boolean delete() { long dbDelete = _db.getWritableDatabase().delete(getTableName(), _ID + " = " + this.getId(), null); + return dbDelete == 1; } diff --git a/sqlitemodel/src/test/java/ie/mavon/sqlitemodel/Models/Employee.java b/sqlitemodel/src/test/java/ie/mavon/sqlitemodel/Models/Employee.java index e3fec1e..8a06dc3 100644 --- a/sqlitemodel/src/test/java/ie/mavon/sqlitemodel/Models/Employee.java +++ b/sqlitemodel/src/test/java/ie/mavon/sqlitemodel/Models/Employee.java @@ -12,7 +12,8 @@ public class Employee extends SQLiteModel { private static Map dbColumns = null; - private String name; + private String name, + surname; @Override public Map getDbColumns() { @@ -20,6 +21,7 @@ public Map getDbColumns() { dbColumns = new HashMap<>(); dbColumns.put("name", TYPE_TEXT); + dbColumns.put("surname", TYPE_TEXT); SQLiteModel.setDBColumns(dbColumns); } @@ -39,4 +41,12 @@ public String getName() { public void setName(String name) { this.name = name; } + + public String getSurname() { + return surname; + } + + public void setSurname(String surname) { + this.surname = surname; + } } diff --git a/sqlitemodel/src/test/java/ie/mavon/sqlitemodel/SQLiteModelUnitTest.java b/sqlitemodel/src/test/java/ie/mavon/sqlitemodel/SQLiteModelUnitTest.java index 2194e9f..16793ce 100644 --- a/sqlitemodel/src/test/java/ie/mavon/sqlitemodel/SQLiteModelUnitTest.java +++ b/sqlitemodel/src/test/java/ie/mavon/sqlitemodel/SQLiteModelUnitTest.java @@ -1,11 +1,16 @@ package ie.mavon.sqlitemodel; +import android.util.Pair; + +import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import java.util.LinkedHashMap; + import ie.mavon.sqlitemodel.Models.Employee; import static org.junit.Assert.*; @@ -21,7 +26,16 @@ public void setUp() { SQLiteModel.setDB(new TestDBHelper(RuntimeEnvironment.application, "testDb", null, 1)); SQLiteModel.getDbHandler().getWritableDatabase().execSQL("DROP TABLE IF EXISTS employees"); - SQLiteModel.getDbHandler().getWritableDatabase().execSQL("CREATE TABLE employees (_id INTEGER PRIMARY KEY, name TEXT)"); + SQLiteModel.getDbHandler().getWritableDatabase().execSQL( + "CREATE TABLE employees (_id INTEGER PRIMARY KEY, " + + "name TEXT, " + + "surname TEXT)"); + + SQLiteModel.getDbHandler().getWritableDatabase().execSQL("INSERT INTO employees ('name', 'surname') VALUES ('John', 'Smith')"); + SQLiteModel.getDbHandler().getWritableDatabase().execSQL("INSERT INTO employees ('name', 'surname') VALUES ('Joe', 'Blogs')"); + SQLiteModel.getDbHandler().getWritableDatabase().execSQL("INSERT INTO employees ('name', 'surname') VALUES ('Matt', 'Brau')"); + SQLiteModel.getDbHandler().getWritableDatabase().execSQL("INSERT INTO employees ('name', 'surname') VALUES ('Niamh', 'Wager')"); + SQLiteModel.getDbHandler().getWritableDatabase().execSQL("INSERT INTO employees ('name', 'surname') VALUES ('Grant', 'Walsh')"); } @Test @@ -33,10 +47,60 @@ public void getDatabaseName() throws Exception { public void testExists() { Employee employee = new Employee(); - employee.setName("Joe Blogs"); + employee.setName("Joe"); assertTrue(employee.save()); assertTrue(employee.exists()); + } + + @Test + public void testCount() + { + Assert.assertEquals(5, new Employee().count()); + } + @Test + public void testNextAutoIncrement() + { + Assert.assertEquals(6, new Employee().getNextAutoIncrement()); + } + + @Test + public void testGetOneById() + { + Employee matt = (Employee) new Employee().getOneById(3); + Assert.assertEquals("Matt", matt.getName()); + Assert.assertEquals("Brau", matt.getSurname()); + Assert.assertEquals(3, matt.getId()); + } + + @Test + public void testGetItemsForSelect() + { + LinkedHashMap items = new Employee().getItemsForSelect("name"); + + Assert.assertEquals(5, items.size()); + + //TODO test each item/ordering etc.. + } + + @Test + public void testGetItem() + { + Employee niamh = (Employee) new Employee().getItem(new Pair("name", "Niamh")); + + Assert.assertEquals(4, niamh.getId()); + Assert.assertEquals("Niamh", niamh.getName()); + Assert.assertEquals("Wager", niamh.getSurname()); + } + + @Test + public void testDelete() + { + Employee first = (Employee) new Employee().getOneById(1); + Assert.assertEquals(true, first.delete()); + Assert.assertEquals(4, new Employee().count()); + Assert.assertEquals(6, new Employee().getNextAutoIncrement()); + Assert.assertEquals(null, new Employee().getOneById(1)); } } \ No newline at end of file