Skip to content

Commit

Permalink
Fixed chrismas time fail on new year :-(
Browse files Browse the repository at this point in the history
  • Loading branch information
JayDi85 committed Jan 1, 2018
1 parent 56d214f commit 1ad8529
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 6 deletions.
17 changes: 11 additions & 6 deletions Mage.Client/src/main/java/mage/client/MageFrame.java
Original file line number Diff line number Diff line change
Expand Up @@ -429,16 +429,21 @@ private void setBackground() {
}
}

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() {
Expand All @@ -448,7 +453,7 @@ private void addMageLabel() {

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";
Expand Down
42 changes: 42 additions & 0 deletions Mage.Client/src/test/java/mage/client/util/ChrismasTest.java
Original file line number Diff line number Diff line change
@@ -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)));
}

}

0 comments on commit 1ad8529

Please sign in to comment.