/**
* Licensed to The Apereo Foundation under one or more contributor license
* agreements. See the NOTICE file distributed with this work for additional
* information regarding copyright ownership.
*
*
* The Apereo Foundation licenses this file to you under the Educational
* Community 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://opensource.org/licenses/ecl2.txt
*
* 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.opencastproject.index.service.resources.list.provider;
import static org.junit.Assert.assertEquals;
import org.opencastproject.index.service.exception.ListProviderException;
import org.opencastproject.index.service.resources.list.api.ResourceListQuery;
import org.opencastproject.index.service.resources.list.query.ServersListQuery;
import org.opencastproject.serviceregistry.api.HostRegistration;
import org.opencastproject.serviceregistry.api.JaxbHostRegistration;
import org.opencastproject.serviceregistry.api.ServiceRegistry;
import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class ServersListProviderTest {
private ServiceRegistry serviceRegistry;
private ServersListProvider serverListProvider;
private static final String HOST1 = "host1";
private static final String HOST2 = "host2";
private static final String HOST3 = "host3";
private static final String HOST4 = "host4";
@Before
public void setUp() throws Exception {
this.serviceRegistry = EasyMock.createNiceMock(ServiceRegistry.class);
serverListProvider = new ServersListProvider();
List<HostRegistration> hosts = new ArrayList<HostRegistration>();
hosts.add(new JaxbHostRegistration(HOST1, "1.1.1.1", 400000, 8, 8, true, false));
hosts.add(new JaxbHostRegistration(HOST2, "1.1.1.2", 400000, 8, 8, true, true));
hosts.add(new JaxbHostRegistration(HOST3, "1.1.1.3", 500000, 2, 8, false, false));
hosts.add(new JaxbHostRegistration(HOST4, "1.1.1.4", 500000, 6, 8, true, true));
EasyMock.expect(serviceRegistry.getHostRegistrations()).andReturn(hosts).anyTimes();
serverListProvider.setServiceRegistry(serviceRegistry);
serverListProvider.activate(null);
EasyMock.replay(serviceRegistry);
}
@Test
public void testListNames() throws ListProviderException {
ResourceListQuery query = new ServersListQuery();
assertEquals(4, serverListProvider.getList("non-existing-name", query, null).size());
assertEquals(4, serverListProvider.getList(ServersListProvider.LIST_HOSTNAME, query, null).size());
assertEquals(3, serverListProvider.getList(ServersListProvider.LIST_STATUS, query, null).size());
}
@Test
public void testHostnameList() throws ListProviderException {
ResourceListQuery query = new ServersListQuery();
Map<String, String> list = serverListProvider.getList(ServersListProvider.LIST_HOSTNAME, query, null);
assertEquals(HOST1, list.get(HOST1));
assertEquals(HOST2, list.get(HOST2));
assertEquals(HOST3, list.get(HOST3));
assertEquals(HOST4, list.get(HOST4));
}
@Test
public void testStatusList() throws ListProviderException {
ResourceListQuery query = new ServersListQuery();
Map<String, String> list = serverListProvider.getList(ServersListProvider.LIST_STATUS, query, null);
assertEquals(ServersListProvider.SERVER_STATUS_LABEL_ONLINE, list.get(ServersListProvider.SERVER_STATUS_ONLINE));
assertEquals(ServersListProvider.SERVER_STATUS_LABEL_OFFLINE, list.get(ServersListProvider.SERVER_STATUS_OFFLINE));
assertEquals(ServersListProvider.SERVER_STATUS_LABEL_MAINTENANCE, list.get(ServersListProvider.SERVER_STATUS_MAINTENANCE));
}
}