BAEL-5977 Code for the Throw Exception for Unexpected Input for Enum with Mapstruct article

This commit is contained in:
thibault.faure 2023-06-06 23:02:22 +02:00
parent 880803be21
commit 3a078d7c9c
5 changed files with 56 additions and 1 deletions

View File

@ -73,7 +73,7 @@
</build>
<properties>
<org.mapstruct.version>1.5.3.Final</org.mapstruct.version>
<org.mapstruct.version>1.5.5.Final</org.mapstruct.version>
<springframework.version>4.3.4.RELEASE</springframework.version>
<lombok.mapstruct.binding.version>0.2.0</lombok.mapstruct.binding.version>
</properties>

View File

@ -0,0 +1,7 @@
package com.baeldung.enums;
enum InputLevel {
LOW, MEDIUM, HIGH
}

View File

@ -0,0 +1,13 @@
package com.baeldung.enums;
import org.mapstruct.Mapper;
import org.mapstruct.MappingConstants;
import org.mapstruct.ValueMapping;
@Mapper
interface LevelMapper {
@ValueMapping(source = MappingConstants.ANY_REMAINING, target = MappingConstants.THROW_EXCEPTION)
OutputLevel inputLevelToOutputLevel(InputLevel inputLevel);
}

View File

@ -0,0 +1,7 @@
package com.baeldung.enums;
enum OutputLevel {
LOW, HIGH
}

View File

@ -0,0 +1,28 @@
package com.baeldung.enums;
import org.junit.jupiter.api.Test;
import org.mapstruct.factory.Mappers;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
class LevelMapperUnitTest {
LevelMapper levelMapper = Mappers.getMapper(LevelMapper.class);
@Test
void givenHighInputLevel_WhenInputLevelToOutputLevel_ThenHighOutputLevel() {
assertEquals(OutputLevel.HIGH, levelMapper.inputLevelToOutputLevel(InputLevel.HIGH));
}
@Test
void givenMediumInputLevel_WhenInputLevelToOutputLevel_ThenThrows() {
assertThrows(IllegalArgumentException.class, () -> levelMapper.inputLevelToOutputLevel(InputLevel.MEDIUM));
}
@Test
void givenLowInputLevel_WhenInputLevelToOutputLevel_ThenLowOutputLevel() {
assertEquals(OutputLevel.LOW, levelMapper.inputLevelToOutputLevel(InputLevel.LOW));
}
}