/* * 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 org.kaaproject.kaa.common.dto.EndpointProfileSchemaDto; import org.kaaproject.kaa.common.dto.ProfileFilterDto; import org.kaaproject.kaa.common.dto.ProfileFilterRecordDto; import org.kaaproject.kaa.common.dto.ProfileVersionPairDto; import org.kaaproject.kaa.common.dto.UpdateStatus; import org.kaaproject.kaa.common.dto.ctl.CTLSchemaDto; import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * The Class ControlServerProfileFilterIT. */ public class ControlServerProfileFilterIT extends AbstractTestControlServer { /** * Test create profile filter. * * @throws Exception the exception */ @Test public void testCreateProfileFilter() throws Exception { ProfileFilterDto profileFilter = createProfileFilter(); Assert.assertFalse(strIsEmpty(profileFilter.getId())); } /** * Test get profile filter record. * * @throws Exception the exception */ @Test public void testGetProfileFilterRecord() throws Exception { ProfileFilterDto profileFilter = createProfileFilter(); ProfileFilterRecordDto profileFilterRecord = client.getProfileFilterRecord(profileFilter.getEndpointProfileSchemaId(), profileFilter.getServerProfileSchemaId(), profileFilter.getEndpointGroupId()); Assert.assertNotNull(profileFilterRecord); Assert.assertNotNull(profileFilterRecord.getInactiveStructureDto()); assertProfileFiltersEquals(profileFilter, profileFilterRecord.getInactiveStructureDto()); } /** * Test get profile filter records by endpoint group id. * * @throws Exception the exception */ @Test public void testGetProfileFilterRecordsByEndpointGroupId() throws Exception { ApplicationDto application = createApplication(tenantAdminDto); loginTenantDeveloper(tenantDeveloperDto.getUsername()); EndpointGroupDto endpointGroup = createEndpointGroup(application.getId()); List<ProfileFilterDto> profileFilters = new ArrayList<ProfileFilterDto>(2); profileFilters.add(createProfileFilter(null, null, endpointGroup.getId())); profileFilters.add(createProfileFilter(null, null, endpointGroup.getId())); Collections.sort(profileFilters, new IdComparator()); List<ProfileFilterRecordDto> profileFilterRecords = client.getProfileFilterRecords(endpointGroup.getId(), false); Assert.assertNotNull(profileFilterRecords); Assert.assertEquals(2, profileFilterRecords.size()); List<ProfileFilterDto> storedProfileFilters = new ArrayList<ProfileFilterDto>(2); for (ProfileFilterRecordDto profileFilterRecord : profileFilterRecords) { storedProfileFilters.add(profileFilterRecord.getInactiveStructureDto()); } Collections.sort(storedProfileFilters, new IdComparator()); for (int i = 0; i < profileFilters.size(); i++) { ProfileFilterDto profileFilter = profileFilters.get(i); ProfileFilterDto storedProfileFilter = storedProfileFilters.get(i); assertProfileFiltersEquals(profileFilter, storedProfileFilter); } } /** * Test delete profile filter record. * * @throws Exception the exception */ @Test public void testDeleteProfileFilterRecord() throws Exception { EndpointGroupDto endpointGroup = createEndpointGroup(); ProfileFilterDto profileFilter1 = createProfileFilter(null, null, endpointGroup.getId()); ProfileFilterDto profileFilter2 = createProfileFilter(null, null, endpointGroup.getId()); client.activateProfileFilter(profileFilter2.getId()); client.deleteProfileFilterRecord(profileFilter2.getEndpointProfileSchemaId(), profileFilter2.getServerProfileSchemaId(), endpointGroup.getId()); List<ProfileFilterRecordDto> profileFilterRecords = client.getProfileFilterRecords(endpointGroup.getId(), false); Assert.assertNotNull(profileFilterRecords); Assert.assertEquals(1, profileFilterRecords.size()); assertProfileFiltersEquals(profileFilter1, profileFilterRecords.get(0).getInactiveStructureDto()); client.deleteProfileFilterRecord(profileFilter1.getEndpointProfileSchemaId(), profileFilter1.getServerProfileSchemaId(), endpointGroup.getId()); profileFilterRecords = client.getProfileFilterRecords(endpointGroup.getId(), false); Assert.assertNotNull(profileFilterRecords); Assert.assertEquals(0, profileFilterRecords.size()); } /** * Test get vacant schemas by endpoint group id. * * @throws Exception the exception */ @Test public void testGetVacantSchemasByEndpointGroupId() throws Exception { EndpointGroupDto endpointGroup = createEndpointGroup(); CTLSchemaDto ctlSchema = this.createCTLSchema(this.ctlRandomFieldType(), CTL_DEFAULT_NAMESPACE, 1, tenantDeveloperDto.getTenantId(), null, null, null); EndpointProfileSchemaDto profileSchema1 = createEndpointProfileSchema(endpointGroup.getApplicationId(), ctlSchema.getId()); EndpointProfileSchemaDto profileSchema2 = createEndpointProfileSchema(endpointGroup.getApplicationId(), ctlSchema.getId()); EndpointProfileSchemaDto profileSchema3 = createEndpointProfileSchema(endpointGroup.getApplicationId(), ctlSchema.getId()); createProfileFilter(profileSchema1.getId(), null, endpointGroup.getId()); createProfileFilter(profileSchema2.getId(), null, endpointGroup.getId()); List<ProfileVersionPairDto> schemas = client.getVacantProfileSchemasByEndpointGroupId(endpointGroup.getId()); Assert.assertNotNull(schemas); Assert.assertEquals(9, schemas.size()); } /** * Test update profile filter. * * @throws Exception the exception */ @Test public void testUpdateProfileFilter() throws Exception { ProfileFilterDto profileFilter = createProfileFilter(); String filterUpdated = getResourceAsString(TEST_PROFILE_FILTER_UPDATED); profileFilter.setBody(filterUpdated); ProfileFilterDto updatedProfileFilter = client.editProfileFilter(profileFilter); assertProfileFiltersEquals(updatedProfileFilter, profileFilter); } /** * Test activate profile filter. * * @throws Exception the exception */ @Test public void testActivateProfileFilter() throws Exception { ProfileFilterDto profileFilter = createProfileFilter(); ProfileFilterDto activatedProfileFilter = client.activateProfileFilter(profileFilter.getId()); Assert.assertEquals(profileFilter.getId(), activatedProfileFilter.getId()); Assert.assertEquals(profileFilter.getEndpointProfileSchemaId(), activatedProfileFilter.getEndpointProfileSchemaId()); Assert.assertEquals(profileFilter.getServerProfileSchemaId(), activatedProfileFilter.getServerProfileSchemaId()); Assert.assertEquals(profileFilter.getEndpointGroupId(), activatedProfileFilter.getEndpointGroupId()); Assert.assertEquals(profileFilter.getBody(), activatedProfileFilter.getBody()); Assert.assertEquals(profileFilter.getApplicationId(), activatedProfileFilter.getApplicationId()); Assert.assertEquals(UpdateStatus.ACTIVE, activatedProfileFilter.getStatus()); } /** * Test deactivate profile filter. * * @throws Exception the exception */ @Test public void testDeactivateProfileFilter() throws Exception { ProfileFilterDto profileFilter = createProfileFilter(); client.activateProfileFilter(profileFilter.getId()); ProfileFilterDto deactivatedProfileFilter = client.deactivateProfileFilter(profileFilter.getId()); Assert.assertEquals(profileFilter.getId(), deactivatedProfileFilter.getId()); Assert.assertEquals(profileFilter.getEndpointProfileSchemaId(), deactivatedProfileFilter.getEndpointProfileSchemaId()); Assert.assertEquals(profileFilter.getServerProfileSchemaId(), deactivatedProfileFilter.getServerProfileSchemaId()); Assert.assertEquals(profileFilter.getEndpointGroupId(), deactivatedProfileFilter.getEndpointGroupId()); Assert.assertEquals(profileFilter.getBody(), deactivatedProfileFilter.getBody()); Assert.assertEquals(profileFilter.getApplicationId(), deactivatedProfileFilter.getApplicationId()); Assert.assertEquals(UpdateStatus.DEPRECATED, deactivatedProfileFilter.getStatus()); } /** * Assert profile filters equals. * * @param profileFilter the profile filter * @param storedProfileFilter the stored profile filter */ private void assertProfileFiltersEquals(ProfileFilterDto profileFilter, ProfileFilterDto storedProfileFilter) { Assert.assertEquals(profileFilter.getId(), storedProfileFilter.getId()); Assert.assertEquals(profileFilter.getEndpointProfileSchemaId(), storedProfileFilter.getEndpointProfileSchemaId()); Assert.assertEquals(profileFilter.getServerProfileSchemaId(), storedProfileFilter.getServerProfileSchemaId()); Assert.assertEquals(profileFilter.getEndpointGroupId(), storedProfileFilter.getEndpointGroupId()); Assert.assertEquals(profileFilter.getBody(), storedProfileFilter.getBody()); } }