Package org.geoserver.gwc.web.layer

Source Code of org.geoserver.gwc.web.layer.LayerEditCacheOptionsTabPanelInfoTest

/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.gwc.web.layer;

import static org.junit.Assert.*;
import static org.mockito.Matchers.same;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.geoserver.catalog.FeatureTypeInfo;
import org.geoserver.catalog.LayerInfo;
import org.geoserver.catalog.MetadataMap;
import org.geoserver.catalog.ResourceInfo;
import org.geoserver.gwc.GWC;
import org.geoserver.gwc.config.GWCConfig;
import org.geoserver.gwc.layer.GeoServerTileLayer;
import org.geoserver.gwc.layer.GeoServerTileLayerInfo;
import org.geoserver.gwc.layer.GeoServerTileLayerInfoImpl;
import org.geoserver.gwc.layer.TileLayerInfoUtil;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class LayerEditCacheOptionsTabPanelInfoTest {

    LayerEditCacheOptionsTabPanelInfo panelInfo;

    GWCConfig defaults;

    GWC gwc;

    IModel<? extends ResourceInfo> resourceModel;

    LayerInfo layer;

    IModel<LayerInfo> layerModel;

    @Before
    public void setUpInternal() throws Exception {
        panelInfo = new LayerEditCacheOptionsTabPanelInfo();
        gwc = mock(GWC.class);
        GWC.set(gwc);

        defaults = GWCConfig.getOldDefaults();
        when(gwc.getConfig()).thenReturn(defaults);

        FeatureTypeInfo resource = mock(FeatureTypeInfo.class);
        when(resource.getPrefixedName()).thenReturn("topp:states");

        layer = mock(LayerInfo.class);
        when(layer.getResource()).thenReturn(resource);
        MetadataMap mdm = new MetadataMap();
        when(layer.getMetadata()).thenReturn(mdm);
        resourceModel = new Model<ResourceInfo>(resource);
        layerModel = new Model<LayerInfo>(layer);
    }

    @After
    public void tearDown() {
        GWC.set(null);
    }

    @Test
    public void testCreateOwnModelNew() {
        final boolean isNew = true;

        IModel<GeoServerTileLayerInfo> ownModel;
        ownModel = panelInfo.createOwnModel(resourceModel, layerModel, isNew);
        assertNotNull(ownModel);
        GeoServerTileLayerInfoImpl expected = TileLayerInfoUtil.loadOrCreate(layer, defaults);
        assertEquals(expected, ownModel.getObject());
    }

    @Test
    public void testCreateOwnModelExisting() {

        final boolean isNew = false;

        IModel<GeoServerTileLayerInfo> ownModel;
        ownModel = panelInfo.createOwnModel(resourceModel, layerModel, isNew);
        assertNotNull(ownModel);
        GeoServerTileLayerInfo expected = TileLayerInfoUtil.loadOrCreate(layer, defaults);
        assertEquals(expected, ownModel.getObject());

        GeoServerTileLayer tileLayer = mock(GeoServerTileLayer.class);
        expected = new GeoServerTileLayerInfoImpl();
        expected.setEnabled(true);
        when(tileLayer.getInfo()).thenReturn(expected);
        when(gwc.getTileLayer(same(layer))).thenReturn(tileLayer);

        ownModel = panelInfo.createOwnModel(resourceModel, layerModel, isNew);
        assertEquals(expected, ownModel.getObject());
    }
}
TOP

Related Classes of org.geoserver.gwc.web.layer.LayerEditCacheOptionsTabPanelInfoTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.