// Path: mvp/app/src/main/java/com/tinmegali/tutsmvp_sample/data/DAO.java
// public class DAO {
// 
//     private DBSchema mHelper;
//     private Context mContext;
// 
//     //SELECTIONS
//     private static final String     SELECT_ID_BASED = DBSchema.TB_NOTES.ID + " = ? ";
//     private static final String     PROJECTION_ALL  = " * ";
//     public static final String      SORT_ORDER_DEFAULT  = DBSchema.TB_NOTES.ID + " DESC";
// 
//     public DAO(Context context) {
//         this.mContext = context;
//         mHelper = new DBSchema(mContext);
//     }
// 
//     private SQLiteDatabase getReadDB(){
//         return mHelper.getReadableDatabase();
//     }
// 
//     private SQLiteDatabase getWriteDB(){
//         return mHelper.getWritableDatabase();
//     }
// 
//     public Note insertNote(Note note) {
//         SQLiteDatabase db = getWriteDB();
//         long id = db.insert(
//                 DBSchema.TABLE_NOTES,
//                 null,
//                 note.getValues()
//         );
//         Note insertedNote = getNote((int)id);
//         db.close();
//         return insertedNote;
//     }
// 
//     public long deleteNote(Note note) {
//         SQLiteDatabase db = getWriteDB();
//         long res = db.delete(
//                 DBSchema.TABLE_NOTES,
//                 SELECT_ID_BASED,
//                 new String[]{Integer.toString(note.getId())}
// 
//         );
//         db.close();
//         return res;
//     }
// 
//     public ArrayList<Note> getAllNotes() {
//         SQLiteDatabase db = getReadDB();
//         Cursor c = db.query(
//                 DBSchema.TABLE_NOTES,
//                 null,
//                 null,
//                 null, null, null,
//                 SORT_ORDER_DEFAULT
//         );
//         if ( c!= null) {
//             c.moveToFirst();
//             ArrayList<Note> notes = new ArrayList<>();
//             while (!c.isAfterLast()) {
//                 Note note = new Note();
//                 note.setId( c.getInt( c.getColumnIndexOrThrow( DBSchema.TB_NOTES.ID )));
//                 note.setText(c.getString(c.getColumnIndexOrThrow(DBSchema.TB_NOTES.NOTE)));
//                 note.setDate(c.getString(c.getColumnIndexOrThrow(DBSchema.TB_NOTES.DATE)));
//                 notes.add(note);
//                 c.moveToNext();
//             }
//             c.close();
//             db.close();
//             return notes;
//         } else {
//             return null;
//         }
//     }
// 
//     public Note getNote(int id){
//         SQLiteDatabase db = getReadDB();
//         Cursor c = db.query(
//                 DBSchema.TABLE_NOTES,
//                 null,
//                 SELECT_ID_BASED,
//                 new String[]{Integer.toString(id)},
//                 null,
//                 null,
//                 null
//         );
//         if (c != null) {
//             c.moveToFirst();
//             Note note = new Note();
//             note.setId(c.getInt(c.getColumnIndexOrThrow(DBSchema.TB_NOTES.ID)));
//             note.setText(c.getString(c.getColumnIndexOrThrow(DBSchema.TB_NOTES.NOTE)));
//             note.setDate(c.getString(c.getColumnIndexOrThrow(DBSchema.TB_NOTES.DATE)));
//             c.close();
//             db.close();
//             return note;
//         } else return null;
//     }
// 
// }
// 
// Path: mvp/app/src/main/java/com/tinmegali/tutsmvp_sample/models/Note.java
// public class Note {
// 
//     private int id = -1;
//     private String mText;
//     private String mDate;
// 
//     public Note() {
//     }
// 
//     public Note(int id, String mText, String mDate) {
//         this.id = id;
//         this.mText = mText;
//         this.mDate = mDate;
//     }
// 
//     public Note(String mText, String mDate) {
//         this.mText = mText;
//         this.mDate = mDate;
//     }
// 
//     public ContentValues getValues(){
//         ContentValues cv = new ContentValues();
//         if ( id!=-1) cv.put(DBSchema.TB_NOTES.ID, id);
//         cv.put(DBSchema.TB_NOTES.NOTE, mText);
//         cv.put(DBSchema.TB_NOTES.DATE, mDate);
//         return cv;
//     }
// 
//     public void setId(int id) {
//         this.id = id;
//     }
// 
//     public void setDate(String mDate) {
//         this.mDate = mDate;
//     }
// 
//     public void setText(String mText) {
//         this.mText = mText;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public String getDate() {
//         return mDate;
//     }
// 
//     public String getText() {
//         return mText;
//     }
// }


import android.content.Context;
import com.tinmegali.tutsmvp_sample.data.DAO;
import com.tinmegali.tutsmvp_sample.models.Note;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import java.util.ArrayList;
import static org.junit.Assert.*;
package com.tinmegali.tutsmvp_sample;






/**
 * ---------------------------------------------------
 * Created by Tin Megali on 18/03/16.
 * Project: tuts+mvp_sample
 * ---------------------------------------------------
 * <a href="http://www.tinmegali.com">tinmegali.com</a>
 * <a href="http://www.github.com/tinmegali>github</a>
 * ---------------------------------------------------
 */
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21, manifest = "/src/main/AndroidManifest.xml")
public class DBTest {

    private DAO dao;

    @Before
    public void setup() {
        Context context = RuntimeEnvironment.application;
        dao = new DAO(context);
    }

// Path: mvp/app/src/main/java/com/tinmegali/tutsmvp_sample/data/DAO.java
// public class DAO {
// 
//     private DBSchema mHelper;
//     private Context mContext;
// 
//     //SELECTIONS
//     private static final String     SELECT_ID_BASED = DBSchema.TB_NOTES.ID + " = ? ";
//     private static final String     PROJECTION_ALL  = " * ";
//     public static final String      SORT_ORDER_DEFAULT  = DBSchema.TB_NOTES.ID + " DESC";
// 
//     public DAO(Context context) {
//         this.mContext = context;
//         mHelper = new DBSchema(mContext);
//     }
// 
//     private SQLiteDatabase getReadDB(){
//         return mHelper.getReadableDatabase();
//     }
// 
//     private SQLiteDatabase getWriteDB(){
//         return mHelper.getWritableDatabase();
//     }
// 
//     public Note insertNote(Note note) {
//         SQLiteDatabase db = getWriteDB();
//         long id = db.insert(
//                 DBSchema.TABLE_NOTES,
//                 null,
//                 note.getValues()
//         );
//         Note insertedNote = getNote((int)id);
//         db.close();
//         return insertedNote;
//     }
// 
//     public long deleteNote(Note note) {
//         SQLiteDatabase db = getWriteDB();
//         long res = db.delete(
//                 DBSchema.TABLE_NOTES,
//                 SELECT_ID_BASED,
//                 new String[]{Integer.toString(note.getId())}
// 
//         );
//         db.close();
//         return res;
//     }
// 
//     public ArrayList<Note> getAllNotes() {
//         SQLiteDatabase db = getReadDB();
//         Cursor c = db.query(
//                 DBSchema.TABLE_NOTES,
//                 null,
//                 null,
//                 null, null, null,
//                 SORT_ORDER_DEFAULT
//         );
//         if ( c!= null) {
//             c.moveToFirst();
//             ArrayList<Note> notes = new ArrayList<>();
//             while (!c.isAfterLast()) {
//                 Note note = new Note();
//                 note.setId( c.getInt( c.getColumnIndexOrThrow( DBSchema.TB_NOTES.ID )));
//                 note.setText(c.getString(c.getColumnIndexOrThrow(DBSchema.TB_NOTES.NOTE)));
//                 note.setDate(c.getString(c.getColumnIndexOrThrow(DBSchema.TB_NOTES.DATE)));
//                 notes.add(note);
//                 c.moveToNext();
//             }
//             c.close();
//             db.close();
//             return notes;
//         } else {
//             return null;
//         }
//     }
// 
//     public Note getNote(int id){
//         SQLiteDatabase db = getReadDB();
//         Cursor c = db.query(
//                 DBSchema.TABLE_NOTES,
//                 null,
//                 SELECT_ID_BASED,
//                 new String[]{Integer.toString(id)},
//                 null,
//                 null,
//                 null
//         );
//         if (c != null) {
//             c.moveToFirst();
//             Note note = new Note();
//             note.setId(c.getInt(c.getColumnIndexOrThrow(DBSchema.TB_NOTES.ID)));
//             note.setText(c.getString(c.getColumnIndexOrThrow(DBSchema.TB_NOTES.NOTE)));
//             note.setDate(c.getString(c.getColumnIndexOrThrow(DBSchema.TB_NOTES.DATE)));
//             c.close();
//             db.close();
//             return note;
//         } else return null;
//     }
// 
// }
// 
// Path: mvp/app/src/main/java/com/tinmegali/tutsmvp_sample/models/Note.java
// public class Note {
// 
//     private int id = -1;
//     private String mText;
//     private String mDate;
// 
//     public Note() {
//     }
// 
//     public Note(int id, String mText, String mDate) {
//         this.id = id;
//         this.mText = mText;
//         this.mDate = mDate;
//     }
// 
//     public Note(String mText, String mDate) {
//         this.mText = mText;
//         this.mDate = mDate;
//     }
// 
//     public ContentValues getValues(){
//         ContentValues cv = new ContentValues();
//         if ( id!=-1) cv.put(DBSchema.TB_NOTES.ID, id);
//         cv.put(DBSchema.TB_NOTES.NOTE, mText);
//         cv.put(DBSchema.TB_NOTES.DATE, mDate);
//         return cv;
//     }
// 
//     public void setId(int id) {
//         this.id = id;
//     }
// 
//     public void setDate(String mDate) {
//         this.mDate = mDate;
//     }
// 
//     public void setText(String mText) {
//         this.mText = mText;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public String getDate() {
//         return mDate;
//     }
// 
//     public String getText() {
//         return mText;
//     }
// }


// Path: mvp/app/src/test/java/com/tinmegali/tutsmvp_sample/DBTest.java
import android.content.Context;
import com.tinmegali.tutsmvp_sample.data.DAO;
import com.tinmegali.tutsmvp_sample.models.Note;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import java.util.ArrayList;
import static org.junit.Assert.*;

package com.tinmegali.tutsmvp_sample;






/**
 * ---------------------------------------------------
 * Created by Tin Megali on 18/03/16.
 * Project: tuts+mvp_sample
 * ---------------------------------------------------
 * <a href="http://www.tinmegali.com">tinmegali.com</a>
 * <a href="http://www.github.com/tinmegali>github</a>
 * ---------------------------------------------------
 */
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21, manifest = "/src/main/AndroidManifest.xml")
public class DBTest {

    private DAO dao;

    @Before
    public void setup() {
        Context context = RuntimeEnvironment.application;
        dao = new DAO(context);
    }

    private Note getNote(String text) {