This is an automated email from the ASF dual-hosted git repository. sblackmon pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/streams.git
The following commit(s) were added to refs/heads/master by this push: new ee14cb0 STREAMS-640 Repeated test failure in streams-persist-rss new b124f45 Merge pull request #480 from steveblackmon/STREAMS-640 ee14cb0 is described below commit ee14cb01937d4aea71e43f4529c58a9426001af5 Author: Steve Blackmon <sblack...@apache.org> AuthorDate: Tue Mar 19 09:55:42 2019 -0500 STREAMS-640 Repeated test failure in streams-persist-rss --- .../provider/perpetual/RssFeedSchedulerTest.java | 96 ---------------------- 1 file changed, 96 deletions(-) diff --git a/streams-contrib/streams-provider-rss/src/test/java/org/apache/streams/rss/provider/perpetual/RssFeedSchedulerTest.java b/streams-contrib/streams-provider-rss/src/test/java/org/apache/streams/rss/provider/perpetual/RssFeedSchedulerTest.java deleted file mode 100644 index bf4720a..0000000 --- a/streams-contrib/streams-provider-rss/src/test/java/org/apache/streams/rss/provider/perpetual/RssFeedSchedulerTest.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.streams.rss.provider.perpetual; - -import org.apache.streams.rss.FeedDetails; -import org.apache.streams.rss.provider.RssStreamProviderTask; - -import org.junit.Assert; -import org.junit.Test; - -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.LinkedBlockingQueue; - -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.mock; - -/** - * Unit tests for {@link org.apache.streams.rss.provider.perpetual.RssFeedScheduler} - */ -public class RssFeedSchedulerTest { - - - /** - * Test that feeds are scheduled based on elapsed time correctly. - * Takes 1 minute to run. - */ - @Test - public void testScheduleFeeds() { - ExecutorService mockService = mock(ExecutorService.class); - final List<String> queuedTasks = new ArrayList<>(5); - doAnswer(invocationOnMock -> { - queuedTasks.add(((RssStreamProviderTask) invocationOnMock.getArguments()[0]).getRssFeed()); - return null; - }).when(mockService).execute(any(Runnable.class)); - - RssFeedScheduler scheduler = new RssFeedScheduler(mockService, createFeedList(), new LinkedBlockingQueue<>(), 1); - scheduler.scheduleFeeds(); - Assert.assertEquals("Expected 2 Feeds to be scheduled", 2, queuedTasks.size()); - Assert.assertEquals("Expected Feed 1 to be queued first", "1", queuedTasks.get(0)); - Assert.assertEquals("Expected Feed 2 to be queued second", "2", queuedTasks.get(1)); - - safeSleep(1); - scheduler.scheduleFeeds(); - Assert.assertEquals("Only feed 1 should have been re-queued", 3, queuedTasks.size()); - Assert.assertEquals("Only feed 1 should have been re-queued", "1", queuedTasks.get(2)); - - safeSleep(60 * 1000); - scheduler.scheduleFeeds(); - Assert.assertEquals("Both feeds should have been re-queued", 5, queuedTasks.size()); - Assert.assertEquals("1", queuedTasks.get(3)); - Assert.assertEquals("2", queuedTasks.get(4)); - } - - private List<FeedDetails> createFeedList() { - List<FeedDetails> list = new LinkedList<>(); - FeedDetails fd = new FeedDetails(); - fd.setPollIntervalMillis(1L); - fd.setUrl("1"); - list.add(fd); - - fd = new FeedDetails(); - fd.setPollIntervalMillis(60L * 1000); - fd.setUrl("2"); - list.add(fd); - return list; - } - - private void safeSleep(long milliseconds) { - try { - Thread.sleep(milliseconds); - } catch (InterruptedException ie) { - Thread.currentThread().interrupt(); - } - } - -}