/*! * This program is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software * Foundation. * * You should have received a copy of the GNU Lesser General Public License along with this * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html * or from the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * Copyright (c) 2002-2015 Pentaho Corporation.. All rights reserved. */ package org.pentaho.platform.api.repository2.unified; import org.junit.Before; import org.junit.Test; import java.util.Arrays; import java.util.HashSet; import java.util.Set; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.fail; /** * Created by bgroves on 10/28/15. */ public class RepositoryRequestTest { private static final String PATH = "path"; private static final boolean SHOW_HIDE = true; private static final Integer DEPTH = 2; private static final String LEGACY_FILTER = "FILES||ODD_FILTER"; private static final String INLCUDE_ONE = "includeOne"; private static final String INCLUDE_TWO = "includeTwo"; private static final Set<String> INCLUDE_SET = new HashSet<String>( Arrays.asList( INLCUDE_ONE, INCLUDE_TWO ) ); private static final String EXCLUDE_ONE = "excludeOne"; private static final String EXCLUDE_TWO = "excludeTwo"; private static final Set<String> EXCLUDE_SET = new HashSet<String>( Arrays.asList( EXCLUDE_ONE, EXCLUDE_TWO ) ); private static final boolean INCLUDE_ACLS = true; private static final String CHILD_FILTER = "childFilter"; private RepositoryRequest request; @Before public void setUp() { request = new RepositoryRequest( PATH, SHOW_HIDE, DEPTH, LEGACY_FILTER ); request.setTypes( RepositoryRequest.FILES_TYPE_FILTER.FILES ); request.setIncludeMemberSet( INCLUDE_SET ); request.setExcludeMemberSet( EXCLUDE_SET ); request.setIncludeAcls( INCLUDE_ACLS ); request.setChildNodeFilter( CHILD_FILTER ); } @Test public void testRepositoryRequest() { // Test no arg constructor RepositoryRequest defaultRequest = new RepositoryRequest(); assertFalse( defaultRequest.isShowHidden() ); assertEquals( RepositoryRequest.FILES_TYPE_FILTER.FILES_FOLDERS, defaultRequest.getTypes() ); assertNull( defaultRequest.getIncludeMemberSet() ); assertNull( defaultRequest.getExcludeMemberSet() ); assertEquals( new Integer( -1 ), defaultRequest.getDepth() ); assertNull( defaultRequest.getPath() ); assertFalse( defaultRequest.isIncludeAcls() ); assertNull( defaultRequest.getChildNodeFilter() ); // Test constructor with nulls RepositoryRequest nullRequest = new RepositoryRequest( null, null, null, null ); assertFalse( nullRequest.isShowHidden() ); assertEquals( new Integer( -1 ), nullRequest.getDepth() ); // Test constructor with values assertEquals( SHOW_HIDE, request.isShowHidden() ); assertEquals( RepositoryRequest.FILES_TYPE_FILTER.FILES, request.getTypes() ); assertEquals( INCLUDE_SET, request.getIncludeMemberSet() ); assertEquals( EXCLUDE_SET, request.getExcludeMemberSet() ); assertEquals( DEPTH, request.getDepth() ); assertEquals( PATH, request.getPath() ); assertEquals( INCLUDE_ACLS, request.isIncludeAcls() ); assertEquals( CHILD_FILTER, request.getChildNodeFilter() ); boolean newShowHide = !SHOW_HIDE; request.setShowHidden( newShowHide ); assertEquals( newShowHide, request.isShowHidden() ); String newPath = "newPath"; request.setPath( newPath ); assertEquals( newPath, request.getPath() ); // Test absence of include/exclude member sets String legacyFilter = "includeMembers=(include)|excludeMembers=(exclude)"; try { new RepositoryRequest( PATH, SHOW_HIDE, DEPTH, legacyFilter ); fail( "RuntimeException should of been thrown" ); } catch ( RuntimeException e ) { // Pass } } }