Package org.mapfish.print.processor

Source Code of org.mapfish.print.processor.PdfConfigurationProcessorTest$CustomTitleAtt

/*
* Copyright (C) 2014  Camptocamp
*
* This file is part of MapFish Print
*
* MapFish Print is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* MapFish Print 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with MapFish Print.  If not, see <http://www.gnu.org/licenses/>.
*/

package org.mapfish.print.processor;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import org.junit.Test;
import org.mapfish.print.config.Configuration;
import org.mapfish.print.config.PDFConfig;
import org.mapfish.print.output.Values;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import static org.junit.Assert.assertEquals;

public class PdfConfigurationProcessorTest {

    @Test
    public void testValidation() throws Exception {
        Map<String, Object> attributeMap = Maps.newHashMap();
        attributeMap.put("title", "titleAtt");
        assertNumErrors(attributeMap, 0);

        attributeMap.clear();
        assertNumErrors(attributeMap, 1);

        attributeMap.put("title", "");
        assertNumErrors(attributeMap, 1);

        attributeMap.clear();
        attributeMap.put("blarg", "att");
        assertNumErrors(attributeMap, 1);

        attributeMap.clear();
        attributeMap.put("title", ".att");
        assertNumErrors(attributeMap, 1);

        attributeMap.clear();
        attributeMap.put("title", "att.inner");
        assertNumErrors(attributeMap, 0);

        attributeMap.clear();
        attributeMap.put("title", new PdfConfigurationProcessor.Update("att.inner", "%s"));
        assertNumErrors(attributeMap, 0);
    }

    @Test
    public void testExec() throws Exception {
        Map<String, Object> attributeMap = Maps.newHashMap();
        final String titleKey = "titleAtt";
        String subjectKey = "subjectAtt";
        attributeMap.put("title", titleKey);
        attributeMap.put("subject", subjectKey);
        final PdfConfigurationProcessor pdfConfigurationProcessor = new PdfConfigurationProcessor();
        pdfConfigurationProcessor.setUpdates(attributeMap);
        PdfConfigurationProcessor.In in = new PdfConfigurationProcessor.In();
        in.values = new Values();
        in.pdfConfig = new PDFConfig();

        final String updatedTitle = "updatedTitle";
        final String updatedSubject = "updatedSubject";
        in.values.put(titleKey, updatedTitle);
        in.values.put(subjectKey, updatedSubject);
        pdfConfigurationProcessor.execute(in, null);
        assertEquals(updatedTitle, in.pdfConfig.getTitle());
        assertEquals(updatedSubject, in.pdfConfig.getSubject());

        attributeMap.clear();
        attributeMap.put("title", titleKey + ".value");
        pdfConfigurationProcessor.setUpdates(attributeMap);
        in.values.put(titleKey, new CustomTitleAtt(updatedTitle));
        pdfConfigurationProcessor.execute(in, null);
        assertEquals(updatedTitle, in.pdfConfig.getTitle());
        attributeMap.clear();

        attributeMap.put("title", new PdfConfigurationProcessor.Update(titleKey + ".value", "Print Report %s"));
        pdfConfigurationProcessor.setUpdates(attributeMap);
        in.values.put(titleKey, new CustomTitleAtt(updatedTitle));
        pdfConfigurationProcessor.execute(in, null);
        assertEquals("Print Report " + updatedTitle, in.pdfConfig.getTitle());
    }

    @Test
    public void testKeywords() throws Exception {
        Map<String, Object> attributeMap = Maps.newHashMap();
        String keywordsKey = "keywordsAtt";
        attributeMap.put("keywords", keywordsKey);
        final PdfConfigurationProcessor pdfConfigurationProcessor = new PdfConfigurationProcessor();
        pdfConfigurationProcessor.setUpdates(attributeMap);
        PdfConfigurationProcessor.In in = new PdfConfigurationProcessor.In();
        in.values = new Values();
        in.pdfConfig = new PDFConfig();

        final ArrayList<String> keywordList = Lists.newArrayList("1", " 2", " 3\n");
        in.values.put(keywordsKey, keywordList);
        pdfConfigurationProcessor.execute(in, null);
        assertEquals("1,2,3", in.pdfConfig.getKeywordsAsString());

        pdfConfigurationProcessor.setUpdates(attributeMap);
        in.values.put(keywordsKey, new String[] {"9", " 8 8", " 7"});
        pdfConfigurationProcessor.execute(in, null);
        assertEquals("9,8 8,7", in.pdfConfig.getKeywordsAsString());

        pdfConfigurationProcessor.setUpdates(attributeMap);
        in.values.put(keywordsKey, Sets.newLinkedHashSet(keywordList));
        pdfConfigurationProcessor.execute(in, null);
        assertEquals("1,2,3", in.pdfConfig.getKeywordsAsString());

        pdfConfigurationProcessor.setUpdates(attributeMap);
        in.values.put(keywordsKey, "4, 5,\n6");
        pdfConfigurationProcessor.execute(in, null);
        assertEquals("4,5,6", in.pdfConfig.getKeywordsAsString());

        pdfConfigurationProcessor.setUpdates(attributeMap);
        in.values.put(keywordsKey, new Integer[]{6,7});
        pdfConfigurationProcessor.execute(in, null);
        assertEquals("6,7", in.pdfConfig.getKeywordsAsString());
    }

    @Test (expected = IllegalArgumentException.class)
    public void testExec_WrongFieldName() throws Exception {
        Map<String, Object> attributeMap = Maps.newHashMap();
        final String titleKey = "titleAtt";
        final PdfConfigurationProcessor pdfConfigurationProcessor = new PdfConfigurationProcessor();
        pdfConfigurationProcessor.setUpdates(attributeMap);
        PdfConfigurationProcessor.In in = new PdfConfigurationProcessor.In();
        in.values = new Values();
        in.pdfConfig = new PDFConfig();

        attributeMap.put("title", titleKey + ".xxx");
        pdfConfigurationProcessor.setUpdates(attributeMap);
        in.values.put(titleKey, new CustomTitleAtt());
        pdfConfigurationProcessor.execute(in, null);
    }
    @Test (expected = IllegalArgumentException.class)
    public void testExec_NullValue() throws Exception {
        Map<String, Object> attributeMap = Maps.newHashMap();
        final String titleKey = "titleAtt";
        final PdfConfigurationProcessor pdfConfigurationProcessor = new PdfConfigurationProcessor();
        pdfConfigurationProcessor.setUpdates(attributeMap);
        PdfConfigurationProcessor.In in = new PdfConfigurationProcessor.In();
        in.values = new Values();
        in.pdfConfig = new PDFConfig();

        attributeMap.put("title", titleKey + ".value");
        pdfConfigurationProcessor.setUpdates(attributeMap);
        in.values.put(titleKey, new CustomTitleAtt());
        pdfConfigurationProcessor.execute(in, null);
    }

    public static class CustomTitleAtt {
        public String value;

        public CustomTitleAtt(String updatedTitle) {
            this.value = updatedTitle;
        }

        public CustomTitleAtt() {
            // do nothing
        }
    }

    private void assertNumErrors(Map<String, Object> attributeMap, int expectedNumErrors) {
        final PdfConfigurationProcessor pdfConfigurationProcessor = new PdfConfigurationProcessor();
        pdfConfigurationProcessor.setUpdates(attributeMap);
        List<Throwable> errors = Lists.newArrayList();
        Configuration configuration = new Configuration();
        pdfConfigurationProcessor.validate(errors, configuration);
        assertEquals(expectedNumErrors, errors.size());
    }
}
TOP

Related Classes of org.mapfish.print.processor.PdfConfigurationProcessorTest$CustomTitleAtt

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.