001package org.apache.maven.building;
002
003/*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements.  See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership.  The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License.  You may obtain a copy of the License at
011 *
012 *   http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied.  See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022import static org.junit.Assert.assertEquals;
023import static org.junit.Assert.assertSame;
024
025import org.apache.maven.building.Problem.Severity;
026import org.junit.Test;
027
028public class DefaultProblemTest
029{
030
031    @Test
032    public void testGetSeverity()
033    {
034        DefaultProblem problem = new DefaultProblem( null, null, null, -1, -1, null );
035        assertEquals( Severity.ERROR, problem.getSeverity() );
036
037        problem = new DefaultProblem( null, Severity.FATAL, null, -1, -1, null );
038        assertEquals( Severity.FATAL, problem.getSeverity() );
039        
040        problem = new DefaultProblem( null, Severity.ERROR, null, -1, -1, null );
041        assertEquals( Severity.ERROR, problem.getSeverity() );
042
043        problem = new DefaultProblem( null, Severity.WARNING, null, -1, -1, null );
044        assertEquals( Severity.WARNING, problem.getSeverity() );
045    }
046    
047    @Test
048    public void testGetLineNumber()
049    {
050        DefaultProblem problem = new DefaultProblem( null, null, null, -1, -1, null );
051        assertEquals( -1, problem.getLineNumber() );
052
053        problem = new DefaultProblem( null, null, null, 42, -1, null );
054        assertEquals( 42, problem.getLineNumber() );
055        
056        problem = new DefaultProblem( null, null, null, Integer.MAX_VALUE, -1, null );
057        assertEquals( Integer.MAX_VALUE, problem.getLineNumber() );
058
059        // this case is not specified, might also return -1
060        problem = new DefaultProblem( null, null, null, Integer.MIN_VALUE, -1, null );
061        assertEquals( Integer.MIN_VALUE, problem.getLineNumber() );
062    }
063    
064    @Test
065    public void testGetColumnNumber()
066    {
067        DefaultProblem problem = new DefaultProblem( null, null, null, -1, -1, null );
068        assertEquals( -1, problem.getColumnNumber() );
069
070        problem = new DefaultProblem( null, null, null, -1, 42, null );
071        assertEquals( 42, problem.getColumnNumber() );
072        
073        problem = new DefaultProblem( null, null, null, -1, Integer.MAX_VALUE, null );
074        assertEquals( Integer.MAX_VALUE, problem.getColumnNumber() );
075
076        // this case is not specified, might also return -1
077        problem = new DefaultProblem( null, null, null, -1, Integer.MIN_VALUE, null );
078        assertEquals( Integer.MIN_VALUE, problem.getColumnNumber() );
079    }
080    
081    @Test
082    public void testGetException()
083    {
084        DefaultProblem problem = new DefaultProblem( null, null, null, -1, -1, null );
085        assertEquals( null, problem.getException() );
086        
087        Exception e = new Exception();
088        problem = new DefaultProblem( null, null, null, -1, -1, e );
089        assertSame( e, problem.getException() );
090    }
091
092    @Test
093    public void testGetSource()
094    {
095        DefaultProblem problem = new DefaultProblem( null, null, null, -1, -1, null );
096        assertEquals( "", problem.getSource() );
097        
098        problem = new DefaultProblem( null, null, "", -1, -1, null );
099        assertEquals( "", problem.getSource() );
100
101        problem = new DefaultProblem( null, null, "SOURCE", -1, -1, null );
102        assertEquals( "SOURCE", problem.getSource() );
103    }
104
105    @Test
106    public void testGetLocation()
107    {
108        DefaultProblem problem = new DefaultProblem( null, null, null, -1, -1, null );
109        assertEquals( "", problem.getLocation() );
110        
111        problem = new DefaultProblem( null, null, "SOURCE", -1, -1, null );
112        assertEquals( "SOURCE", problem.getLocation() );
113
114        problem = new DefaultProblem( null, null, null, 42, -1, null );
115        assertEquals( "line 42", problem.getLocation() );
116
117        problem = new DefaultProblem( null, null, null, -1, 127, null );
118        assertEquals( "column 127", problem.getLocation() );
119
120        problem = new DefaultProblem( null, null, "SOURCE", 42, 127, null );
121        assertEquals( "SOURCE, line 42, column 127", problem.getLocation() );
122    }
123    
124    @Test
125    public void testGetMessage()
126    {
127        DefaultProblem problem = new DefaultProblem( "MESSAGE", null, null, -1, -1, null );
128        assertEquals( "MESSAGE", problem.getMessage() );
129
130        problem = new DefaultProblem( null, null, null, -1, -1, new Exception() );
131        assertEquals( "", problem.getMessage() );
132
133        problem = new DefaultProblem( null, null, null, -1, -1, new Exception( "EXCEPTION MESSAGE" ) );
134        assertEquals( "EXCEPTION MESSAGE", problem.getMessage() );
135    }
136}