/*
* Copyright 2014-2016 CyberVision, 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 org.kaaproject.kaa.server.control;
import org.junit.Assert;
import org.junit.Test;
import org.kaaproject.kaa.common.dto.ApplicationDto;
import org.kaaproject.kaa.common.dto.EndpointGroupDto;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* The Class ControlServerEndpointGroupIT.
*/
public class ControlServerEndpointGroupIT extends AbstractTestControlServer {
/**
* Test create endpoint group.
*
* @throws Exception the exception
*/
@Test
public void testCreateEndpointGroup() throws Exception {
EndpointGroupDto endpointGroup = createEndpointGroup();
Assert.assertFalse(strIsEmpty(endpointGroup.getId()));
}
/**
* Test get endpoint group.
*
* @throws Exception the exception
*/
@Test
public void testGetEndpointGroup() throws Exception {
EndpointGroupDto endpointGroup = createEndpointGroup();
EndpointGroupDto storedEndpointGroup = client.getEndpointGroup(endpointGroup.getId());
Assert.assertNotNull(storedEndpointGroup);
assertEndpointGroupsEquals(endpointGroup, storedEndpointGroup);
}
/**
* Test get endpoint groups by application token.
*
* @throws Exception the exception
*/
@Test
public void testGetEndpointGroupsByApplicationToken() throws Exception {
List<EndpointGroupDto> endpointGroups = new ArrayList<>(11);
ApplicationDto application = createApplication(tenantAdminDto);
loginTenantDeveloper(tenantDeveloperDto.getUsername());
List<EndpointGroupDto> defaultEndpointGroups = client.getEndpointGroupsByAppToken(application.getApplicationToken());
endpointGroups.addAll(defaultEndpointGroups);
for (int i = 0; i < 10; i++) {
EndpointGroupDto endpointGroup = createEndpointGroup(application.getId());
endpointGroups.add(endpointGroup);
}
Collections.sort(endpointGroups, new IdComparator());
List<EndpointGroupDto> storedEndpointGroups = client.getEndpointGroupsByAppToken(application.getApplicationToken());
Collections.sort(storedEndpointGroups, new IdComparator());
Assert.assertEquals(endpointGroups.size(), storedEndpointGroups.size());
for (int i = 0; i < endpointGroups.size(); i++) {
EndpointGroupDto endpointGroup = endpointGroups.get(i);
EndpointGroupDto storedEndpointGroup = storedEndpointGroups.get(i);
assertEndpointGroupsEquals(endpointGroup, storedEndpointGroup);
}
}
/**
* Test delete endpoint group.
*
* @throws Exception the exception
*/
@Test
public void testDeleteEndpointGroup() throws Exception {
final EndpointGroupDto endpointGroup = createEndpointGroup();
client.deleteEndpointGroup(endpointGroup.getId());
checkNotFound(new TestRestCall() {
@Override
public void executeRestCall() throws Exception {
client.getEndpointGroup(endpointGroup.getId());
}
});
}
/**
* Assert endpoint groups equals.
*
* @param endpointGroup the endpoint group
* @param storedEndpointGroup the stored endpoint group
*/
private void assertEndpointGroupsEquals(EndpointGroupDto endpointGroup, EndpointGroupDto storedEndpointGroup) {
Assert.assertEquals(endpointGroup.getId(), storedEndpointGroup.getId());
Assert.assertEquals(endpointGroup.getApplicationId(), storedEndpointGroup.getApplicationId());
Assert.assertEquals(endpointGroup.getName(), storedEndpointGroup.getName());
Assert.assertEquals(endpointGroup.getWeight(), storedEndpointGroup.getWeight());
}
}