From 1ad8529df8ea1afd628a311ac68227d3cde01f9b Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Mon, 1 Jan 2018 20:51:56 +0400 Subject: [PATCH] Fixed chrismas time fail on new year :-( --- .../src/main/java/mage/client/MageFrame.java | 17 +++++--- .../java/mage/client/util/ChrismasTest.java | 42 +++++++++++++++++++ 2 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 Mage.Client/src/test/java/mage/client/util/ChrismasTest.java diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java index 5d4d579a47e..9c5d93d6fe4 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.java +++ b/Mage.Client/src/main/java/mage/client/MageFrame.java @@ -429,16 +429,21 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { } } - private boolean isChrismasTime(){ + public static boolean isChrismasTime(Date currentTime){ // from december 15 to january 15 - Calendar cal = Calendar.getInstance(); + Calendar cal = new GregorianCalendar(); + cal.setTime(currentTime); + int currentYear = cal.get(Calendar.YEAR); - Date currentTime = cal.getTime(); + if (cal.get(Calendar.MONTH) == Calendar.JANUARY){ + currentYear = currentYear - 1; + } Date chrisFrom = new GregorianCalendar(currentYear, Calendar.DECEMBER, 15).getTime(); - Date chrisTo = new GregorianCalendar(currentYear + 1, Calendar.JANUARY, 15 + 1).getTime(); + Date chrisTo = new GregorianCalendar(currentYear + 1, Calendar.JANUARY, 15 + 1).getTime(); // end of the 15 day - return currentTime.after(chrisFrom) && currentTime.before(chrisTo); + return ((currentTime.equals(chrisFrom) || currentTime.after(chrisFrom)) + && currentTime.before(chrisTo)); } private void addMageLabel() { @@ -448,7 +453,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient { String filename; float ratio; - if (isChrismasTime()){ + if (isChrismasTime(Calendar.getInstance().getTime())){ // chrismass logo LOGGER.info("Yo Ho Ho, Merry Christmas and a Happy New Year"); filename = "/label-xmage-christmas.png"; diff --git a/Mage.Client/src/test/java/mage/client/util/ChrismasTest.java b/Mage.Client/src/test/java/mage/client/util/ChrismasTest.java new file mode 100644 index 00000000000..93d4b26c708 --- /dev/null +++ b/Mage.Client/src/test/java/mage/client/util/ChrismasTest.java @@ -0,0 +1,42 @@ +package mage.client.util; + +import org.junit.Assert; +import org.junit.Test; + +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; + +import static mage.client.MageFrame.isChrismasTime; + +public class ChrismasTest { + + private Date getDate(int Year, int Month, int Day){ + Calendar cal = new GregorianCalendar(Year, Month - 1, Day); + return cal.getTime(); + } + + @Test + public void ignoreDefaultResponse() throws Exception { + // chrismas from 15 december to 15 january + Assert.assertEquals(false, isChrismasTime(getDate(2017, 11, 1))); + Assert.assertEquals(false, isChrismasTime(getDate(2017, 11, 15))); + Assert.assertEquals(false, isChrismasTime(getDate(2017, 11, 30))); + Assert.assertEquals(false, isChrismasTime(getDate(2017, 12, 1))); + Assert.assertEquals(false, isChrismasTime(getDate(2017, 12, 14))); + Assert.assertEquals(true, isChrismasTime(getDate(2017, 12, 15))); + Assert.assertEquals(true, isChrismasTime(getDate(2017, 12, 16))); + Assert.assertEquals(true, isChrismasTime(getDate(2017, 12, 31))); + Assert.assertEquals(true, isChrismasTime(getDate(2018, 1, 1))); + Assert.assertEquals(true, isChrismasTime(getDate(2018, 1, 14))); + Assert.assertEquals(true, isChrismasTime(getDate(2018, 1, 15))); + Assert.assertEquals(false, isChrismasTime(getDate(2018, 1, 16))); + Assert.assertEquals(false, isChrismasTime(getDate(2018, 1, 31))); + Assert.assertEquals(false, isChrismasTime(getDate(2018, 2, 1))); + Assert.assertEquals(false, isChrismasTime(getDate(2018, 12, 1))); + Assert.assertEquals(true, isChrismasTime(getDate(2018, 12, 20))); + Assert.assertEquals(true, isChrismasTime(getDate(2019, 1, 10))); + Assert.assertEquals(false, isChrismasTime(getDate(2019, 1, 25))); + } + +}