org.eclipse.skalli.core.extension.ProjectDescriptionValidatorTest.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.skalli.core.extension.ProjectDescriptionValidatorTest.java

Source

/*******************************************************************************
 * Copyright (c) 2010-2014 SAP AG and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     SAP AG - initial API and implementation
 *******************************************************************************/
package org.eclipse.skalli.core.extension;

import org.apache.commons.lang.StringUtils;
import org.eclipse.skalli.commons.HtmlUtils;
import org.eclipse.skalli.model.Project;
import org.eclipse.skalli.model.Severity;
import org.eclipse.skalli.testutil.TestUUIDs;
import org.junit.Assert;
import org.junit.Test;

@SuppressWarnings("nls")
public class ProjectDescriptionValidatorTest {

    private static final String ALL_TAGS = "<" + StringUtils.join(HtmlUtils.ALLOWED_TAGS, ">, <") + ">";

    @Test
    public void testIssuesFATAL() throws Exception {
        assertDescriptionInvalid("<test>", Project.FORMAT_HTML, Severity.FATAL, Severity.FATAL);
        assertDescriptionInvalid("<test>", Project.DEFAULT_FORMAT, Severity.FATAL, Severity.FATAL);
        assertDescriptionInvalid("<test>", "unknown_format", Severity.FATAL, Severity.FATAL);
        assertDescriptionInvalid("<test>", null, Severity.FATAL, Severity.FATAL);
        assertDescriptionInvalid("abc <test> def", Project.DEFAULT_FORMAT, Severity.FATAL, Severity.FATAL);

        assertDescriptionValid(ALL_TAGS, Project.FORMAT_HTML, Severity.FATAL);
        assertDescriptionValid("abc" + ALL_TAGS + "def", Project.FORMAT_HTML, Severity.FATAL);
        assertDescriptionInvalid(ALL_TAGS, Project.DEFAULT_FORMAT, Severity.FATAL, Severity.FATAL);
        assertDescriptionInvalid(ALL_TAGS, "unknown_format", Severity.FATAL, Severity.FATAL);
        assertDescriptionInvalid(ALL_TAGS, null, Severity.FATAL, Severity.FATAL);
    }

    @Test
    public void testIssuesWARNING() throws Exception {
        assertDescriptionInvalid(null, Project.FORMAT_HTML, Severity.WARNING, Severity.WARNING);
        assertDescriptionInvalid("", Project.FORMAT_HTML, Severity.WARNING, Severity.WARNING);
        assertDescriptionInvalid("    ", Project.FORMAT_HTML, Severity.WARNING, Severity.WARNING);

        assertDescriptionInvalid(null, Project.FORMAT_HTML, Severity.INFO, Severity.WARNING);
        assertDescriptionInvalid("", Project.FORMAT_HTML, Severity.INFO, Severity.WARNING);
        assertDescriptionInvalid("    ", Project.FORMAT_HTML, Severity.INFO, Severity.WARNING);
    }

    @Test
    public void testIssuesINFO() throws Exception {
        assertDescriptionInvalid(StringUtils.repeat("a", 1), Project.FORMAT_HTML, Severity.INFO, Severity.INFO);
        assertDescriptionInvalid(StringUtils.repeat("a", 10), Project.FORMAT_HTML, Severity.INFO, Severity.INFO);
        assertDescriptionInvalid(StringUtils.repeat("a", 24), Project.FORMAT_HTML, Severity.INFO, Severity.INFO);

        assertDescriptionValid(StringUtils.repeat("a", 1), Project.FORMAT_HTML, Severity.WARNING);
        assertDescriptionValid(StringUtils.repeat("a", 10), Project.FORMAT_HTML, Severity.WARNING);
        assertDescriptionValid(StringUtils.repeat("a", 24), Project.FORMAT_HTML, Severity.WARNING);
    }

    @Test
    public void testNoIssues() throws Exception {
        assertDescriptionValid(StringUtils.repeat("a", ProjectDescriptionValidator.DESCRIPTION_RECOMMENDED_LENGHT),
                Project.FORMAT_HTML, Severity.INFO);
        assertDescriptionValid(
                StringUtils.repeat("a", ProjectDescriptionValidator.DESCRIPTION_RECOMMENDED_LENGHT + 1),
                Project.FORMAT_HTML, Severity.INFO);
        assertDescriptionValid(
                StringUtils.repeat("a", ProjectDescriptionValidator.DESCRIPTION_RECOMMENDED_LENGHT + 4711),
                Project.FORMAT_HTML, Severity.INFO);

        assertDescriptionValid(null, Project.FORMAT_HTML, Severity.FATAL);
        assertDescriptionValid(null, Project.FORMAT_HTML, Severity.ERROR);
        assertDescriptionValid("", Project.FORMAT_HTML, Severity.FATAL);
        assertDescriptionValid("", Project.FORMAT_HTML, Severity.ERROR);
        assertDescriptionValid("    ", Project.FORMAT_HTML, Severity.FATAL);
        assertDescriptionValid("    ", Project.FORMAT_HTML, Severity.ERROR);
    }

    private void assertDescriptionValid(String description, String format, Severity minSeverity) {
        ProjectDescriptionValidator validator = new ProjectDescriptionValidator();
        Project project = getProject(description, format);
        Assert.assertTrue(validator.validate(project.getUuid(), project, minSeverity).isEmpty());
    }

    private void assertDescriptionInvalid(String description, String format, Severity minSeverity,
            Severity expected) {
        ProjectDescriptionValidator validator = new ProjectDescriptionValidator();
        Project project = getProject(description, format);
        Assert.assertEquals(expected,
                validator.validate(project.getUuid(), project, minSeverity).first().getSeverity());
    }

    private Project getProject(String description, String format) {
        Project project = new Project();
        project.setUuid(TestUUIDs.TEST_UUIDS[0]);
        project.setDescription(description);
        project.setDescriptionFormat(format);
        return project;
    }
}