Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test insert with mongodb by making get request #156

Open
dhanyn10 opened this issue Jan 22, 2023 · 0 comments
Open

test insert with mongodb by making get request #156

dhanyn10 opened this issue Jan 22, 2023 · 0 comments

Comments

@dhanyn10
Copy link

Blog post you are referring to

blog from url: https://rieckpil.de/mongodb-testcontainers-setup-for-datamongotest/

Your Question

im trying to make simple insert database testing, below is my test code

@Testcontainers
@SpringBootTest
@DisplayName("users testing")
@DataMongoTest(excludeAutoConfiguration = EmbeddedMongoAutoConfiguration.class)
class OrderApplicationUsersTests {
	
	@Container
	static MongoDBContainer mongoDBContainer = new MongoDBContainer(DockerImageName.parse("mongo:6.0.3"));

	@DynamicPropertySource
	static void setProperties(DynamicPropertyRegistry registry) {
		registry.add("spring.data.mongodb.uri", mongoDBContainer::getReplicaSetUrl);
	}
	
	private UserRepository userRepo;
	
	private String uriContainer = mongoDBContainer.getIpAddress();
	
	@Test
	@DisplayName("add admin")
	void isertAdmin() throws IOException {
		userRepo.deleteAll();
		URL url = new URL(uriContainer + "/users/admin");
		URLConnection conn = url.openConnection();
		InputStream in = conn.getInputStream();
		String encoding = conn.getContentEncoding();
		encoding = encoding == null ? "UTF-8" : encoding;
		String body = IOUtils.toString(in, encoding);
		MatcherAssert.assertThat(body, CoreMatchers.containsString("admin generated"));
	}
	
	@Test
	@DisplayName("add admin failed")
	void isertAdminTwice() throws IOException {
		URL url = new URL(uriContainer + "/users/admin");
		URLConnection conn = url.openConnection();
		InputStream in = conn.getInputStream();
		String encoding = conn.getContentEncoding();
		encoding = encoding == null ? "UTF-8" : encoding;
		String body = IOUtils.toString(in, encoding);
		MatcherAssert.assertThat(body, CoreMatchers.containsString("admin only generated once"));
	}

also already post question to stackoverflow https://stackoverflow.com/questions/75198138/how-to-keep-data-when-testing-insert-to-mongodb-collection-with-spring-inside-do

Context (Environment, Dependency Versions, Framework)

dna@dna:~$ java --version
openjdk 17.0.5 2022-10-18
OpenJDK Runtime Environment (build 17.0.5+8-Ubuntu-2ubuntu122.04)
OpenJDK 64-Bit Server VM (build 17.0.5+8-Ubuntu-2ubuntu122.04, mixed mode, sharing)
dna@dna:~$ mvn --version
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 17.0.5, vendor: Private Build, runtime: /usr/lib/jvm/java-17-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-41-generic", arch: "amd64", family: "unix"

my pom.xml https://github.com/dhanyn10/tes-jejakin-be/blob/main/order/pom.xml
im using Linux Mint 21 Cinnamon
my error log: https://github.com/dhanyn10/tes-jejakin-be/actions/runs/3980299926/jobs/6823284040

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant