6.6.3 - Alpha2 - 本地化 Material Date Time Picker (版本 4.2.3)

This commit is contained in:
SuperMonster003
2025-05-07 23:47:22 +08:00
parent 6dc86a0668
commit 7a3891a14e
114 changed files with 14024 additions and 9 deletions

View File

@@ -0,0 +1,152 @@
package com.wdullaer.materialdatetimepicker.date;
import android.os.Parcel;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.Calendar;
import static org.junit.Assert.*;
/**
* Unit tests for DefaultDateRangeLimiter which need to run on an android device
* Mostly used to test Parcelable serialisation logic
* Created by wdullaer on 2/11/17.
*/
@RunWith(AndroidJUnit4.class)
public class DefaultDateRangeLimiterTest {
@Test
public void shouldCorrectlySaveAndRestoreAParcelWithAYearRange() {
int minYear = 1985;
int maxYear = 2015;
DefaultDateRangeLimiter limiter = new DefaultDateRangeLimiter();
limiter.setYearRange(minYear, maxYear);
Parcel parcel = Parcel.obtain();
limiter.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
DefaultDateRangeLimiter clonedLimiter = DefaultDateRangeLimiter.CREATOR.createFromParcel(parcel);
assertEquals(clonedLimiter.getMinYear(), minYear);
assertEquals(clonedLimiter.getMaxYear(), maxYear);
}
@Test
public void shouldCorrectlySaveAndRestoreAParcelWithAMinDate() {
Calendar minDate = Calendar.getInstance();
minDate.set(Calendar.YEAR, 1980);
DefaultDateRangeLimiter limiter = new DefaultDateRangeLimiter();
limiter.setMinDate(minDate);
Parcel parcel = Parcel.obtain();
limiter.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
DefaultDateRangeLimiter clonedLimiter = DefaultDateRangeLimiter.CREATOR.createFromParcel(parcel);
assertEquals(clonedLimiter.getMinDate(), limiter.getMinDate());
}
@Test
public void shouldCorrectlySaveAndRestoreAParcelWithAMaxDate() {
Calendar maxDate = Calendar.getInstance();
DefaultDateRangeLimiter limiter = new DefaultDateRangeLimiter();
limiter.setMaxDate(maxDate);
Parcel parcel = Parcel.obtain();
limiter.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
DefaultDateRangeLimiter clonedLimiter = DefaultDateRangeLimiter.CREATOR.createFromParcel(parcel);
assertEquals(clonedLimiter.getMaxDate(), limiter.getMaxDate());
}
@Test
public void shouldCorrectlySaveAndRestoreAParcelWithSelectableDays() {
Calendar day1 = Calendar.getInstance();
day1.set(Calendar.YEAR, 1985);
Calendar day2 = Calendar.getInstance();
Calendar[] selectableDays = {
day1,
day2
};
DefaultDateRangeLimiter limiter = new DefaultDateRangeLimiter();
limiter.setSelectableDays(selectableDays);
Parcel parcel = Parcel.obtain();
limiter.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
DefaultDateRangeLimiter clonedLimiter = DefaultDateRangeLimiter.CREATOR.createFromParcel(parcel);
assertArrayEquals(clonedLimiter.getSelectableDays(), limiter.getSelectableDays());
}
@Test
public void shouldCorrectlySaveAndRestoreAParcelWithDisabledDays() {
Calendar day1 = Calendar.getInstance();
day1.set(Calendar.YEAR, 1985);
Calendar day2 = Calendar.getInstance();
Calendar[] disabledDays = {
day1,
day2
};
DefaultDateRangeLimiter limiter = new DefaultDateRangeLimiter();
limiter.setDisabledDays(disabledDays);
Parcel parcel = Parcel.obtain();
limiter.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
DefaultDateRangeLimiter clonedLimiter = DefaultDateRangeLimiter.CREATOR.createFromParcel(parcel);
assertArrayEquals(clonedLimiter.getDisabledDays(), limiter.getDisabledDays());
}
@Test
public void shouldCorrectlySaveAndRestoreAParcel() {
int minYear = 1970;
int maxYear = 2020;
Calendar minDate = Calendar.getInstance();
minDate.set(Calendar.YEAR, 1985);
Calendar maxDate = Calendar.getInstance();
maxDate.set(Calendar.YEAR, 2019);
Calendar day1 = Calendar.getInstance();
day1.set(Calendar.MONTH, Calendar.JANUARY);
Calendar day2 = Calendar.getInstance();
day2.set(Calendar.MONTH, Calendar.AUGUST);
Calendar[] disabledDays = {
day1,
day2
};
Calendar[] selectableDays = {
Calendar.getInstance()
};
DefaultDateRangeLimiter limiter = new DefaultDateRangeLimiter();
limiter.setYearRange(minYear, maxYear);
limiter.setMinDate(minDate);
limiter.setMaxDate(maxDate);
limiter.setDisabledDays(disabledDays);
limiter.setSelectableDays(selectableDays);
Parcel parcel = Parcel.obtain();
limiter.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
DefaultDateRangeLimiter clonedLimiter = DefaultDateRangeLimiter.CREATOR.createFromParcel(parcel);
assertEquals(clonedLimiter.getMinYear(), limiter.getMinYear());
assertEquals(clonedLimiter.getMaxYear(), limiter.getMaxYear());
assertEquals(clonedLimiter.getMinDate(), limiter.getMinDate());
assertEquals(clonedLimiter.getMaxDate(), limiter.getMaxDate());
assertArrayEquals(clonedLimiter.getDisabledDays(), limiter.getDisabledDays());
assertArrayEquals(clonedLimiter.getSelectableDays(), limiter.getSelectableDays());
}
}

View File

@@ -0,0 +1,118 @@
package com.wdullaer.materialdatetimepicker.time;
import android.os.Parcel;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Unit tests for DefaultTimepointLimiter which need to run on an android device
* Mostly used to test Parcelable serialisation logic
* Created by wdullaer on 1/11/17.
*/
@RunWith(AndroidJUnit4.class)
public class DefaultTimepointLimiterTest {
@Test
public void shouldCorrectlySaveAndRestoreAParcelWithMinTime() {
Timepoint minTime = new Timepoint(1, 2, 3);
DefaultTimepointLimiter limiter = new DefaultTimepointLimiter();
limiter.setMinTime(minTime);
Parcel limiterParcel = Parcel.obtain();
limiter.writeToParcel(limiterParcel, 0);
limiterParcel.setDataPosition(0);
DefaultTimepointLimiter clonedLimiter = DefaultTimepointLimiter.CREATOR.createFromParcel(limiterParcel);
assertEquals(clonedLimiter.getMinTime(), minTime);
}
@Test
public void shouldCorrectlySaveAndRestoreAParcelWithMaxTime() {
Timepoint maxTime = new Timepoint(1, 2, 3);
DefaultTimepointLimiter limiter = new DefaultTimepointLimiter();
limiter.setMaxTime(maxTime);
Parcel limiterParcel = Parcel.obtain();
limiter.writeToParcel(limiterParcel, 0);
limiterParcel.setDataPosition(0);
DefaultTimepointLimiter clonedLimiter = DefaultTimepointLimiter.CREATOR.createFromParcel(limiterParcel);
assertEquals(clonedLimiter.getMaxTime(), maxTime);
}
@Test
public void shouldCorrectlySaveAndRestoreAParcelWithSelectableTimes() {
Timepoint[] disabledTimes = {
new Timepoint(1, 2, 3),
new Timepoint(10, 11, 12)
};
DefaultTimepointLimiter limiter = new DefaultTimepointLimiter();
limiter.setDisabledTimes(disabledTimes);
Parcel limiterParcel = Parcel.obtain();
limiter.writeToParcel(limiterParcel, 0);
limiterParcel.setDataPosition(0);
DefaultTimepointLimiter clonedLimiter = DefaultTimepointLimiter.CREATOR.createFromParcel(limiterParcel);
assertArrayEquals(clonedLimiter.getDisabledTimes(), disabledTimes);
}
@Test
public void shouldCorrectlySaveAndRestoreAParcelWithDisabledTimes() {
Timepoint[] selectableTimes = {
new Timepoint(1, 2, 3),
new Timepoint(10, 11, 12)
};
DefaultTimepointLimiter limiter = new DefaultTimepointLimiter();
limiter.setSelectableTimes(selectableTimes);
Parcel limiterParcel = Parcel.obtain();
limiter.writeToParcel(limiterParcel, 0);
limiterParcel.setDataPosition(0);
DefaultTimepointLimiter clonedLimiter = DefaultTimepointLimiter.CREATOR.createFromParcel(limiterParcel);
assertArrayEquals(clonedLimiter.getSelectableTimes(), selectableTimes);
}
@Test
public void shouldCorrectlySaveAndRestoreAParcel() {
Timepoint minTime = new Timepoint(1, 2, 3);
Timepoint maxTime = new Timepoint(12, 13, 14);
Timepoint[] disabledTimes = {
new Timepoint(2, 3, 4),
new Timepoint(3, 4, 5)
};
Timepoint[] selectableTimes = {
new Timepoint(2, 3, 4),
new Timepoint(10, 11, 12)
};
DefaultTimepointLimiter limiter = new DefaultTimepointLimiter();
limiter.setMinTime(minTime);
limiter.setMaxTime(maxTime);
limiter.setDisabledTimes(disabledTimes);
limiter.setSelectableTimes(selectableTimes);
Parcel limiterParcel = Parcel.obtain();
limiter.writeToParcel(limiterParcel, 0);
limiterParcel.setDataPosition(0);
DefaultTimepointLimiter clonedLimiter = DefaultTimepointLimiter.CREATOR.createFromParcel(limiterParcel);
assertEquals(clonedLimiter.getMinTime(), minTime);
assertEquals(clonedLimiter.getMaxTime(), maxTime);
assertArrayEquals(clonedLimiter.getDisabledTimes(), disabledTimes);
assertArrayEquals(clonedLimiter.getSelectableTimes(), selectableTimes);
}
}

View File

@@ -0,0 +1,28 @@
package com.wdullaer.materialdatetimepicker.time;
import android.os.Parcel;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* Test for Timepoint which need to run on an actual device
* Created by wdullaer on 1/11/17.
*/
@RunWith(AndroidJUnit4.class)
public class TimepointTest {
@Test
public void shouldCorrectlySaveAndRestoreAParcel() {
Timepoint input = new Timepoint(1, 2, 3);
Parcel timepointParcel = Parcel.obtain();
input.writeToParcel(timepointParcel, 0);
timepointParcel.setDataPosition(0);
Timepoint output = Timepoint.CREATOR.createFromParcel(timepointParcel);
assertEquals(input.getHour(), output.getHour());
assertEquals(input.getMinute(), output.getMinute());
assertEquals(input.getSecond(), output.getSecond());
}
}