/** * Copyright 2012-2017 Gunnar Morling (http://www.gunnarmorling.de/) * and/or other contributors as indicated by the @authors tag. See the * copyright.txt file in the distribution for a full listing of all * contributors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.mapstruct.ap.test.exceptions; import java.text.ParseException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Test; import org.junit.runner.RunWith; import org.mapstruct.ap.test.exceptions.imports.TestException1; import org.mapstruct.ap.test.exceptions.imports.TestExceptionBase; import org.mapstruct.ap.testutil.IssueKey; import org.mapstruct.ap.testutil.WithClasses; import org.mapstruct.ap.testutil.runner.AnnotationProcessorTestRunner; /** * * @author Sjaak Derksen */ @WithClasses( { Source.class, Target.class, SourceTargetMapper.class, ExceptionTestMapper.class, ExceptionTestDecorator.class, TestExceptionBase.class, TestException1.class, TestException2.class } ) @RunWith( AnnotationProcessorTestRunner.class ) public class ExceptionTest { @Test( expected = RuntimeException.class ) @IssueKey( "198" ) public void shouldThrowRuntimeInBeanMapping() throws TestException2, ParseException { Source source = new Source(); source.setSize( 1 ); SourceTargetMapper sourceTargetMapper = SourceTargetMapper.INSTANCE; sourceTargetMapper.sourceToTarget( source ); } @Test( expected = TestException2.class ) @IssueKey( "198" ) public void shouldThrowTestException2InBeanMapping() throws TestException2, ParseException { Source source = new Source(); source.setSize( 2 ); SourceTargetMapper sourceTargetMapper = SourceTargetMapper.INSTANCE; sourceTargetMapper.sourceToTarget( source ); } @Test( expected = ParseException.class ) @IssueKey( "198" ) public void shouldThrowTestParseExceptionInBeanMappingDueToTypeConverion() throws TestException2, ParseException { Source source = new Source(); source.setDate( "nonsense" ); SourceTargetMapper sourceTargetMapper = SourceTargetMapper.INSTANCE; sourceTargetMapper.sourceToTarget( source ); } @Test( expected = RuntimeException.class ) @IssueKey( "198" ) public void shouldThrowRuntimeInIterableMapping() throws TestException2 { List<Integer> source = new ArrayList<Integer>(); source.add( 1 ); SourceTargetMapper sourceTargetMapper = SourceTargetMapper.INSTANCE; sourceTargetMapper.integerListToLongList( source ); } @Test( expected = TestException2.class ) @IssueKey( "198" ) public void shouldThrowTestException2InIterableMapping() throws TestException2 { List<Integer> source = new ArrayList<Integer>(); source.add( 2 ); SourceTargetMapper sourceTargetMapper = SourceTargetMapper.INSTANCE; sourceTargetMapper.integerListToLongList( source ); } @Test( expected = RuntimeException.class ) @IssueKey( "198" ) public void shouldThrowRuntimeInMapKeyMapping() throws TestException2 { Map<Integer, String> source = new HashMap<Integer, String>(); source.put( 1, "test" ); SourceTargetMapper sourceTargetMapper = SourceTargetMapper.INSTANCE; sourceTargetMapper.integerKeyMapToLongKeyMap( source ); } @Test( expected = TestException2.class ) @IssueKey( "198" ) public void shouldThrowTestException2InMapKeyMapping() throws TestException2 { Map<Integer, String> source = new HashMap<Integer, String>(); source.put( 2, "test" ); SourceTargetMapper sourceTargetMapper = SourceTargetMapper.INSTANCE; sourceTargetMapper.integerKeyMapToLongKeyMap( source ); } @Test( expected = RuntimeException.class ) @IssueKey( "198" ) public void shouldThrowRuntimeInMapValueMapping() throws TestException2 { Map<String, Integer> source = new HashMap<String, Integer>(); source.put( "test", 1 ); SourceTargetMapper sourceTargetMapper = SourceTargetMapper.INSTANCE; sourceTargetMapper.integerValueMapToLongValueMap( source ); } @Test( expected = TestException2.class ) @IssueKey( "198" ) public void shouldThrowTestException2InMapValueMapping() throws TestException2 { Map<String, Integer> source = new HashMap<String, Integer>(); source.put( "test", 2 ); SourceTargetMapper sourceTargetMapper = SourceTargetMapper.INSTANCE; sourceTargetMapper.integerValueMapToLongValueMap( source ); } @Test( expected = RuntimeException.class ) @IssueKey( "198" ) public void shouldThrowRuntimeInBeanMappingViaBaseException() throws TestExceptionBase { Source source = new Source(); source.setSize( 1 ); SourceTargetMapper sourceTargetMapper = SourceTargetMapper.INSTANCE; sourceTargetMapper.sourceToTargetViaBaseException( source ); } @Test( expected = TestException2.class ) @IssueKey( "198" ) public void shouldThrowTestException2InBeanMappingViaBaseException() throws TestExceptionBase { Source source = new Source(); source.setSize( 2 ); SourceTargetMapper sourceTargetMapper = SourceTargetMapper.INSTANCE; sourceTargetMapper.sourceToTargetViaBaseException( source ); } }