| /******************************************************************************* |
| * 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()); |
| } |
| |
| } |