import static org.junit.Assert.*; import java.io.File; import java.lang.reflect.Method; import java.util.List; import org.junit.Test; import org.mef.sprig.Sprig; public class OtherTests extends BaseTest { public static class User { public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } private String firstName; private String lastName; private Address addr; public Address getAddr() { return addr; } public void setAddr(Address addr) { this.addr = addr; } } public static class Address { public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public int getRegion() { return region; } public void setRegion(int region) { this.region = region; } private String street; private int region; } @Test public void testFile() { String path = getTestFile("User.json"); log(path); File f = new File(path); assertTrue(f.exists()); } @SuppressWarnings("rawtypes") @Test public void testUser() throws Exception { Class clazz = User.class; String s = clazz.getSimpleName(); log(s); String path = this.getTestFile(""); Sprig.setDir(path); int n = Sprig.load(User.class, Address.class); assertEquals(4, n); List<Object> L = Sprig.getLoadedObjects(User.class); assertEquals(2, L.size()); User u = (User)L.get(0); assertEquals("bob", u.firstName); assertEquals("Smith", u.lastName); assertNotNull(u.addr); assertEquals("King", u.addr.getStreet()); u = (User)L.get(1); assertEquals("sue", u.firstName); } @SuppressWarnings("rawtypes") @Test public void testAddress() throws Exception { String path = this.getTestFile(""); Sprig.setDir(path); int n = Sprig.load(Address.class); assertEquals(2, n); List<Object> L = Sprig.getLoadedObjects(Address.class); assertEquals(2, L.size()); Address u = (Address)L.get(0); assertEquals("Main", u.street); assertEquals(42, u.region); } @Test public void testT() { Method getNameMethod; User user = new User(); Address addr = new Address(); addr.setStreet("abc"); try { getNameMethod = user.getClass().getMethod("setAddr", Address.class); } catch (SecurityException exception1) { getNameMethod = null; } catch (NoSuchMethodException exception1) { getNameMethod = null; } if (getNameMethod != null) { try { System.out.println(getNameMethod.invoke(user, new Object[]{addr})); } catch (IllegalArgumentException exception) { // TODO Implement this catch block. } catch (IllegalAccessException exception) { // TODO Implement this catch block. } catch (java.lang.reflect.InvocationTargetException exception) { // TODO Implement this catch block. } } else { System.out.print("Unexpected class: "); System.out.println(user.getClass()); } assertEquals("abc", user.addr.getStreet()); } }