Merge pull request #26 from Chung10Kr/contribution-9

EgovMessageSource 기능 개선
main
eGovFrameSupport 3 years ago committed by GitHub
commit d415f618e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -42,14 +42,23 @@ public class EgovMessageSource extends ReloadableResourceBundleMessageSource imp
public ReloadableResourceBundleMessageSource getReloadableResourceBundleMessageSource() {
return reloadableResourceBundleMessageSource;
}
/**
*
* Default Locale
* @param code -
* @return String
*/
public String getMessage(String code) {
return getReloadableResourceBundleMessageSource().getMessage(code, null, Locale.getDefault());
return this.getMessage(code, Locale.getDefault());
}
/**
*
* @param code -
* @param locale - locale
* @return String
*/
public String getMessage(String code, Locale locale) {
return getReloadableResourceBundleMessageSource().getMessage(code, null, locale);
}
}

@ -7,7 +7,6 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
@ -15,7 +14,6 @@ import org.springframework.util.AntPathMatcher;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import egovframework.com.cmm.EgovComTraceHandler;
import egovframework.com.cmm.EgovMessageSource;
import egovframework.com.cmm.ImagePaginationRenderer;
import egovframework.com.cmm.web.EgovMultipartResolver;
@ -42,6 +40,7 @@ import org.egovframe.rte.ptl.mvc.tags.ui.pagination.PaginationRenderer;
*
* ------------- ------------ ---------------------
* 2021. 7. 20
* 2023. 5. 05 crlee remove EgovMessageSource config
* </pre>
*
*/
@ -63,30 +62,6 @@ public class EgovConfigAppCommon {
return new AntPathMatcher();
}
/**
* @return [Resource ] Properties
*/
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource = new ReloadableResourceBundleMessageSource();
reloadableResourceBundleMessageSource.setBasenames(
"classpath:/egovframework/message/com/message-common",
"classpath:/org/egovframe/rte/fdl/idgnr/messages/idgnr",
"classpath:/org/egovframe/rte/fdl/property/messages/properties");
reloadableResourceBundleMessageSource.setCacheSeconds(60);
return reloadableResourceBundleMessageSource;
}
/**
* @return [Resource ]
*/
@Bean
public EgovMessageSource egovMessageSource() {
EgovMessageSource egovMessageSource = new EgovMessageSource();
egovMessageSource.setReloadableResourceBundleMessageSource(messageSource());
return egovMessageSource;
}
/**
* @return [LeaveaTrace ] defaultTraceHandler

@ -0,0 +1,46 @@
package egovframework.com.config;
import egovframework.com.cmm.EgovMessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
/**
* fileName : EgovConfigAppMsg
* author : crlee
* date : 2023/05/05
* description :
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2023/05/05 crlee
*/
@Configuration
public class EgovConfigAppMsg {
/**
* @return [Resource ] Properties
*/
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource = new ReloadableResourceBundleMessageSource();
reloadableResourceBundleMessageSource.setBasenames(
"classpath:/egovframework/message/com/message-common",
"classpath:/org/egovframe/rte/fdl/idgnr/messages/idgnr",
"classpath:/org/egovframe/rte/fdl/property/messages/properties");
reloadableResourceBundleMessageSource.setCacheSeconds(60);
return reloadableResourceBundleMessageSource;
}
/**
* @return [Resource ]
*/
@Bean
public EgovMessageSource egovMessageSource() {
EgovMessageSource egovMessageSource = new EgovMessageSource();
egovMessageSource.setReloadableResourceBundleMessageSource(messageSource());
return egovMessageSource;
}
}

@ -0,0 +1,71 @@
package egovframework.com;
import egovframework.com.cmm.EgovMessageSource;
import egovframework.com.config.EgovConfigAppMsg;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.stream.Stream;
/**
* fileName : EgovMessageSourceTest
* author : crlee
* date : 2023/05/05
* description :
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2023/05/05 crlee
*/
@SpringBootTest(classes = {EgovConfigAppMsg.class})
public class EgovMessageSourceTest {
@Autowired
EgovMessageSource egovMessageSource;
@TestFactory
Stream<DynamicTest> messageTests() {
List<Locale> locales = Arrays.asList(
Locale.KOREA,
Locale.US
);
return locales.stream().map(locale -> DynamicTest.dynamicTest(
"Message test with " + locale.getDisplayName(),
() -> {
String msgType = "fail.common.login";
String expectedMessage = getMessageForLocale(locale);
Assertions.assertThat(
egovMessageSource.getMessage(msgType, locale)
).isEqualTo(expectedMessage);
}
));
}
private String getMessageForLocale(Locale locale) {
if (locale == Locale.KOREA) {
return "로그인 정보가 올바르지 않습니다.";
} else if (locale == Locale.US) {
return "login information is not correct";
} else {
return "";
}
}
@Test
void enMessageTest(){
String msgType = "fail.common.login";
String expectedMessage = "login information is not correct";
Assertions.assertThat( egovMessageSource.getMessage(msgType, Locale.US) ).isEqualTo(expectedMessage);
Assertions.assertThat( egovMessageSource.getMessage(msgType, Locale.UK) ).isEqualTo(expectedMessage);
Assertions.assertThat( egovMessageSource.getMessage(msgType, Locale.ENGLISH) ).isEqualTo(expectedMessage);
}
}
Loading…
Cancel
Save