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
d2299555
Commit
d2299555
authored
Jan 19, 2017
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '1.4.x' into 1.5.x
parents
6d22e5b7
ffa6d6d6
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
111 additions
and
4 deletions
+111
-4
TestDatabaseAutoConfiguration.java
...est/autoconfigure/jdbc/TestDatabaseAutoConfiguration.java
+5
-4
TestDatabaseAutoConfigurationNoEmbeddedTests.java
...orm/jpa/TestDatabaseAutoConfigurationNoEmbeddedTests.java
+106
-0
No files found.
spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/jdbc/TestDatabaseAutoConfiguration.java
View file @
d2299555
/*
* Copyright 2012-201
6
the original author or authors.
* Copyright 2012-201
7
the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -193,9 +193,10 @@ public class TestDatabaseAutoConfiguration {
connection
=
EmbeddedDatabaseConnection
.
get
(
getClass
().
getClassLoader
());
}
Assert
.
state
(
connection
!=
EmbeddedDatabaseConnection
.
NONE
,
"Cannot determine embedded database for tests. If you want "
+
"an embedded database please put a supported one "
+
"on the classpath."
);
"Failed to replace DataSource with an embedded database for tests. If "
+
"you want an embedded database please put a supported one "
+
"on the classpath or tune the replace attribute of "
+
"@AutoconfigureTestDatabase."
);
return
new
EmbeddedDatabaseBuilder
().
generateUniqueName
(
true
)
.
setType
(
connection
.
getType
()).
build
();
}
...
...
spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/orm/jpa/TestDatabaseAutoConfigurationNoEmbeddedTests.java
0 → 100644
View file @
d2299555
/*
* Copyright 2012-2017 the original author or authors.
*
* 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
.
springframework
.
boot
.
test
.
autoconfigure
.
orm
.
jpa
;
import
javax.sql.DataSource
;
import
org.junit.After
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.BeanCreationException
;
import
org.springframework.boot.test.util.EnvironmentTestUtils
;
import
org.springframework.boot.testutil.ClassPathExclusions
;
import
org.springframework.boot.testutil.FilteredClassPathRunner
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.context.annotation.AnnotationConfigApplicationContext
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
mockito
.
Mockito
.
mock
;
/**
* Specific tests for {@link TestDatabaseAutoConfiguration} when no embedded database is
* available.
*
* @author Stephane Nicoll
*/
@RunWith
(
FilteredClassPathRunner
.
class
)
@ClassPathExclusions
({
"h2-*.jar"
,
"hsqldb-*.jar"
,
"derby-*.jar"
})
public
class
TestDatabaseAutoConfigurationNoEmbeddedTests
{
private
ConfigurableApplicationContext
context
;
@After
public
void
closeContext
()
{
if
(
this
.
context
!=
null
)
{
this
.
context
.
close
();
}
}
@Test
public
void
applyAnyReplace
()
{
try
{
load
(
ExistingDataSourceConfiguration
.
class
);
}
catch
(
BeanCreationException
ex
)
{
String
message
=
ex
.
getMessage
();
assertThat
(
message
).
contains
(
"Failed to replace DataSource with an embedded database for tests."
);
assertThat
(
message
).
contains
(
"If you want an embedded database please put a supported one on the "
+
"classpath"
);
assertThat
(
message
).
contains
(
"or tune the replace attribute of @AutoconfigureTestDatabase."
);
}
}
@Test
public
void
applyNoReplace
()
{
load
(
ExistingDataSourceConfiguration
.
class
,
"spring.test.database.replace=NONE"
);
assertThat
(
this
.
context
.
getBeansOfType
(
DataSource
.
class
)).
hasSize
(
1
);
assertThat
(
this
.
context
.
getBean
(
DataSource
.
class
)).
isSameAs
(
this
.
context
.
getBean
(
"myCustomDataSource"
));
}
public
void
load
(
Class
<?>
config
,
String
...
environment
)
{
this
.
context
=
doLoad
(
config
,
environment
);
}
public
ConfigurableApplicationContext
doLoad
(
Class
<?>
config
,
String
...
environment
)
{
AnnotationConfigApplicationContext
ctx
=
new
AnnotationConfigApplicationContext
();
if
(
config
!=
null
)
{
ctx
.
register
(
config
);
}
ctx
.
register
(
TestDatabaseAutoConfiguration
.
class
);
EnvironmentTestUtils
.
addEnvironment
(
ctx
,
environment
);
ctx
.
refresh
();
return
ctx
;
}
@Configuration
static
class
ExistingDataSourceConfiguration
{
@Bean
public
DataSource
myCustomDataSource
()
{
return
mock
(
DataSource
.
class
);
}
}
}
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