From 80298b48a6659e7f7fdfce908758cae3f59808e6 Mon Sep 17 00:00:00 2001 From: Markus Kreth Date: Mon, 17 Dec 2018 02:56:43 +0100 Subject: [PATCH] CalendarTaskRefresher is skippable via system property. --- .../business/CalendarTaskRefresher.java | 15 +++++- .../business/CalendarTaskRefresherTest.java | 46 +++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/business/CalendarTaskRefresherTest.java diff --git a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/business/CalendarTaskRefresher.java b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/business/CalendarTaskRefresher.java index 344ae3a..2125b45 100644 --- a/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/business/CalendarTaskRefresher.java +++ b/src/main/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/business/CalendarTaskRefresher.java @@ -17,17 +17,24 @@ import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubEvent; @Component public class CalendarTaskRefresher { + public static final String SKIP_EVENT_UPDATE = "skipEventUpdate"; + private static final long RATE = 1000L * 60 * 10; private final Logger log = LoggerFactory.getLogger(getClass()); + private final boolean skip = Boolean.parseBoolean(System.getProperty(SKIP_EVENT_UPDATE, "false")); @Autowired ClubEventDao dao; - EventBusiness business = new EventBusiness(); + @Autowired + EventBusiness eventBusiness; @Scheduled(fixedDelay = RATE) public void synchronizeCalendarTasks() { - List events = business.loadEvents(null, true); + if (skip) { + return; + } + List events = eventBusiness.loadEvents(null, true); for (ClubEvent e : events) { if (dao.get(e.getId()) == null) { try { @@ -48,4 +55,8 @@ public class CalendarTaskRefresher { public void setDao(ClubEventDao dao) { this.dao = dao; } + + public void setEventBusiness(EventBusiness eventBusiness) { + this.eventBusiness = eventBusiness; + } } diff --git a/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/business/CalendarTaskRefresherTest.java b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/business/CalendarTaskRefresherTest.java new file mode 100644 index 0000000..2040e95 --- /dev/null +++ b/src/test/java/de/kreth/vaadin/clubhelper/vaadinclubhelper/business/CalendarTaskRefresherTest.java @@ -0,0 +1,46 @@ +package de.kreth.vaadin.clubhelper.vaadinclubhelper.business; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.util.Collections; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import de.kreth.vaadin.clubhelper.vaadinclubhelper.dao.ClubEventDao; + +class CalendarTaskRefresherTest { + + @Mock + private ClubEventDao dao; + @Mock + private EventBusiness eventBusiness; + + @BeforeEach + void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + when(eventBusiness.loadEvents(any(), anyBoolean())).thenReturn(Collections.emptyList()); + } + + @Test + void testSkip() { + CalendarTaskRefresher r = new CalendarTaskRefresher(); + r.setDao(dao); + r.setEventBusiness(eventBusiness); + r.synchronizeCalendarTasks(); + verify(eventBusiness).loadEvents(any(), anyBoolean()); + System.setProperty(CalendarTaskRefresher.SKIP_EVENT_UPDATE, Boolean.TRUE.toString()); + + r = new CalendarTaskRefresher(); + r.setDao(dao); + r.setEventBusiness(eventBusiness); + r.synchronizeCalendarTasks(); + verify(eventBusiness).loadEvents(any(), anyBoolean()); + } + +}