/*
* Copyright 2013 gerald.
*
* 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 io.hawt.jndi;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
import javax.naming.Context;
import javax.naming.NamingException;
import org.junit.*;
import static org.junit.Assert.*;
/**
*
*/
public class JndiFacadeTest {
private JndiFacade jndiFacade;
private Context context;
@Before
public void setUp() throws NamingException {
Hashtable<String,Object> environment=new Hashtable<String, Object>();
environment.put(Context.INITIAL_CONTEXT_FACTORY, StubInitialContextFactory.class.getName());
Map<String,Object> data=new HashMap<String, Object>(3);
data.put("string", "Xxx");
data.put("integer", 123);
Map<String,Object> subData=new HashMap<String, Object>(3);
subData.put("boolean", true);
data.put("subcontext", subData);
environment.put("data", data);
jndiFacade=new JndiFacade();
jndiFacade.setEnvironment(environment);
}
@Test
public void testGetData() throws NamingException {
assertEquals(3, jndiFacade.getData().length);
}
@Test
public void testList() throws NamingException {
assertEquals(3, jndiFacade.list(null).length);
assertEquals(3, jndiFacade.list("").length);
final JndiDTO[] namingDatas = jndiFacade.list("subcontext");
assertEquals(1, namingDatas.length);
assertEquals("subcontext/boolean", namingDatas[0].getFullName());
assertEquals("boolean", namingDatas[0].getSimpleName());
assertEquals("java.lang.Boolean", namingDatas[0].getTypeNames()[0]);
}
@Test
public void testLookup() throws NamingException {
JndiDTO data=jndiFacade.lookup("string");
assertEquals("string", data.getSimpleName());
assertEquals("string", data.getFullName());
assertEquals("java.lang.String", data.getTypeNames()[0]);
data=jndiFacade.lookup("subcontext");
assertEquals("subcontext", data.getSimpleName());
assertEquals("subcontext", data.getFullName());
assertEquals("javax.naming.Context", data.getTypeNames()[0]);
data=jndiFacade.lookup("subcontext/boolean");
assertEquals("boolean", data.getSimpleName());
assertEquals("subcontext/boolean", data.getFullName());
assertEquals("java.lang.Boolean", data.getTypeNames()[0]);
assertNull(jndiFacade.lookup("null"));
data=jndiFacade.lookup(null);
assertEquals("", data.getSimpleName());
assertEquals("", data.getFullName());
assertEquals("javax.naming.Context", data.getTypeNames()[0]);
}
}