WIP Redis junit5 test container
This commit is contained in:
		
							parent
							
								
									a7eee8fe62
								
							
						
					
					
						commit
						d9b7725113
					
				@ -216,6 +216,11 @@
 | 
				
			|||||||
            <artifactId>jdbc</artifactId>
 | 
					            <artifactId>jdbc</artifactId>
 | 
				
			||||||
            <scope>test</scope>
 | 
					            <scope>test</scope>
 | 
				
			||||||
        </dependency>
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.testcontainers</groupId>
 | 
				
			||||||
 | 
					            <artifactId>junit-jupiter</artifactId>
 | 
				
			||||||
 | 
					            <scope>test</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
        <dependency>
 | 
					        <dependency>
 | 
				
			||||||
            <groupId>org.springframework</groupId>
 | 
					            <groupId>org.springframework</groupId>
 | 
				
			||||||
            <artifactId>spring-context-support</artifactId>
 | 
					            <artifactId>spring-context-support</artifactId>
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Copyright © 2016-2024 The Thingsboard 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.thingsboard.server.dao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
 | 
					import org.junit.jupiter.api.AfterAll;
 | 
				
			||||||
 | 
					import org.junit.jupiter.api.BeforeAll;
 | 
				
			||||||
 | 
					import org.junit.jupiter.api.Test;
 | 
				
			||||||
 | 
					import org.testcontainers.containers.GenericContainer;
 | 
				
			||||||
 | 
					import org.testcontainers.containers.output.OutputFrame;
 | 
				
			||||||
 | 
					import org.testcontainers.junit.jupiter.Container;
 | 
				
			||||||
 | 
					import org.testcontainers.junit.jupiter.Testcontainers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.assertj.core.api.Assertions.assertThat;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Testcontainers
 | 
				
			||||||
 | 
					@Slf4j
 | 
				
			||||||
 | 
					public class RedisJUnit5Test {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Container
 | 
				
			||||||
 | 
					    private static final GenericContainer REDIS = new GenericContainer("redis:7.2-bookworm")
 | 
				
			||||||
 | 
					            .withLogConsumer(s -> log.error(((OutputFrame) s).getUtf8String().trim()))
 | 
				
			||||||
 | 
					            .withExposedPorts(6379);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @BeforeAll
 | 
				
			||||||
 | 
					    static void beforeAll() {
 | 
				
			||||||
 | 
					        log.warn("Starting redis...");
 | 
				
			||||||
 | 
					        REDIS.start();
 | 
				
			||||||
 | 
					        System.setProperty("cache.type", "redis");
 | 
				
			||||||
 | 
					        System.setProperty("redis.connection.type", "standalone");
 | 
				
			||||||
 | 
					        System.setProperty("redis.standalone.host", REDIS.getHost());
 | 
				
			||||||
 | 
					        System.setProperty("redis.standalone.port", String.valueOf(REDIS.getMappedPort(6379)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @AfterAll
 | 
				
			||||||
 | 
					    static void afterAll() {
 | 
				
			||||||
 | 
					        List.of("cache.type", "redis.connection.type", "redis.standalone.host", "redis.standalone.port")
 | 
				
			||||||
 | 
					                .forEach(System.getProperties()::remove);
 | 
				
			||||||
 | 
					        REDIS.stop();
 | 
				
			||||||
 | 
					        log.warn("Redis is stopped");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    void test() {
 | 
				
			||||||
 | 
					        assertThat(REDIS.isRunning()).isTrue();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										12
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								pom.xml
									
									
									
									
									
								
							@ -2021,6 +2021,18 @@
 | 
				
			|||||||
                    </exclusion>
 | 
					                    </exclusion>
 | 
				
			||||||
                </exclusions>
 | 
					                </exclusions>
 | 
				
			||||||
            </dependency>
 | 
					            </dependency>
 | 
				
			||||||
 | 
					            <dependency>
 | 
				
			||||||
 | 
					                <groupId>org.testcontainers</groupId>
 | 
				
			||||||
 | 
					                <artifactId>junit-jupiter</artifactId>
 | 
				
			||||||
 | 
					                <version>${testcontainers.version}</version>
 | 
				
			||||||
 | 
					                <scope>test</scope>
 | 
				
			||||||
 | 
					                <exclusions>
 | 
				
			||||||
 | 
					                    <exclusion>
 | 
				
			||||||
 | 
					                        <groupId>junit</groupId>
 | 
				
			||||||
 | 
					                        <artifactId>junit</artifactId>
 | 
				
			||||||
 | 
					                    </exclusion>
 | 
				
			||||||
 | 
					                </exclusions>
 | 
				
			||||||
 | 
					            </dependency>
 | 
				
			||||||
            <dependency>
 | 
					            <dependency>
 | 
				
			||||||
                <groupId>org.zeroturnaround</groupId>
 | 
					                <groupId>org.zeroturnaround</groupId>
 | 
				
			||||||
                <artifactId>zt-exec</artifactId>
 | 
					                <artifactId>zt-exec</artifactId>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user