diff --git a/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jndi/datasource/SimpleJNDIUnitTest.java b/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jndi/datasource/SimpleJNDIUnitTest.java new file mode 100644 index 0000000000..cf44de8618 --- /dev/null +++ b/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jndi/datasource/SimpleJNDIUnitTest.java @@ -0,0 +1,37 @@ +package com.baeldung.jndi.datasource; + +import static org.junit.Assert.assertEquals; + +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.sql.DataSource; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +public class SimpleJNDIUnitTest { + + private InitialContext initContext; + + @BeforeEach + public void setup() throws Exception { + System.setProperty("java.naming.factory.initial", "org.osjava.sj.SimpleContextFactory"); + System.setProperty("org.osjava.sj.root", "file://src/test/resources"); + System.setProperty("org.osjava.sj.delimiter", "."); + System.setProperty("jndi.syntax.separator", "/"); + System.setProperty("org.osjava.sj.space", "java:/comp/env"); + + this.initContext = new InitialContext(); + } + + @Test + public void whenMockJndiDataSource_thenReturnJndiDataSource() throws Exception { + String dsString = "org.h2.Driver::::jdbc:jdbc:h2:mem:testdb::::sa"; + + Context envContext = (Context) this.initContext.lookup("java:/comp/env"); + DataSource ds = (DataSource) envContext.lookup("datasource/ds"); + + assertEquals(dsString, ds.toString()); + } + +} \ No newline at end of file diff --git a/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jndi/datasource/SimpleNamingContextBuilderUnitTest.java b/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jndi/datasource/SimpleNamingContextBuilderUnitTest.java new file mode 100644 index 0000000000..7fdd47a77d --- /dev/null +++ b/persistence-modules/spring-persistence-simple-2/src/test/java/com/baeldung/jndi/datasource/SimpleNamingContextBuilderUnitTest.java @@ -0,0 +1,32 @@ +package com.baeldung.jndi.datasource; + +import static org.junit.Assert.assertNotNull; + +import javax.naming.InitialContext; +import javax.sql.DataSource; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.mock.jndi.SimpleNamingContextBuilder; + +@SuppressWarnings("deprecation") +public class SimpleNamingContextBuilderUnitTest { + + private InitialContext initContext; + + @BeforeEach + public void init() throws Exception { + SimpleNamingContextBuilder.emptyActivatedContextBuilder(); + this.initContext = new InitialContext(); + } + + @Test + public void whenMockJndiDataSource_thenReturnJndiDataSource() throws Exception { + this.initContext.bind("java:comp/env/jdbc/datasource", new DriverManagerDataSource("jdbc:h2:mem:testdb")); + DataSource ds = (DataSource) this.initContext.lookup("java:comp/env/jdbc/datasource"); + + assertNotNull(ds.getConnection()); + } + +} \ No newline at end of file