blob: 84208786975c0ad283c61d9520a05232a86a39ff [file] [log] [blame]
/*******************************************************************************
* 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.model;
import java.util.Arrays;
import java.util.TreeSet;
import org.eclipse.skalli.testutil.AssertUtils;
import org.eclipse.skalli.testutil.TestExtension;
import org.eclipse.skalli.testutil.TestUUIDs;
import org.junit.Assert;
import org.junit.Test;
public class ValidationExceptionTest implements Issuer {
private static final Class<? extends Issuer> ISSUER = ValidationExceptionTest.class;
@SuppressWarnings("nls")
@Test
public void testGetMessage() {
TreeSet<Issue> issues = new TreeSet<Issue>();
issues.add(new Issue(Severity.WARNING, ISSUER, TestUUIDs.TEST_UUIDS[0], "IssueWarn"));
issues.add(new Issue(Severity.ERROR, ISSUER, TestUUIDs.TEST_UUIDS[1], "IssueError"));
issues.add(new Issue(Severity.INFO, ISSUER, TestUUIDs.TEST_UUIDS[2], "IssueInfo"));
issues.add(new Issue(Severity.ERROR, ISSUER, TestUUIDs.TEST_UUIDS[3], "IssueAnotherError"));
ValidationException e = new ValidationException("Message", issues);
Assert.assertEquals("Message\n - IssueAnotherError\n - IssueError\n - IssueWarn\n - IssueInfo",
e.getMessage());
AssertUtils.assertEquals("getIssues()", issues, e.getIssues());
Assert.assertTrue("hasIssues()", e.hasIssues());
Assert.assertFalse("hasIssues()", e.hasFatalIssues());
Issue issue0 = new Issue(Severity.WARNING, ISSUER, TestUUIDs.TEST_UUIDS[0], "");
Issue issue1 = new Issue(Severity.ERROR, ISSUER, TestUUIDs.TEST_UUIDS[1], null);
Issue issue2 = new Issue(Severity.INFO, ISSUER, TestUUIDs.TEST_UUIDS[2], "IssueInfo");
Issue issue3 = new Issue(Severity.ERROR, ISSUER, TestUUIDs.TEST_UUIDS[3], "");
Issue[] issuesArray = new Issue[] { issue0, issue1, issue2, issue3 };
Issue[] expectedIssuesArray = new Issue[] { issue3, issue1, issue0, issue2 };
e = new ValidationException("Message", issuesArray);
Assert.assertEquals("Message\n" +
" - Entity " + TestUUIDs.TEST_UUIDS[3] + " is invalid\n" +
" - Entity " + TestUUIDs.TEST_UUIDS[1] + " is invalid\n" +
" - Entity " + TestUUIDs.TEST_UUIDS[0] + " is invalid\n" +
" - IssueInfo",
e.getMessage());
AssertUtils.assertEquals("getIssues()", Arrays.asList(expectedIssuesArray), e.getIssues());
Assert.assertTrue("hasIssues()", e.hasIssues());
Assert.assertFalse("hasIssues()", e.hasFatalIssues());
issues = new TreeSet<Issue>();
issues.add(new Issue(Severity.WARNING, ISSUER, TestUUIDs.TEST_UUIDS[0], null));
issues.add(new Issue(Severity.ERROR, ISSUER, TestUUIDs.TEST_UUIDS[1], ""));
e = new ValidationException(issues);
Assert.assertEquals(
" - Entity " + TestUUIDs.TEST_UUIDS[1] + " is invalid\n" +
" - Entity " + TestUUIDs.TEST_UUIDS[0] + " is invalid",
e.getMessage());
AssertUtils.assertEquals("getIssues()", issues, e.getIssues());
Assert.assertTrue("hasIssues()", e.hasIssues());
Assert.assertFalse("hasIssues()", e.hasFatalIssues());
issues = new TreeSet<Issue>();
issues.add(new Issue(Severity.FATAL, ISSUER, TestUUIDs.TEST_UUIDS[0], null));
e = new ValidationException("Message", issues);
Assert.assertEquals(
"Message\n" +
" - Entity " + TestUUIDs.TEST_UUIDS[0] + " is invalid",
e.getMessage());
AssertUtils.assertEquals("getIssues()", issues, e.getIssues());
Assert.assertTrue("hasIssues()", e.hasIssues());
Assert.assertTrue("hasIssues()", e.hasFatalIssues());
issues = new TreeSet<Issue>();
issues.add(new Issue(Severity.WARNING, ISSUER, TestUUIDs.TEST_UUIDS[0], null));
e = new ValidationException(issues);
Assert.assertEquals(
"Entity " + TestUUIDs.TEST_UUIDS[0] + " is invalid",
e.getMessage());
AssertUtils.assertEquals("getIssues()", issues, e.getIssues());
Assert.assertTrue("hasIssues()", e.hasIssues());
Assert.assertFalse("hasIssues()", e.hasFatalIssues());
e = new ValidationException("Message", new TreeSet<Issue>());
Assert.assertEquals("Message", e.getMessage());
Assert.assertTrue("getIssues()", e.getIssues().isEmpty());
Assert.assertFalse("hasIssues()", e.hasIssues());
Assert.assertFalse("hasIssues()", e.hasFatalIssues());
e = new ValidationException("Message");
Assert.assertEquals("Message", e.getMessage());
Assert.assertTrue("getIssues()", e.getIssues().isEmpty());
Assert.assertFalse("hasIssues()", e.hasIssues());
Assert.assertFalse("hasIssues()", e.hasFatalIssues());
e = new ValidationException("", new TreeSet<Issue>());
Assert.assertEquals("", e.getMessage());
Assert.assertTrue("getIssues()", e.getIssues().isEmpty());
Assert.assertFalse("hasIssues()", e.hasIssues());
Assert.assertFalse("hasIssues()", e.hasFatalIssues());
e = new ValidationException();
Assert.assertEquals("", e.getMessage());
Assert.assertTrue("getIssues()", e.getIssues().isEmpty());
Assert.assertFalse("hasIssues()", e.hasIssues());
Assert.assertFalse("hasIssues()", e.hasFatalIssues());
e.addIssue(new Issue(Severity.FATAL, ISSUER, TestUUIDs.TEST_UUIDS[0]));
Assert.assertTrue("hasIssues()", e.hasIssues());
Assert.assertTrue("hasIssues()", e.hasFatalIssues());
e = new ValidationException(ISSUER, TestUUIDs.TEST_UUIDS[0], TestExtension.class);
Assert.assertEquals(
"Extension " + TestExtension.class.getName()
+ " of entity " + TestUUIDs.TEST_UUIDS[0] + " is invalid",
e.getMessage());
Assert.assertTrue("getIssues()", e.getIssues().size() == 1);
Assert.assertTrue("hasIssues()", e.hasIssues());
Assert.assertTrue("hasIssues()", e.hasFatalIssues());
Issue issue = e.getIssues().first();
Assert.assertNotNull(issue);
Assert.assertEquals(Severity.FATAL, issue.getSeverity());
Assert.assertEquals(ISSUER, issue.getIssuer());
Assert.assertEquals(TestUUIDs.TEST_UUIDS[0], issue.getEntityId());
Assert.assertEquals(TestExtension.class, issue.getExtension());
Assert.assertEquals(e.getMessage(), issue.getMessage());
e = new ValidationException(ISSUER, TestUUIDs.TEST_UUIDS[0], TestExtension.class,
TestExtension.PROPERTY_STR);
Assert.assertEquals(
"Property " + TestExtension.PROPERTY_STR + " of extension " + TestExtension.class.getName()
+ " of entity " + TestUUIDs.TEST_UUIDS[0] + " is invalid",
e.getMessage());
Assert.assertTrue("getIssues()", e.getIssues().size() == 1);
Assert.assertTrue("hasIssues()", e.hasIssues());
Assert.assertTrue("hasIssues()", e.hasFatalIssues());
issue = e.getIssues().first();
Assert.assertNotNull(issue);
Assert.assertEquals(Severity.FATAL, issue.getSeverity());
Assert.assertEquals(ISSUER, issue.getIssuer());
Assert.assertEquals(TestUUIDs.TEST_UUIDS[0], issue.getEntityId());
Assert.assertEquals(TestExtension.class, issue.getExtension());
Assert.assertEquals(TestExtension.PROPERTY_STR, issue.getPropertyId());
Assert.assertEquals(e.getMessage(), issue.getMessage());
e = new ValidationException(ISSUER, TestUUIDs.TEST_UUIDS[0], TestExtension.class,
TestExtension.PROPERTY_STR, "Message");
Assert.assertEquals("Message", e.getMessage());
Assert.assertTrue("getIssues()", e.getIssues().size() == 1);
Assert.assertTrue("hasIssues()", e.hasIssues());
Assert.assertTrue("hasIssues()", e.hasFatalIssues());
issue = e.getIssues().first();
Assert.assertNotNull(issue);
Assert.assertEquals(Severity.FATAL, issue.getSeverity());
Assert.assertEquals(ISSUER, issue.getIssuer());
Assert.assertEquals(TestUUIDs.TEST_UUIDS[0], issue.getEntityId());
Assert.assertEquals(TestExtension.class, issue.getExtension());
Assert.assertEquals(TestExtension.PROPERTY_STR, issue.getPropertyId());
Assert.assertEquals(e.getMessage(), issue.getMessage());
}
}