package com.lemenzo.clock;

import android.test.InstrumentationTestCase;
import com.lemenzo.clock.alarm.AlarmScheduler;
import com.lemenzo.clock.model.Alarm;
import java.util.Calendar;
import java.util.TimeZone;

public final class AlarmDstRegressionTest extends InstrumentationTestCase {
    public void testSpringForwardAlwaysSchedulesFutureOccurrence() {
        TimeZone old = TimeZone.getDefault();
        try {
            TimeZone.setDefault(TimeZone.getTimeZone("Europe/Copenhagen"));
            Calendar now = Calendar.getInstance();
            now.set(2026, Calendar.MARCH, 29, 1, 55, 0);
            now.set(Calendar.MILLISECOND, 0);
            Alarm a = new Alarm();
            a.hour = 2;
            a.minute = 30;
            a.enabled = true;
            long next = AlarmScheduler.next(a, now.getTimeInMillis());
            assertTrue(next > now.getTimeInMillis());
        } finally {
            TimeZone.setDefault(old);
        }
    }

    public void testFallBackStillSchedulesFutureOccurrence() {
        TimeZone old = TimeZone.getDefault();
        try {
            TimeZone.setDefault(TimeZone.getTimeZone("Europe/Copenhagen"));
            Calendar now = Calendar.getInstance();
            now.set(2026, Calendar.OCTOBER, 25, 1, 15, 0);
            now.set(Calendar.MILLISECOND, 0);
            Alarm a = new Alarm();
            a.hour = 2;
            a.minute = 30;
            a.enabled = true;
            long next = AlarmScheduler.next(a, now.getTimeInMillis());
            assertTrue(next > now.getTimeInMillis());
        } finally {
            TimeZone.setDefault(old);
        }
    }
}
