it.geosolutions.jaiext.JAIEXTInitializationTest.java Source code

Java tutorial

Introduction

Here is the source code for it.geosolutions.jaiext.JAIEXTInitializationTest.java

Source

/* JAI-Ext - OpenSource Java Advanced Image Extensions Library
 *    http://www.geo-solutions.it/
 *    Copyright 2015 GeoSolutions
    
    
 * 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 it.geosolutions.jaiext;

import static org.junit.Assert.assertTrue;
import it.geosolutions.jaiext.ConcurrentOperationRegistry.OperationCollection;
import it.geosolutions.jaiext.ConcurrentOperationRegistry.OperationItem;
import it.geosolutions.jaiext.testclasses.TestData;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class JAIEXTInitializationTest {

    private final static String SCALE = "Scale";

    private final static String CRIF = "it.geosolutions.jaiext.DummyScaleCRIF";

    private static File newJAIFile;

    @BeforeClass
    public static void setup() throws FileNotFoundException, IOException {
        final File inputJAIFile = TestData.file(JAIEXTInitializationTest.class,
                "META-INF" + File.separator + "registryFile2.jaiext");
        newJAIFile = new File(inputJAIFile.getParentFile().getParentFile().getParentFile().getParentFile()
                .getParentFile().getParentFile(), "META-INF" + File.separator + "registryFile.jaiext");
        FileUtils.copyFile(inputJAIFile, newJAIFile);

    }

    @Test
    public void testJAIEXTReInit() {
        // Initialize JAIExt with no JAI-Ext ops

        JAIExt.initJAIEXT(false, true);
        // Getting the registry
        ConcurrentOperationRegistry registry = JAIExt.getRegistry();
        // Ensure that the "Scale" operation is described by the dummy descriptor
        OperationCollection operations = registry.getOperationCollection();
        OperationItem operationItem = operations.get(SCALE);
        // First check that the scale operation is present
        assertTrue(operationItem != null);
        assertTrue(operationItem.getVendor().equalsIgnoreCase(ConcurrentOperationRegistry.JAI_PRODUCT));

        // Also check that the associated RIF is not an instance of the JAI-Ext DummyScaleCRIF class
        assertTrue(!operationItem.getCurrentFactory().getClass().getName().equalsIgnoreCase(CRIF));

        // Reinitialize the JAIExt registry
        JAIExt.initJAIEXT(true, true);
        // Getting the registry
        registry = JAIExt.getRegistry();
        // Ensure that the "Scale" operation is described by the dummy descriptor
        operations = registry.getOperationCollection();
        operationItem = operations.get(SCALE);
        // First check that the scale operation is present
        assertTrue(operationItem != null);
        assertTrue(operationItem.getVendor().equalsIgnoreCase(ConcurrentOperationRegistry.JAIEXT_PRODUCT));

        // Also check that the associated RIF is an instance of the DummyScaleCRIF class
        assertTrue(operationItem.getCurrentFactory().getClass().getName().equalsIgnoreCase(CRIF));
    }

    @AfterClass
    public static void fileDisposal() {
        FileUtils.deleteQuietly(newJAIFile);
        FileUtils.deleteQuietly(newJAIFile.getParentFile());
    }
}