Bael 7212 (#15499)
* BAEL-7212: Lenient converter tests * BAEL-7212: Extracted provider * BAEL-7212: Include only one holder * BAEL-7212: Custom strict converter * BAEL-7212: Renamed converter * BAEL-7212: Renamed WeekDays * BAEL-7212: Added tests for non-conventional weekdays * BAEL-7212: Added tests for case insensitive converter * BAEL-7212: Removed strict prefix * BAEL-7212: Removed lenient prefix * BAEL-7212: Removed non-conventional prefix * BAEL-7212: Removed strict prefix * BAEL-7212: Removed lenient holder * BAEL-7212: Moved to packages * BAEL-7212: Removed Application class * BAEL-7212: Removed interface * BAEL-7212: Renamed test classes * BAEL-7212: Renamed WeekDays * BAEL-7212: Added negative tests * BAEL-7212: Added other test * BAEL-7212: Move providers * BAEL-7212: SpEL conversion * BAEL-7212: Rename holders
This commit is contained in:
parent
e316c193a0
commit
62f7a1911f
@ -0,0 +1,16 @@
|
||||
package com.baeldung.caseinsensitiveenum.converter;
|
||||
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDays;
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
|
||||
public class CaseInsensitiveWeekDayConverter implements Converter<String, WeekDays> {
|
||||
|
||||
@Override
|
||||
public WeekDays convert(final String source) {
|
||||
try {
|
||||
return WeekDays.valueOf(source.trim());
|
||||
} catch (IllegalArgumentException exception) {
|
||||
return WeekDays.valueOf(source.trim().toUpperCase());
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package com.baeldung.caseinsensitiveenum.converter;
|
||||
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDays;
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
|
||||
public class StrictNullableWeekDayConverter implements Converter<String, WeekDays> {
|
||||
@Override
|
||||
public WeekDays convert(final String source) {
|
||||
try {
|
||||
return WeekDays.valueOf(source.trim());
|
||||
} catch (IllegalArgumentException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
package com.baeldung.caseinsensitiveenum.nonconventionalweek;
|
||||
|
||||
public enum NonConventionalWeekDays {
|
||||
Mon$Day, Tues$DAY_, Wednes$day, THURS$day_, Fri$Day$_$, Satur$DAY_, Sun$Day
|
||||
}
|
@ -0,0 +1,85 @@
|
||||
package com.baeldung.caseinsensitiveenum.nonconventionalweek;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class NonConventionalWeekDaysHolder {
|
||||
|
||||
@Value("${monday}")
|
||||
private NonConventionalWeekDays monday;
|
||||
|
||||
@Value("${tuesday}")
|
||||
private NonConventionalWeekDays tuesday;
|
||||
|
||||
@Value("${wednesday}")
|
||||
private NonConventionalWeekDays wednesday;
|
||||
|
||||
@Value("${thursday}")
|
||||
private NonConventionalWeekDays thursday;
|
||||
|
||||
@Value("${friday}")
|
||||
private NonConventionalWeekDays friday;
|
||||
|
||||
@Value("${saturday}")
|
||||
private NonConventionalWeekDays saturday;
|
||||
|
||||
@Value("${sunday}")
|
||||
private NonConventionalWeekDays sunday;
|
||||
|
||||
public NonConventionalWeekDays getMonday() {
|
||||
return monday;
|
||||
}
|
||||
|
||||
public void setMonday(final NonConventionalWeekDays monday) {
|
||||
this.monday = monday;
|
||||
}
|
||||
|
||||
public NonConventionalWeekDays getTuesday() {
|
||||
return tuesday;
|
||||
}
|
||||
|
||||
public void setTuesday(final NonConventionalWeekDays tuesday) {
|
||||
this.tuesday = tuesday;
|
||||
}
|
||||
|
||||
public NonConventionalWeekDays getWednesday() {
|
||||
return wednesday;
|
||||
}
|
||||
|
||||
public void setWednesday(final NonConventionalWeekDays wednesday) {
|
||||
this.wednesday = wednesday;
|
||||
}
|
||||
|
||||
public NonConventionalWeekDays getThursday() {
|
||||
return thursday;
|
||||
}
|
||||
|
||||
public void setThursday(final NonConventionalWeekDays thursday) {
|
||||
this.thursday = thursday;
|
||||
}
|
||||
|
||||
public NonConventionalWeekDays getFriday() {
|
||||
return friday;
|
||||
}
|
||||
|
||||
public void setFriday(final NonConventionalWeekDays friday) {
|
||||
this.friday = friday;
|
||||
}
|
||||
|
||||
public NonConventionalWeekDays getSaturday() {
|
||||
return saturday;
|
||||
}
|
||||
|
||||
public void setSaturday(final NonConventionalWeekDays saturday) {
|
||||
this.saturday = saturday;
|
||||
}
|
||||
|
||||
public NonConventionalWeekDays getSunday() {
|
||||
return sunday;
|
||||
}
|
||||
|
||||
public void setSunday(final NonConventionalWeekDays sunday) {
|
||||
this.sunday = sunday;
|
||||
}
|
||||
}
|
@ -0,0 +1,85 @@
|
||||
package com.baeldung.caseinsensitiveenum.week;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class SpELWeekDaysHolder {
|
||||
|
||||
@Value("#{'${monday}'.toUpperCase()}")
|
||||
private WeekDays monday;
|
||||
|
||||
@Value("#{'${tuesday}'.toUpperCase()}")
|
||||
private WeekDays tuesday;
|
||||
|
||||
@Value("#{'${wednesday}'.toUpperCase()}")
|
||||
private WeekDays wednesday;
|
||||
|
||||
@Value("#{'${thursday}'.toUpperCase()}")
|
||||
private WeekDays thursday;
|
||||
|
||||
@Value("#{'${friday}'.toUpperCase()}")
|
||||
private WeekDays friday;
|
||||
|
||||
@Value("#{'${saturday}'.toUpperCase()}")
|
||||
private WeekDays saturday;
|
||||
|
||||
@Value("#{'${sunday}'.toUpperCase()}")
|
||||
private WeekDays sunday;
|
||||
|
||||
public WeekDays getMonday() {
|
||||
return monday;
|
||||
}
|
||||
|
||||
public void setMonday(final WeekDays monday) {
|
||||
this.monday = monday;
|
||||
}
|
||||
|
||||
public WeekDays getTuesday() {
|
||||
return tuesday;
|
||||
}
|
||||
|
||||
public void setTuesday(final WeekDays tuesday) {
|
||||
this.tuesday = tuesday;
|
||||
}
|
||||
|
||||
public WeekDays getWednesday() {
|
||||
return wednesday;
|
||||
}
|
||||
|
||||
public void setWednesday(final WeekDays wednesday) {
|
||||
this.wednesday = wednesday;
|
||||
}
|
||||
|
||||
public WeekDays getThursday() {
|
||||
return thursday;
|
||||
}
|
||||
|
||||
public void setThursday(final WeekDays thursday) {
|
||||
this.thursday = thursday;
|
||||
}
|
||||
|
||||
public WeekDays getFriday() {
|
||||
return friday;
|
||||
}
|
||||
|
||||
public void setFriday(final WeekDays friday) {
|
||||
this.friday = friday;
|
||||
}
|
||||
|
||||
public WeekDays getSaturday() {
|
||||
return saturday;
|
||||
}
|
||||
|
||||
public void setSaturday(final WeekDays saturday) {
|
||||
this.saturday = saturday;
|
||||
}
|
||||
|
||||
public WeekDays getSunday() {
|
||||
return sunday;
|
||||
}
|
||||
|
||||
public void setSunday(final WeekDays sunday) {
|
||||
this.sunday = sunday;
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
package com.baeldung.caseinsensitiveenum.week;
|
||||
|
||||
public enum WeekDays {
|
||||
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
|
||||
}
|
@ -0,0 +1,85 @@
|
||||
package com.baeldung.caseinsensitiveenum.week;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class WeekDaysHolder {
|
||||
|
||||
@Value("${monday}")
|
||||
private WeekDays monday;
|
||||
|
||||
@Value("${tuesday}")
|
||||
private WeekDays tuesday;
|
||||
|
||||
@Value("${wednesday}")
|
||||
private WeekDays wednesday;
|
||||
|
||||
@Value("${thursday}")
|
||||
private WeekDays thursday;
|
||||
|
||||
@Value("${friday}")
|
||||
private WeekDays friday;
|
||||
|
||||
@Value("${saturday}")
|
||||
private WeekDays saturday;
|
||||
|
||||
@Value("${sunday}")
|
||||
private WeekDays sunday;
|
||||
|
||||
public WeekDays getMonday() {
|
||||
return monday;
|
||||
}
|
||||
|
||||
public void setMonday(final WeekDays monday) {
|
||||
this.monday = monday;
|
||||
}
|
||||
|
||||
public WeekDays getTuesday() {
|
||||
return tuesday;
|
||||
}
|
||||
|
||||
public void setTuesday(final WeekDays tuesday) {
|
||||
this.tuesday = tuesday;
|
||||
}
|
||||
|
||||
public WeekDays getWednesday() {
|
||||
return wednesday;
|
||||
}
|
||||
|
||||
public void setWednesday(final WeekDays wednesday) {
|
||||
this.wednesday = wednesday;
|
||||
}
|
||||
|
||||
public WeekDays getThursday() {
|
||||
return thursday;
|
||||
}
|
||||
|
||||
public void setThursday(final WeekDays thursday) {
|
||||
this.thursday = thursday;
|
||||
}
|
||||
|
||||
public WeekDays getFriday() {
|
||||
return friday;
|
||||
}
|
||||
|
||||
public void setFriday(final WeekDays friday) {
|
||||
this.friday = friday;
|
||||
}
|
||||
|
||||
public WeekDays getSaturday() {
|
||||
return saturday;
|
||||
}
|
||||
|
||||
public void setSaturday(final WeekDays saturday) {
|
||||
this.saturday = saturday;
|
||||
}
|
||||
|
||||
public WeekDays getSunday() {
|
||||
return sunday;
|
||||
}
|
||||
|
||||
public void setSunday(final WeekDays sunday) {
|
||||
this.sunday = sunday;
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package com.baeldung.caseinsensitiveenum;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import com.baeldung.caseinsensitiveenum.CaseInsensitiveStringToEnumConverterUnitTest.WeekDayConverterConfiguration;
|
||||
import com.baeldung.caseinsensitiveenum.converter.CaseInsensitiveWeekDayConverter;
|
||||
import com.baeldung.caseinsensitiveenum.providers.WeekDayHolderArgumentsProvider;
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDays;
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDaysHolder;
|
||||
import java.util.function.Function;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.core.convert.support.DefaultConversionService;
|
||||
|
||||
@SpringBootTest(properties = {
|
||||
"monday=monday",
|
||||
"tuesday=tuesday",
|
||||
"wednesday=wednesday",
|
||||
"thursday=THURSDAY",
|
||||
"friday=Friday",
|
||||
"saturday=saturDAY",
|
||||
"sunday=sUndAy",
|
||||
}, classes = {WeekDaysHolder.class, WeekDayConverterConfiguration.class})
|
||||
class CaseInsensitiveStringToEnumConverterUnitTest {
|
||||
|
||||
public static class WeekDayConverterConfiguration {
|
||||
@Bean
|
||||
public ConversionService conversionService() {
|
||||
final DefaultConversionService defaultConversionService = new DefaultConversionService();
|
||||
defaultConversionService.addConverter(new CaseInsensitiveWeekDayConverter());
|
||||
return defaultConversionService;
|
||||
}
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private WeekDaysHolder holder;
|
||||
|
||||
@ParameterizedTest
|
||||
@ArgumentsSource(WeekDayHolderArgumentsProvider.class)
|
||||
void givenPropertiesWhenInjectEnumThenValueIsNull(
|
||||
Function<WeekDaysHolder, WeekDays> methodReference, WeekDays expected) {
|
||||
WeekDays actual = methodReference.apply(holder);
|
||||
assertThat(actual).isEqualTo(expected);
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package com.baeldung.caseinsensitiveenum;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import com.baeldung.caseinsensitiveenum.providers.WeekDayHolderArgumentsProvider;
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDays;
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDaysHolder;
|
||||
import java.util.function.Function;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
@SpringBootTest(properties = {
|
||||
"monday=Mon-Day!",
|
||||
"tuesday=TuesDAY#",
|
||||
"wednesday=Wednes@day",
|
||||
"thursday=THURSday^",
|
||||
"friday=Fri:Day_%",
|
||||
"saturday=Satur_DAY*",
|
||||
"sunday=Sun+Day",
|
||||
}, classes = WeekDaysHolder.class)
|
||||
class LenientStringToEnumConverterUnitTest {
|
||||
|
||||
@Autowired
|
||||
private WeekDaysHolder holder;
|
||||
|
||||
@ParameterizedTest
|
||||
@ArgumentsSource(WeekDayHolderArgumentsProvider.class)
|
||||
void givenPropertiesWhenInjectEnumThenValueIsPresent(
|
||||
Function<WeekDaysHolder, WeekDays> methodReference, WeekDays expected) {
|
||||
WeekDays actual = methodReference.apply(holder);
|
||||
assertThat(actual).isEqualTo(expected);
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package com.baeldung.caseinsensitiveenum;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import com.baeldung.caseinsensitiveenum.nonconventionalweek.NonConventionalWeekDays;
|
||||
import com.baeldung.caseinsensitiveenum.nonconventionalweek.NonConventionalWeekDaysHolder;
|
||||
import com.baeldung.caseinsensitiveenum.providers.NonConventionalWeekDayHolderArgumentsProvider;
|
||||
import java.util.function.Function;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
@SpringBootTest(properties = {
|
||||
"monday=Mon-Day!",
|
||||
"tuesday=TuesDAY#",
|
||||
"wednesday=Wednes@day",
|
||||
"thursday=THURSday^",
|
||||
"friday=Fri:Day_%",
|
||||
"saturday=Satur_DAY*",
|
||||
"sunday=Sun+Day",
|
||||
}, classes = NonConventionalWeekDaysHolder.class)
|
||||
class NonConventionalStringToEnumLenientConverterUnitTest {
|
||||
|
||||
@Autowired
|
||||
private NonConventionalWeekDaysHolder holder;
|
||||
|
||||
@ParameterizedTest
|
||||
@ArgumentsSource(NonConventionalWeekDayHolderArgumentsProvider.class)
|
||||
void givenPropertiesWhenInjectEnumThenValueIsPresent(
|
||||
Function<NonConventionalWeekDaysHolder, NonConventionalWeekDays> methodReference, NonConventionalWeekDays expected) {
|
||||
NonConventionalWeekDays actual = methodReference.apply(holder);
|
||||
assertThat(actual).isEqualTo(expected);
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package com.baeldung.caseinsensitiveenum;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import com.baeldung.caseinsensitiveenum.CaseInsensitiveStringToEnumConverterUnitTest.WeekDayConverterConfiguration;
|
||||
import com.baeldung.caseinsensitiveenum.converter.StrictNullableWeekDayConverter;
|
||||
import com.baeldung.caseinsensitiveenum.providers.SpELWeekDayHolderArgumentsProvider;
|
||||
import com.baeldung.caseinsensitiveenum.week.SpELWeekDaysHolder;
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDays;
|
||||
import java.util.function.Function;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.core.convert.support.DefaultConversionService;
|
||||
|
||||
@SpringBootTest(properties = {
|
||||
"monday=monday",
|
||||
"tuesday=tuesday",
|
||||
"wednesday=wednesday",
|
||||
"thursday=THURSDAY",
|
||||
"friday=Friday",
|
||||
"saturday=saturDAY",
|
||||
"sunday=sUndAy",
|
||||
}, classes = {SpELWeekDaysHolder.class, WeekDayConverterConfiguration.class})
|
||||
class SpELCaseInsensitiveStringToEnumConverterUnitTest {
|
||||
|
||||
public static class WeekDayConverterConfiguration {
|
||||
@Bean
|
||||
public ConversionService conversionService() {
|
||||
final DefaultConversionService defaultConversionService = new DefaultConversionService();
|
||||
defaultConversionService.addConverter(new StrictNullableWeekDayConverter());
|
||||
return defaultConversionService;
|
||||
}
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private SpELWeekDaysHolder holder;
|
||||
|
||||
@ParameterizedTest
|
||||
@ArgumentsSource(SpELWeekDayHolderArgumentsProvider.class)
|
||||
void givenPropertiesWhenInjectEnumThenValueIsNull(
|
||||
Function<SpELWeekDaysHolder, WeekDays> methodReference, WeekDays expected) {
|
||||
WeekDays actual = methodReference.apply(holder);
|
||||
assertThat(actual).isEqualTo(expected);
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package com.baeldung.caseinsensitiveenum;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import com.baeldung.caseinsensitiveenum.StrictStringToEnumConverterNegativeUnitTest.WeekDayConverterConfiguration;
|
||||
import com.baeldung.caseinsensitiveenum.converter.StrictNullableWeekDayConverter;
|
||||
import com.baeldung.caseinsensitiveenum.providers.WeekDayHolderArgumentsProvider;
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDays;
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDaysHolder;
|
||||
import java.util.function.Function;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.core.convert.support.DefaultConversionService;
|
||||
|
||||
@SpringBootTest(properties = {
|
||||
"monday=monday",
|
||||
"tuesday=tuesday",
|
||||
"wednesday=wednesday",
|
||||
"thursday=thursday",
|
||||
"friday=friday",
|
||||
"saturday=saturday",
|
||||
"sunday=sunday",
|
||||
}, classes = {WeekDaysHolder.class, WeekDayConverterConfiguration.class})
|
||||
class StrictStringToEnumConverterNegativeUnitTest {
|
||||
|
||||
public static class WeekDayConverterConfiguration {
|
||||
@Bean
|
||||
public ConversionService conversionService() {
|
||||
final DefaultConversionService defaultConversionService = new DefaultConversionService();
|
||||
defaultConversionService.addConverter(new StrictNullableWeekDayConverter());
|
||||
return defaultConversionService;
|
||||
}
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private WeekDaysHolder holder;
|
||||
|
||||
@ParameterizedTest
|
||||
@ArgumentsSource(WeekDayHolderArgumentsProvider.class)
|
||||
void givenPropertiesWhenInjectEnumThenValueIsNull(
|
||||
Function<WeekDaysHolder, WeekDays> methodReference, WeekDays ignored) {
|
||||
WeekDays actual = methodReference.apply(holder);
|
||||
assertThat(actual).isNull();
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package com.baeldung.caseinsensitiveenum;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import com.baeldung.caseinsensitiveenum.StrictStringToEnumConverterNegativeUnitTest.WeekDayConverterConfiguration;
|
||||
import com.baeldung.caseinsensitiveenum.converter.StrictNullableWeekDayConverter;
|
||||
import com.baeldung.caseinsensitiveenum.providers.WeekDayHolderArgumentsProvider;
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDays;
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDaysHolder;
|
||||
import java.util.function.Function;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ArgumentsSource;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.core.convert.support.DefaultConversionService;
|
||||
|
||||
@SpringBootTest(properties = {
|
||||
"monday=MONDAY",
|
||||
"tuesday=TUESDAY",
|
||||
"wednesday=WEDNESDAY",
|
||||
"thursday=THURSDAY",
|
||||
"friday=FRIDAY",
|
||||
"saturday=SATURDAY",
|
||||
"sunday=SUNDAY",
|
||||
}, classes = {WeekDaysHolder.class, WeekDayConverterConfiguration.class})
|
||||
class StrictStringToEnumConverterPositiveUnitTest {
|
||||
|
||||
public static class WeekDayConverterConfiguration {
|
||||
@Bean
|
||||
public ConversionService conversionService() {
|
||||
final DefaultConversionService defaultConversionService = new DefaultConversionService();
|
||||
defaultConversionService.addConverter(new StrictNullableWeekDayConverter());
|
||||
return defaultConversionService;
|
||||
}
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private WeekDaysHolder holder;
|
||||
|
||||
@ParameterizedTest
|
||||
@ArgumentsSource(WeekDayHolderArgumentsProvider.class)
|
||||
void givenPropertiesWhenInjectEnumThenValueIsNull(
|
||||
Function<WeekDaysHolder, WeekDays> methodReference, WeekDays expected) {
|
||||
WeekDays actual = methodReference.apply(holder);
|
||||
assertThat(actual).isEqualTo(expected);
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package com.baeldung.caseinsensitiveenum.providers;
|
||||
|
||||
|
||||
|
||||
import static com.baeldung.caseinsensitiveenum.nonconventionalweek.NonConventionalWeekDays.Fri$Day$_$;
|
||||
import static com.baeldung.caseinsensitiveenum.nonconventionalweek.NonConventionalWeekDays.Mon$Day;
|
||||
import static com.baeldung.caseinsensitiveenum.nonconventionalweek.NonConventionalWeekDays.Satur$DAY_;
|
||||
import static com.baeldung.caseinsensitiveenum.nonconventionalweek.NonConventionalWeekDays.Sun$Day;
|
||||
import static com.baeldung.caseinsensitiveenum.nonconventionalweek.NonConventionalWeekDays.THURS$day_;
|
||||
import static com.baeldung.caseinsensitiveenum.nonconventionalweek.NonConventionalWeekDays.Tues$DAY_;
|
||||
import static com.baeldung.caseinsensitiveenum.nonconventionalweek.NonConventionalWeekDays.Wednes$day;
|
||||
|
||||
import com.baeldung.caseinsensitiveenum.nonconventionalweek.NonConventionalWeekDays;
|
||||
import com.baeldung.caseinsensitiveenum.nonconventionalweek.NonConventionalWeekDaysHolder;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
import org.junit.jupiter.api.extension.ExtensionContext;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.ArgumentsProvider;
|
||||
|
||||
public class NonConventionalWeekDayHolderArgumentsProvider implements ArgumentsProvider {
|
||||
|
||||
@Override
|
||||
public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
|
||||
return Stream.of(
|
||||
Arguments.of(((Function<NonConventionalWeekDaysHolder, NonConventionalWeekDays>) NonConventionalWeekDaysHolder::getMonday),Mon$Day),
|
||||
Arguments.of(((Function<NonConventionalWeekDaysHolder, NonConventionalWeekDays>) NonConventionalWeekDaysHolder::getTuesday),Tues$DAY_),
|
||||
Arguments.of(((Function<NonConventionalWeekDaysHolder, NonConventionalWeekDays>) NonConventionalWeekDaysHolder::getWednesday),Wednes$day),
|
||||
Arguments.of(((Function<NonConventionalWeekDaysHolder, NonConventionalWeekDays>) NonConventionalWeekDaysHolder::getThursday),THURS$day_),
|
||||
Arguments.of(((Function<NonConventionalWeekDaysHolder, NonConventionalWeekDays>) NonConventionalWeekDaysHolder::getFriday),Fri$Day$_$),
|
||||
Arguments.of(((Function<NonConventionalWeekDaysHolder, NonConventionalWeekDays>) NonConventionalWeekDaysHolder::getSaturday),Satur$DAY_),
|
||||
Arguments.of(((Function<NonConventionalWeekDaysHolder, NonConventionalWeekDays>) NonConventionalWeekDaysHolder::getSunday),Sun$Day)
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.baeldung.caseinsensitiveenum.providers;
|
||||
|
||||
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.FRIDAY;
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.MONDAY;
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.SATURDAY;
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.SUNDAY;
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.THURSDAY;
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.TUESDAY;
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.WEDNESDAY;
|
||||
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDays;
|
||||
import com.baeldung.caseinsensitiveenum.week.SpELWeekDaysHolder;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
import org.junit.jupiter.api.extension.ExtensionContext;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.ArgumentsProvider;
|
||||
|
||||
public class SpELWeekDayHolderArgumentsProvider implements ArgumentsProvider {
|
||||
|
||||
@Override
|
||||
public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
|
||||
return Stream.of(
|
||||
Arguments.of(((Function<SpELWeekDaysHolder, WeekDays>) SpELWeekDaysHolder::getMonday), MONDAY),
|
||||
Arguments.of(((Function<SpELWeekDaysHolder, WeekDays>) SpELWeekDaysHolder::getTuesday), TUESDAY),
|
||||
Arguments.of(((Function<SpELWeekDaysHolder, WeekDays>) SpELWeekDaysHolder::getWednesday), WEDNESDAY),
|
||||
Arguments.of(((Function<SpELWeekDaysHolder, WeekDays>) SpELWeekDaysHolder::getThursday), THURSDAY),
|
||||
Arguments.of(((Function<SpELWeekDaysHolder, WeekDays>) SpELWeekDaysHolder::getFriday), FRIDAY),
|
||||
Arguments.of(((Function<SpELWeekDaysHolder, WeekDays>) SpELWeekDaysHolder::getSaturday), SATURDAY),
|
||||
Arguments.of(((Function<SpELWeekDaysHolder, WeekDays>) SpELWeekDaysHolder::getSunday), SUNDAY)
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.baeldung.caseinsensitiveenum.providers;
|
||||
|
||||
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.FRIDAY;
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.MONDAY;
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.SATURDAY;
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.SUNDAY;
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.THURSDAY;
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.TUESDAY;
|
||||
import static com.baeldung.caseinsensitiveenum.week.WeekDays.WEDNESDAY;
|
||||
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDays;
|
||||
import com.baeldung.caseinsensitiveenum.week.WeekDaysHolder;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Stream;
|
||||
import org.junit.jupiter.api.extension.ExtensionContext;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.ArgumentsProvider;
|
||||
|
||||
public class WeekDayHolderArgumentsProvider implements ArgumentsProvider {
|
||||
|
||||
@Override
|
||||
public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
|
||||
return Stream.of(
|
||||
Arguments.of(((Function<WeekDaysHolder, WeekDays>) WeekDaysHolder::getMonday), MONDAY),
|
||||
Arguments.of(((Function<WeekDaysHolder, WeekDays>) WeekDaysHolder::getTuesday), TUESDAY),
|
||||
Arguments.of(((Function<WeekDaysHolder, WeekDays>) WeekDaysHolder::getWednesday), WEDNESDAY),
|
||||
Arguments.of(((Function<WeekDaysHolder, WeekDays>) WeekDaysHolder::getThursday), THURSDAY),
|
||||
Arguments.of(((Function<WeekDaysHolder, WeekDays>) WeekDaysHolder::getFriday), FRIDAY),
|
||||
Arguments.of(((Function<WeekDaysHolder, WeekDays>) WeekDaysHolder::getSaturday), SATURDAY),
|
||||
Arguments.of(((Function<WeekDaysHolder, WeekDays>) WeekDaysHolder::getSunday), SUNDAY)
|
||||
);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user