/* * 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) 2000 - 2015 Pentaho Corporation, Simba Management Limited and Contributors... All rights reserved. */ package org.pentaho.reporting.engine.classic.core; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import org.junit.Test; import org.pentaho.reporting.engine.classic.core.modules.output.table.html.FileSystemURLRewriter; import org.pentaho.reporting.engine.classic.core.modules.output.table.html.SingleRepositoryURLRewriter; import org.pentaho.reporting.engine.classic.core.modules.output.table.html.URLRewriter; import org.pentaho.reporting.libraries.repository.ContentLocation; import org.pentaho.reporting.libraries.repository.NameGenerator; import org.pentaho.reporting.libraries.repository.Repository; import org.pentaho.reporting.libraries.repository.UrlRepository; import org.pentaho.reporting.libraries.repository.dummy.DummyRepository; public class AbstractMultiStreamReportProcessTaskTest { private class CheckerProcessTask extends AbstractMultiStreamReportProcessTask { @Override public String getReportMimeType() { return "test_mime"; } @Override public void run() { } } @Test public void testComputeUrlRewriter() { ContentLocation bulkLocation = mock( ContentLocation.class ); ContentLocation bodyContentLocation = mock( ContentLocation.class ); NameGenerator bulkNameGenerator = mock( NameGenerator.class ); URLRewriter urlRewriter = mock( URLRewriter.class ); Repository bulkRepository = mock( UrlRepository.class ); Repository bodyRepository = mock( UrlRepository.class ); CheckerProcessTask task = new CheckerProcessTask(); task.setBulkNameGenerator( bulkNameGenerator ); task.setBodyContentLocation( bodyContentLocation ); doReturn( bulkRepository ).when( bodyContentLocation ).getRepository(); URLRewriter result = task.computeUrlRewriter(); assertThat( result, instanceOf( SingleRepositoryURLRewriter.class ) ); task.setBulkLocation( bulkLocation ); doReturn( bulkRepository ).when( bulkLocation ).getRepository(); result = task.computeUrlRewriter(); assertThat( result, instanceOf( SingleRepositoryURLRewriter.class ) ); doReturn( bodyRepository ).when( bodyContentLocation ).getRepository(); result = task.computeUrlRewriter(); assertThat( result, instanceOf( FileSystemURLRewriter.class ) ); doReturn( mock( DummyRepository.class ) ).when( bulkLocation ).getRepository(); result = task.computeUrlRewriter(); assertThat( result, instanceOf( SingleRepositoryURLRewriter.class ) ); doReturn( bulkRepository ).when( bulkLocation ).getRepository(); doReturn( mock( DummyRepository.class ) ).when( bodyContentLocation ).getRepository(); result = task.computeUrlRewriter(); assertThat( result, instanceOf( SingleRepositoryURLRewriter.class ) ); task.setUrlRewriter( urlRewriter ); result = task.computeUrlRewriter(); assertThat( result, is( equalTo( urlRewriter ) ) ); } @Test public void testIsTaskAborted() { CheckerProcessTask task = new CheckerProcessTask(); task.setError( null ); assertThat( task.isTaskAborted(), is( equalTo( false ) ) ); task.setError( new NullPointerException() ); assertThat( task.isTaskAborted(), is( equalTo( false ) ) ); task.setError( new InterruptedException() ); assertThat( task.isTaskAborted(), is( equalTo( true ) ) ); } @Test public void testIsTaskSuccessful() { CheckerProcessTask task = new CheckerProcessTask(); task.setError( null ); assertThat( task.isTaskSuccessful(), is( equalTo( true ) ) ); task.setError( new NullPointerException() ); assertThat( task.isTaskAborted(), is( equalTo( false ) ) ); } @Test public void testIsValid() { CheckerProcessTask task = new CheckerProcessTask(); task.setReport( null ); task.setBodyContentLocation( null ); task.setBodyNameGenerator( null ); assertThat( task.isValid(), is( equalTo( false ) ) ); task.setReport( mock( MasterReport.class ) ); task.setBodyContentLocation( mock( ContentLocation.class ) ); task.setBodyNameGenerator( mock( NameGenerator.class ) ); assertThat( task.isValid(), is( equalTo( true ) ) ); } }