mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-22 15:55:49 +00:00
removed db tests from repo
This commit is contained in:
parent
c17d6302a8
commit
3d2a785bae
4 changed files with 1 additions and 257 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -15,3 +15,4 @@ build/*
|
||||||
_site/
|
_site/
|
||||||
*.css
|
*.css
|
||||||
!petclinic.css
|
!petclinic.css
|
||||||
|
.diffblue/*
|
||||||
|
|
|
@ -1,71 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright 2012-2019 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
|
|
||||||
*
|
|
||||||
* https://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.samples.petclinic;
|
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.junit.jupiter.api.condition.DisabledInNativeImage;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
|
||||||
import org.springframework.boot.test.web.server.LocalServerPort;
|
|
||||||
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
|
|
||||||
import org.springframework.boot.web.client.RestTemplateBuilder;
|
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
import org.springframework.http.RequestEntity;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.samples.petclinic.vet.VetRepository;
|
|
||||||
import org.springframework.test.context.ActiveProfiles;
|
|
||||||
import org.springframework.web.client.RestTemplate;
|
|
||||||
import org.testcontainers.containers.MySQLContainer;
|
|
||||||
import org.testcontainers.junit.jupiter.Container;
|
|
||||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
|
||||||
|
|
||||||
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
|
|
||||||
@ActiveProfiles("mysql")
|
|
||||||
@Testcontainers(disabledWithoutDocker = true)
|
|
||||||
@DisabledInNativeImage
|
|
||||||
class MySqlIntegrationTests {
|
|
||||||
|
|
||||||
@ServiceConnection
|
|
||||||
@Container
|
|
||||||
static MySQLContainer<?> container = new MySQLContainer<>("mysql:5.7");
|
|
||||||
|
|
||||||
@LocalServerPort
|
|
||||||
int port;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private VetRepository vets;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private RestTemplateBuilder builder;
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testFindAll() throws Exception {
|
|
||||||
vets.findAll();
|
|
||||||
vets.findAll(); // served from cache
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testOwnerDetails() {
|
|
||||||
RestTemplate template = builder.rootUri("http://localhost:" + port).build();
|
|
||||||
ResponseEntity<String> result = template.exchange(RequestEntity.get("/owners/1").build(), String.class);
|
|
||||||
assertThat(result.getStatusCode()).isEqualTo(HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,46 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright 2012-2019 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
|
|
||||||
*
|
|
||||||
* https://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.samples.petclinic;
|
|
||||||
|
|
||||||
import org.springframework.boot.SpringApplication;
|
|
||||||
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.context.annotation.Profile;
|
|
||||||
import org.testcontainers.containers.MySQLContainer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* PetClinic Spring Boot Application.
|
|
||||||
*
|
|
||||||
* @author Dave Syer
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Configuration
|
|
||||||
public class MysqlTestApplication {
|
|
||||||
|
|
||||||
@ServiceConnection
|
|
||||||
@Profile("mysql")
|
|
||||||
@Bean
|
|
||||||
static MySQLContainer<?> container() {
|
|
||||||
return new MySQLContainer<>("mysql:5.7");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
SpringApplication.run(PetClinicApplication.class, "--spring.profiles.active=mysql");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,140 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright 2012-2019 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
|
|
||||||
*
|
|
||||||
* https://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.samples.petclinic;
|
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
|
||||||
import static org.junit.jupiter.api.Assumptions.assumeTrue;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.apache.commons.logging.LogFactory;
|
|
||||||
import org.junit.jupiter.api.BeforeAll;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.junit.jupiter.api.condition.DisabledInNativeImage;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
|
||||||
import org.springframework.boot.context.event.ApplicationPreparedEvent;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
|
||||||
import org.springframework.boot.test.web.server.LocalServerPort;
|
|
||||||
import org.springframework.boot.web.client.RestTemplateBuilder;
|
|
||||||
import org.springframework.context.ApplicationListener;
|
|
||||||
import org.springframework.core.env.ConfigurableEnvironment;
|
|
||||||
import org.springframework.core.env.EnumerablePropertySource;
|
|
||||||
import org.springframework.core.env.PropertySource;
|
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
import org.springframework.http.RequestEntity;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.samples.petclinic.vet.VetRepository;
|
|
||||||
import org.springframework.test.context.ActiveProfiles;
|
|
||||||
import org.springframework.web.client.RestTemplate;
|
|
||||||
import org.testcontainers.DockerClientFactory;
|
|
||||||
|
|
||||||
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { "spring.docker.compose.skip.in-tests=false", //
|
|
||||||
"spring.docker.compose.profiles.active=postgres" })
|
|
||||||
@ActiveProfiles("postgres")
|
|
||||||
@DisabledInNativeImage
|
|
||||||
public class PostgresIntegrationTests {
|
|
||||||
|
|
||||||
@LocalServerPort
|
|
||||||
int port;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private VetRepository vets;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private RestTemplateBuilder builder;
|
|
||||||
|
|
||||||
@BeforeAll
|
|
||||||
static void available() {
|
|
||||||
assumeTrue(DockerClientFactory.instance().isDockerAvailable(), "Docker not available");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
new SpringApplicationBuilder(PetClinicApplication.class) //
|
|
||||||
.profiles("postgres") //
|
|
||||||
.properties( //
|
|
||||||
"spring.docker.compose.profiles.active=postgres" //
|
|
||||||
) //
|
|
||||||
.listeners(new PropertiesLogger()) //
|
|
||||||
.run(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testFindAll() throws Exception {
|
|
||||||
vets.findAll();
|
|
||||||
vets.findAll(); // served from cache
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testOwnerDetails() {
|
|
||||||
RestTemplate template = builder.rootUri("http://localhost:" + port).build();
|
|
||||||
ResponseEntity<String> result = template.exchange(RequestEntity.get("/owners/1").build(), String.class);
|
|
||||||
assertThat(result.getStatusCode()).isEqualTo(HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
static class PropertiesLogger implements ApplicationListener<ApplicationPreparedEvent> {
|
|
||||||
|
|
||||||
private static final Log log = LogFactory.getLog(PropertiesLogger.class);
|
|
||||||
|
|
||||||
private ConfigurableEnvironment environment;
|
|
||||||
|
|
||||||
private boolean isFirstRun = true;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onApplicationEvent(ApplicationPreparedEvent event) {
|
|
||||||
if (isFirstRun) {
|
|
||||||
environment = event.getApplicationContext().getEnvironment();
|
|
||||||
printProperties();
|
|
||||||
}
|
|
||||||
isFirstRun = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void printProperties() {
|
|
||||||
for (EnumerablePropertySource<?> source : findPropertiesPropertySources()) {
|
|
||||||
log.info("PropertySource: " + source.getName());
|
|
||||||
String[] names = source.getPropertyNames();
|
|
||||||
Arrays.sort(names);
|
|
||||||
for (String name : names) {
|
|
||||||
String resolved = environment.getProperty(name);
|
|
||||||
String value = source.getProperty(name).toString();
|
|
||||||
if (resolved.equals(value)) {
|
|
||||||
log.info(name + "=" + resolved);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
log.info(name + "=" + value + " OVERRIDDEN to " + resolved);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<EnumerablePropertySource<?>> findPropertiesPropertySources() {
|
|
||||||
List<EnumerablePropertySource<?>> sources = new LinkedList<>();
|
|
||||||
for (PropertySource<?> source : environment.getPropertySources()) {
|
|
||||||
if (source instanceof EnumerablePropertySource enumerable) {
|
|
||||||
sources.add(enumerable);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return sources;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in a new issue