// Path: app/src/mx/udlap/is522/tedroid/data/Score.java
// public class Score implements Serializable {
// 
//     private static final long serialVersionUID = 2888499014768693222L;
// 
//     private Date obtainedAt;
//     private Integer level;
//     private Integer lines;
//     private Integer points;
// 
//     /** @return la fecha en la que se obtuvo este puntaje. */
//     public Date getObtainedAt() {
//         return obtainedAt;
//     }
// 
//     /** @param obtainedAt la fecha en la que se obtuvo este puntaje. */
//     public void setObtainedAt(Date obtainedAt) {
//         this.obtainedAt = obtainedAt;
//     }
// 
//     /** @return el nivel alcanzado en la partida. */
//     public Integer getLevel() {
//         return level;
//     }
// 
//     /** @param level el nivel alcanzado en la partida. */
//     public void setLevel(Integer level) {
//         this.level = level;
//     }
// 
//     /** @return las lineas borradas en la partida. */
//     public Integer getLines() {
//         return lines;
//     }
// 
//     /** @param lines las lineas borradas en la partida. */
//     public void setLines(Integer lines) {
//         this.lines = lines;
//     }
// 
//     /** @return los puntos conseguidos en la partida. */
//     public Integer getPoints() {
//         return points;
//     }
// 
//     /** @param points los puntos conseguidos en la partida. */
//     public void setPoints(Integer points) {
//         this.points = points;
//     }
// 
//     @Override
//     public int hashCode() {
//         final int prime = 31;
//         int result = 1;
//         result = prime * result + ((level == null) ? 0 : level.hashCode());
//         result = prime * result + ((lines == null) ? 0 : lines.hashCode());
//         result = prime * result + ((obtainedAt == null) ? 0 : obtainedAt.hashCode());
//         result = prime * result + ((points == null) ? 0 : points.hashCode());
//         return result;
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (this == obj) return true;
//         if (obj == null) return false;
//         if (getClass() != obj.getClass()) return false;
//         Score other = (Score) obj;
//         if (level == null) {
//             if (other.level != null) return false;
//         } else if (!level.equals(other.level)) return false;
//         if (lines == null) {
//             if (other.lines != null) return false;
//         } else if (!lines.equals(other.lines)) return false;
//         if (obtainedAt == null) {
//             if (other.obtainedAt != null) return false;
//         } else if (!obtainedAt.equals(other.obtainedAt)) return false;
//         if (points == null) {
//             if (other.points != null) return false;
//         } else if (!points.equals(other.points)) return false;
//         return true;
//     }
// 
//     @Override
//     public String toString() {
//         return new StringBuilder()
//             .append('{')
//             .append("\"obtainedAt\": ").append(obtainedAt).append(", ")
//             .append("\"level\": ").append(level).append(", ")
//             .append("\"lines\": ").append(lines).append(", ")
//             .append("\"points\": ").append(points)
//             .append('}')
//             .toString();
//     }
// }
// 
// Path: app/src/mx/udlap/is522/tedroid/data/dao/impl/DAOFactory.java
// public class DAOFactory {
// 
//     private final Context context;
// 
//     /**
//      * Crea una nueva fabrica.
//      * 
//      * @param context el contexto de la aplicación.
//      */
//     public DAOFactory(Context context) {
//         this.context = context;
//     }
// 
//     /** @return el ScoreSQLiteDAO correspondiente al juego clasico. */
//     public ScoreSQLiteDAO getScoreClassicDAO() {
//         return getScoreDAO(ScoreSQLiteDAO.Table.CLASSIC);
//     }
// 
//     /** @return el ScoreSQLiteDAO correspondiente al reto especial. */
//     public ScoreSQLiteDAO getScoreSpecialDAO() {
//         return getScoreDAO(ScoreSQLiteDAO.Table.SPECIAL);
//     }
// 
//     /** @return un ScoreSQLiteDAO. */
//     private ScoreSQLiteDAO getScoreDAO(ScoreSQLiteDAO.Table which) {
//         ScoreSQLiteDAO scoreSQLiteDAO = new ScoreSQLiteDAO(which);
//         scoreSQLiteDAO.setContext(context);
//         scoreSQLiteDAO.setSQLiteOpenHelper(new TedroidSQLiteOpenHelper(context));
//         return scoreSQLiteDAO;
//     }
// }


import java.util.Map;
import static org.fest.assertions.api.Assertions.assertThat;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import mx.udlap.is522.tedroid.data.Score;
import mx.udlap.is522.tedroid.data.dao.impl.DAOFactory;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
/*
 * Copyright 2014 Tedroid developers
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package mx.udlap.is522.tedroid.data.dao;






@RunWith(RobolectricTestRunner.class)
public class ScoreClassicDAOTest {

    private ScoreDAO scoreDAO;

    @Before
    public void setUp() throws Exception {
// Path: app/src/mx/udlap/is522/tedroid/data/Score.java
// public class Score implements Serializable {
// 
//     private static final long serialVersionUID = 2888499014768693222L;
// 
//     private Date obtainedAt;
//     private Integer level;
//     private Integer lines;
//     private Integer points;
// 
//     /** @return la fecha en la que se obtuvo este puntaje. */
//     public Date getObtainedAt() {
//         return obtainedAt;
//     }
// 
//     /** @param obtainedAt la fecha en la que se obtuvo este puntaje. */
//     public void setObtainedAt(Date obtainedAt) {
//         this.obtainedAt = obtainedAt;
//     }
// 
//     /** @return el nivel alcanzado en la partida. */
//     public Integer getLevel() {
//         return level;
//     }
// 
//     /** @param level el nivel alcanzado en la partida. */
//     public void setLevel(Integer level) {
//         this.level = level;
//     }
// 
//     /** @return las lineas borradas en la partida. */
//     public Integer getLines() {
//         return lines;
//     }
// 
//     /** @param lines las lineas borradas en la partida. */
//     public void setLines(Integer lines) {
//         this.lines = lines;
//     }
// 
//     /** @return los puntos conseguidos en la partida. */
//     public Integer getPoints() {
//         return points;
//     }
// 
//     /** @param points los puntos conseguidos en la partida. */
//     public void setPoints(Integer points) {
//         this.points = points;
//     }
// 
//     @Override
//     public int hashCode() {
//         final int prime = 31;
//         int result = 1;
//         result = prime * result + ((level == null) ? 0 : level.hashCode());
//         result = prime * result + ((lines == null) ? 0 : lines.hashCode());
//         result = prime * result + ((obtainedAt == null) ? 0 : obtainedAt.hashCode());
//         result = prime * result + ((points == null) ? 0 : points.hashCode());
//         return result;
//     }
// 
//     @Override
//     public boolean equals(Object obj) {
//         if (this == obj) return true;
//         if (obj == null) return false;
//         if (getClass() != obj.getClass()) return false;
//         Score other = (Score) obj;
//         if (level == null) {
//             if (other.level != null) return false;
//         } else if (!level.equals(other.level)) return false;
//         if (lines == null) {
//             if (other.lines != null) return false;
//         } else if (!lines.equals(other.lines)) return false;
//         if (obtainedAt == null) {
//             if (other.obtainedAt != null) return false;
//         } else if (!obtainedAt.equals(other.obtainedAt)) return false;
//         if (points == null) {
//             if (other.points != null) return false;
//         } else if (!points.equals(other.points)) return false;
//         return true;
//     }
// 
//     @Override
//     public String toString() {
//         return new StringBuilder()
//             .append('{')
//             .append("\"obtainedAt\": ").append(obtainedAt).append(", ")
//             .append("\"level\": ").append(level).append(", ")
//             .append("\"lines\": ").append(lines).append(", ")
//             .append("\"points\": ").append(points)
//             .append('}')
//             .toString();
//     }
// }
// 
// Path: app/src/mx/udlap/is522/tedroid/data/dao/impl/DAOFactory.java
// public class DAOFactory {
// 
//     private final Context context;
// 
//     /**
//      * Crea una nueva fabrica.
//      * 
//      * @param context el contexto de la aplicación.
//      */
//     public DAOFactory(Context context) {
//         this.context = context;
//     }
// 
//     /** @return el ScoreSQLiteDAO correspondiente al juego clasico. */
//     public ScoreSQLiteDAO getScoreClassicDAO() {
//         return getScoreDAO(ScoreSQLiteDAO.Table.CLASSIC);
//     }
// 
//     /** @return el ScoreSQLiteDAO correspondiente al reto especial. */
//     public ScoreSQLiteDAO getScoreSpecialDAO() {
//         return getScoreDAO(ScoreSQLiteDAO.Table.SPECIAL);
//     }
// 
//     /** @return un ScoreSQLiteDAO. */
//     private ScoreSQLiteDAO getScoreDAO(ScoreSQLiteDAO.Table which) {
//         ScoreSQLiteDAO scoreSQLiteDAO = new ScoreSQLiteDAO(which);
//         scoreSQLiteDAO.setContext(context);
//         scoreSQLiteDAO.setSQLiteOpenHelper(new TedroidSQLiteOpenHelper(context));
//         return scoreSQLiteDAO;
//     }
// }


// Path: tests/offline_tests/src/mx/udlap/is522/tedroid/data/dao/ScoreClassicDAOTest.java
import java.util.Map;
import static org.fest.assertions.api.Assertions.assertThat;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import mx.udlap.is522.tedroid.data.Score;
import mx.udlap.is522.tedroid.data.dao.impl.DAOFactory;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

/*
 * Copyright 2014 Tedroid developers
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package mx.udlap.is522.tedroid.data.dao;






@RunWith(RobolectricTestRunner.class)
public class ScoreClassicDAOTest {

    private ScoreDAO scoreDAO;

    @Before
    public void setUp() throws Exception {
        scoreDAO = new DAOFactory(Robolectric.application).getScoreClassicDAO();