Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
d7781730
Commit
d7781730
authored
Oct 02, 2017
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Polish
parent
6c826ef0
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
70 additions
and
92 deletions
+70
-92
MessageSourceAutoConfigurationTests.java
...onfigure/context/MessageSourceAutoConfigurationTests.java
+70
-92
No files found.
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/context/MessageSourceAutoConfigurationTests.java
View file @
d7781730
...
...
@@ -18,17 +18,15 @@ package org.springframework.boot.autoconfigure.context;
import
java.util.Locale
;
import
org.junit.After
;
import
org.junit.Ignore
;
import
org.junit.Test
;
import
org.springframework.beans.DirectFieldAccessor
;
import
org.springframework.boot.
test.util.TestPropertyValue
s
;
import
org.springframework.
context.ConfigurableApplicationContext
;
import
org.springframework.boot.
autoconfigure.AutoConfiguration
s
;
import
org.springframework.
boot.test.context.runner.ApplicationContextRunner
;
import
org.springframework.context.MessageSource
;
import
org.springframework.context.MessageSourceResolvable
;
import
org.springframework.context.NoSuchMessageException
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.PropertySource
;
...
...
@@ -45,92 +43,89 @@ import static org.assertj.core.api.Assertions.assertThat;
*/
public
class
MessageSourceAutoConfigurationTests
{
private
AnnotationConfigApplicationContext
context
;
@After
public
void
closeContext
()
{
if
(
this
.
context
!=
null
)
{
this
.
context
.
close
();
}
}
private
final
ApplicationContextRunner
contextRunner
=
new
ApplicationContextRunner
()
.
withConfiguration
(
AutoConfigurations
.
of
(
MessageSourceAutoConfiguration
.
class
));
@Test
public
void
testDefaultMessageSource
()
throws
Exception
{
load
();
assertThat
(
this
.
context
.
getMessage
(
"foo"
,
null
,
"Foo message"
,
Locale
.
UK
))
.
isEqualTo
(
"Foo message"
);
public
void
testDefaultMessageSource
()
{
this
.
contextRunner
.
run
((
context
)
->
assertThat
(
context
.
getMessage
(
"foo"
,
null
,
"Foo message"
,
Locale
.
UK
))
.
isEqualTo
(
"Foo message"
)
);
}
@Test
public
void
testMessageSourceCreated
()
throws
Exception
{
load
(
"spring.messages.basename:test/messages"
);
assertThat
(
this
.
context
.
getMessage
(
"foo"
,
null
,
"Foo message"
,
Locale
.
UK
))
.
isEqualTo
(
"bar"
);
public
void
testMessageSourceCreated
()
{
this
.
contextRunner
.
withPropertyValues
(
"spring.messages.basename:test/messages"
)
.
run
((
context
)
->
assertThat
(
context
.
getMessage
(
"foo"
,
null
,
"Foo message"
,
Locale
.
UK
)).
isEqualTo
(
"bar"
)
);
}
@Test
public
void
testEncodingWorks
()
throws
Exception
{
load
(
"spring.messages.basename:test/swedish"
);
assertThat
(
this
.
context
.
getMessage
(
"foo"
,
null
,
"Foo message"
,
Locale
.
UK
))
.
isEqualTo
(
"Some text with some swedish öäå!"
);
public
void
testEncodingWorks
()
{
this
.
contextRunner
.
withPropertyValues
(
"spring.messages.basename:test/swedish"
)
.
run
((
context
)
->
assertThat
(
context
.
getMessage
(
"foo"
,
null
,
"Foo message"
,
Locale
.
UK
)).
isEqualTo
(
"Some text with some swedish öäå!"
));
}
@Test
public
void
testMultipleMessageSourceCreated
()
throws
Exception
{
load
(
"spring.messages.basename:test/messages,test/messages2"
);
assertThat
(
this
.
context
.
getMessage
(
"foo"
,
null
,
"Foo message"
,
Locale
.
UK
))
.
isEqualTo
(
"bar"
);
assertThat
(
this
.
context
.
getMessage
(
"foo-foo"
,
null
,
"Foo-Foo message"
,
Locale
.
UK
))
.
isEqualTo
(
"bar-bar"
);
public
void
testMultipleMessageSourceCreated
()
{
this
.
contextRunner
.
withPropertyValues
(
"spring.messages.basename:test/messages,test/messages2"
).
run
((
context
)
->
{
assertThat
(
context
.
getMessage
(
"foo"
,
null
,
"Foo message"
,
Locale
.
UK
))
.
isEqualTo
(
"bar"
);
assertThat
(
context
.
getMessage
(
"foo-foo"
,
null
,
"Foo-Foo message"
,
Locale
.
UK
))
.
isEqualTo
(
"bar-bar"
);
});
}
@Test
public
void
testBadEncoding
()
throws
Exception
{
load
(
"spring.messages.encoding:rubbish"
);
// Bad encoding just means the messages are ignored
assertThat
(
this
.
context
.
getMessage
(
"foo"
,
null
,
"blah"
,
Locale
.
UK
))
.
isEqualTo
(
"blah"
);
public
void
testBadEncoding
()
{
this
.
contextRunner
.
withPropertyValues
(
"spring.messages.encoding:rubbish"
)
.
run
((
context
)
->
{
// Bad encoding just means the messages are ignored
assertThat
(
context
.
getMessage
(
"foo"
,
null
,
"blah"
,
Locale
.
UK
))
.
isEqualTo
(
"blah"
);
});
}
@Test
@Ignore
(
"Expected to fail per gh-1075"
)
public
void
testMessageSourceFromPropertySourceAnnotation
()
throws
Exception
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
this
.
context
.
register
(
Config
.
class
,
MessageSourceAutoConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
);
this
.
context
.
refresh
();
assertThat
(
this
.
context
.
getMessage
(
"foo"
,
null
,
"Foo message"
,
Locale
.
UK
))
.
isEqualTo
(
"bar"
);
public
void
testMessageSourceFromPropertySourceAnnotation
()
{
this
.
contextRunner
.
withUserConfiguration
(
Config
.
class
).
run
((
context
)
->
assertThat
(
context
.
getMessage
(
"foo"
,
null
,
"Foo message"
,
Locale
.
UK
))
.
isEqualTo
(
"bar"
));
}
@Test
public
void
testFallbackDefault
()
throws
Exception
{
load
(
"spring.messages.basename:test/messages"
);
assertThat
(
isFallbackToSystemLocale
(
this
.
context
.
getBean
(
MessageSource
.
class
)))
.
isTrue
(
);
public
void
testFallbackDefault
()
{
this
.
contextRunner
.
withPropertyValues
(
"spring.messages.basename:test/messages"
)
.
run
((
context
)
->
assertThat
(
isFallbackToSystemLocale
(
context
.
getBean
(
MessageSource
.
class
))).
isTrue
()
);
}
@Test
public
void
testFallbackTurnOff
()
throws
Exception
{
load
(
"spring.messages.basename:test/messages"
,
"spring.messages.fallback-to-system-locale:false"
)
;
assertThat
(
isFallbackToSystemLocale
(
this
.
context
.
getBean
(
MessageSource
.
class
)))
.
isFalse
(
);
public
void
testFallbackTurnOff
()
{
this
.
contextRunner
.
withPropertyValues
(
"spring.messages.basename:test/messages"
,
"spring.messages.fallback-to-system-locale:false"
)
.
run
((
context
)
->
assertThat
(
isFallbackToSystemLocale
(
context
.
getBean
(
MessageSource
.
class
)))
.
isFalse
()
);
}
@Test
public
void
testFormatMessageDefault
()
throws
Exception
{
load
(
"spring.messages.basename:test/messages"
);
assertThat
(
isAlwaysUseMessageFormat
(
this
.
context
.
getBean
(
MessageSource
.
class
)))
.
isFalse
(
);
public
void
testFormatMessageDefault
()
{
this
.
contextRunner
.
withPropertyValues
(
"spring.messages.basename:test/messages"
)
.
run
((
context
)
->
assertThat
(
isAlwaysUseMessageFormat
(
context
.
getBean
(
MessageSource
.
class
))).
isFalse
()
);
}
@Test
public
void
testFormatMessageOn
()
throws
Exception
{
load
(
"spring.messages.basename:test/messages"
,
"spring.messages.always-use-message-format:true"
)
;
assertThat
(
isAlwaysUseMessageFormat
(
this
.
context
.
getBean
(
MessageSource
.
class
)))
.
isTrue
(
);
this
.
contextRunner
.
withPropertyValues
(
"spring.messages.basename:test/messages"
,
"spring.messages.always-use-message-format:true"
)
.
run
((
context
)
->
assertThat
(
isAlwaysUseMessageFormat
(
context
.
getBean
(
MessageSource
.
class
)))
.
isTrue
()
);
}
private
boolean
isFallbackToSystemLocale
(
MessageSource
messageSource
)
{
...
...
@@ -145,17 +140,17 @@ public class MessageSourceAutoConfigurationTests {
@Test
public
void
testUseCodeAsDefaultMessageDefault
()
{
load
(
"spring.messages.basename:test/messages"
);
assertThat
(
isUseCodeAsDefaultMessage
(
this
.
context
.
getBean
(
MessageSource
.
class
)))
.
isFalse
(
);
this
.
contextRunner
.
withPropertyValues
(
"spring.messages.basename:test/messages"
)
.
run
((
context
)
->
assertThat
(
isUseCodeAsDefaultMessage
(
context
.
getBean
(
MessageSource
.
class
))).
isFalse
()
);
}
@Test
public
void
testUseCodeAsDefaultMessageOn
()
{
load
(
"spring.messages.basename:test/messages"
,
"spring.messages.use-code-as-default-message:true"
)
;
assertThat
(
isUseCodeAsDefaultMessage
(
this
.
context
.
getBean
(
MessageSource
.
class
)))
.
isTrue
(
);
this
.
contextRunner
.
withPropertyValues
(
"spring.messages.basename:test/messages"
,
"spring.messages.use-code-as-default-message:true"
)
.
run
((
context
)
->
assertThat
(
isUseCodeAsDefaultMessage
(
context
.
getBean
(
MessageSource
.
class
))).
isTrue
()
);
}
private
boolean
isUseCodeAsDefaultMessage
(
MessageSource
messageSource
)
{
...
...
@@ -165,36 +160,19 @@ public class MessageSourceAutoConfigurationTests {
@Test
public
void
existingMessageSourceIsPreferred
()
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
this
.
context
.
register
(
CustomMessageSource
.
class
,
MessageSourceAutoConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
);
this
.
context
.
refresh
();
assertThat
(
this
.
context
.
getMessage
(
"foo"
,
null
,
null
,
null
)).
isEqualTo
(
"foo"
);
this
.
contextRunner
.
withUserConfiguration
(
CustomMessageSource
.
class
)
.
run
((
context
)
->
assertThat
(
context
.
getMessage
(
"foo"
,
null
,
null
,
null
))
.
isEqualTo
(
"foo"
));
}
@Test
public
void
existingMessageSourceInParentIsIgnored
()
{
try
(
ConfigurableApplicationContext
parent
=
new
AnnotationConfigApplicationContext
())
{
parent
.
refresh
();
this
.
context
=
new
AnnotationConfigApplicationContext
();
this
.
context
.
setParent
(
parent
);
TestPropertyValues
.
of
(
"spring.messages.basename:test/messages"
)
.
applyTo
(
this
.
context
);
this
.
context
.
register
(
MessageSourceAutoConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
);
this
.
context
.
refresh
();
assertThat
(
this
.
context
.
getMessage
(
"foo"
,
null
,
"Foo message"
,
Locale
.
UK
))
.
isEqualTo
(
"bar"
);
}
}
private
void
load
(
String
...
environment
)
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
TestPropertyValues
.
of
(
environment
).
applyTo
(
this
.
context
);
this
.
context
.
register
(
MessageSourceAutoConfiguration
.
class
,
PropertyPlaceholderAutoConfiguration
.
class
);
this
.
context
.
refresh
();
this
.
contextRunner
.
run
((
parent
)
->
{
this
.
contextRunner
.
withParent
(
parent
)
.
withPropertyValues
(
"spring.messages.basename:test/messages"
)
.
run
((
context
)
->
assertThat
(
context
.
getMessage
(
"foo"
,
null
,
"Foo message"
,
Locale
.
UK
)).
isEqualTo
(
"bar"
));
});
}
@Configuration
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment