/*
* Copyright (c) 2009-2010 Lockheed Martin Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* 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.eurekastreams.server.persistence.mappers;
import static org.junit.Assert.assertTrue;
import java.util.List;
import org.eurekastreams.server.domain.stream.plugins.Feed;
import org.eurekastreams.server.persistence.mappers.requests.CurrentDateInMinutesRequest;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Tests for the GetRefreshableFeedsMapper class.
*
*/
public class GetRefreshableFeedsMapperTest extends MapperTest
{
/**
* Time 1011.
*/
private static final long TIME1011 = 1011;
/**
* Time 1031.
*/
private static final long TIME1031 = 1031;
/**
* Time 1061.
*/
private static final long TIME1061 = 1061;
/**
* Time 1005.
*/
private static final long TIME1005 = 1005;
/**
* System under test.
*/
@Autowired
private GetRefreshableFeedsMapper sut;
/**
* All of the feeds in data set were updated at minute 1000. Only one of them is not pending and has an update time
* < 11, so this should only return 1 feed, feed ID 1.
*/
@Test
public void testExecuteAtTime1011()
{
CurrentDateInMinutesRequest request = new CurrentDateInMinutesRequest(TIME1011);
List<Feed> results = sut.execute(request);
assertTrue(results.size() == 2);
assertTrue(results.get(0).getId() == 1L);
assertTrue(results.get(1).getId() == 2L);
assertTrue(results.get(0).getUrl().equals("http://www.google1.com"));
}
/**
* Two of the feeds have update times of less than 31 (10 and 30, IDs 1 and 5) One of the feeds has no update time
* but it's plugin has an update time of 30. Therefore this should return 3 feeds.
*/
@Test
public void testExecuteAtTime1031()
{
CurrentDateInMinutesRequest request = new CurrentDateInMinutesRequest(TIME1031);
List<Feed> results = sut.execute(request);
assertTrue(results.size() == 4);
assertTrue(results.get(0).getId() == 1L);
assertTrue(results.get(1).getId() == 2L);
assertTrue(results.get(2).getId() == 4L);
assertTrue(results.get(3).getId() == 5L);
}
/**
* All of the feeds have over under 60 min refresh times except the 1 pending Four results should be returned.
*/
@Test
public void testExecuteAtTime1061()
{
CurrentDateInMinutesRequest request = new CurrentDateInMinutesRequest(TIME1061);
List<Feed> results = sut.execute(request);
assertTrue(results.size() == 5);
assertTrue(results.get(0).getId() == 1L);
assertTrue(results.get(1).getId() == 2L);
assertTrue(results.get(2).getId() == 3L);
assertTrue(results.get(3).getId() == 4L);
assertTrue(results.get(4).getId() == 5L);
}
/**
* None of the feeds have refresh times of under 5 min. No results.
*/
@Test
public void testExecuteAtTime1005()
{
CurrentDateInMinutesRequest request = new CurrentDateInMinutesRequest(TIME1005);
List<Feed> results = sut.execute(request);
assertTrue(results.size() == 0);
}
}