diff --git a/app/src/androidTest/java/org/isoron/uhabits/models/sqlite/HabitRecordTest.java b/app/src/androidTest/java/org/isoron/uhabits/models/sqlite/HabitRecordTest.java new file mode 100644 index 000000000..d701056df --- /dev/null +++ b/app/src/androidTest/java/org/isoron/uhabits/models/sqlite/HabitRecordTest.java @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2016 Álinson Santos Xavier + * + * This file is part of Loop Habit Tracker. + * + * Loop Habit Tracker is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. + * + * Loop Habit Tracker is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +package org.isoron.uhabits.models.sqlite; + +import android.support.test.runner.*; +import android.test.suitebuilder.annotation.*; + +import org.isoron.uhabits.*; +import org.isoron.uhabits.models.*; +import org.isoron.uhabits.models.sqlite.records.*; +import org.junit.*; +import org.junit.runner.*; + +import static org.hamcrest.MatcherAssert.*; +import static org.hamcrest.core.IsEqual.*; + +@RunWith(AndroidJUnit4.class) +@MediumTest +public class HabitRecordTest extends BaseAndroidTest +{ + @Override + public void setUp() + { + super.setUp(); + + Habit h = component.getModelFactory().buildHabit(); + h.setName("Hello world"); + h.setId(1000L); + + HabitRecord record = new HabitRecord(); + record.copyFrom(h); + record.position = 0; + record.save(1000L); + } + + @Test + public void testCopyFrom() + { + Habit habit = component.getModelFactory().buildHabit(); + habit.setName("Hello world"); + habit.setDescription("Did you greet the world today?"); + habit.setColor(1); + habit.setArchived(true); + habit.setFrequency(Frequency.THREE_TIMES_PER_WEEK); + habit.setReminder(new Reminder(8, 30, WeekdayList.EVERY_DAY)); + habit.setId(1000L); + + HabitRecord rec = new HabitRecord(); + rec.copyFrom(habit); + + assertThat(rec.name, equalTo(habit.getName())); + assertThat(rec.description, equalTo(habit.getDescription())); + assertThat(rec.color, equalTo(habit.getColor())); + assertThat(rec.archived, equalTo(1)); + assertThat(rec.freqDen, equalTo(7)); + assertThat(rec.freqNum, equalTo(3)); + + Reminder reminder = habit.getReminder(); + assertThat(rec.reminderDays, equalTo(reminder.getDays().toInteger())); + assertThat(rec.reminderHour, equalTo(reminder.getHour())); + assertThat(rec.reminderMin, equalTo(reminder.getMinute())); + + habit.setReminder(null); + rec.copyFrom(habit); + + assertThat(rec.reminderMin, equalTo(null)); + assertThat(rec.reminderHour, equalTo(null)); + assertThat(rec.reminderDays, equalTo(0)); + } +} diff --git a/app/src/main/java/org/isoron/uhabits/models/sqlite/records/HabitRecord.java b/app/src/main/java/org/isoron/uhabits/models/sqlite/records/HabitRecord.java index 2150a14fb..71f4cbdd3 100644 --- a/app/src/main/java/org/isoron/uhabits/models/sqlite/records/HabitRecord.java +++ b/app/src/main/java/org/isoron/uhabits/models/sqlite/records/HabitRecord.java @@ -148,6 +148,8 @@ public class HabitRecord extends Model implements SQLiteRecord this.freqNum = freq.getNumerator(); this.freqDen = freq.getDenominator(); this.reminderDays = 0; + this.reminderMin = null; + this.reminderHour = null; if (model.hasReminder()) {