/*
* Copyright 2012 Nodeable Inc
*
* 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 com.streamreduce.test.service;
import com.streamreduce.ProviderIdConstants;
import com.streamreduce.connections.AuthType;
import com.streamreduce.connections.FeedProvider;
import com.streamreduce.connections.RssProvider;
import com.streamreduce.core.model.Connection;
import com.streamreduce.core.model.SobaObject;
import com.streamreduce.core.model.User;
import com.streamreduce.core.service.ConnectionService;
import com.streamreduce.core.service.InventoryService;
import com.streamreduce.core.service.MessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import static com.streamreduce.test.service.TestUtils.SAMPLE_FEED_FILE_PATH;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@Service("testService")
public class TestService {
@Autowired
ConnectionService connectionService;
@Autowired
InventoryService inventoryService;
@Autowired
MessageService messageService;
/**
* Creates a test RSS connection, saves it for the passed in User, and refreshesFeedMessages on it.
* @return
*/
public Connection createSampleRssFeedPrivateConnectionAndRefresh(User u) throws Exception {
//First, setup a sample connection.
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String feb282012TimeStamp = Long.toString(sdf.parse("2012-02-28").getTime());
RssProvider mockProvider = mock(RssProvider.class);
when(mockProvider.getId()).thenReturn(ProviderIdConstants.FEED_PROVIDER_ID);
when(mockProvider.getType()).thenReturn(FeedProvider.TYPE);
Connection sampleFeedConnection = new Connection.Builder()
.provider(mockProvider)
.url(SAMPLE_FEED_FILE_PATH)
.alias("EC2")
.user(u)
.authType(AuthType.NONE)
.visibility(SobaObject.Visibility.SELF)
.build();
Map<String, String> metadata = new HashMap<>();
metadata.put("last_activity_poll", feb282012TimeStamp);
sampleFeedConnection.setMetadata(metadata);
sampleFeedConnection = connectionService.createConnection(sampleFeedConnection);
connectionService.fireOneTimeHighPriorityJobForConnection(sampleFeedConnection);
Thread.sleep(TimeUnit.SECONDS.toMillis(1));
return sampleFeedConnection;
}
}