MentaContainer

Rev

Rev 89 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.mentacontainer;

import java.lang.reflect.Method;

import junit.framework.Assert;

import org.junit.Test;
import org.mentacontainer.SetterDependency;

public class DependencyTest {
       
        private static class User {
               
                private String username;
                private String something;
               
                public User() { }
               
                public User(String username) {
                        this.username = username;
                }
               
                public String getUsername() {
                        return username;
                }
               
                public void setUsername(String username) {
                        this.username = username;
                }
               
                public void setSomething(String s) {
                        this.something = "STRING: " + s;
                }
               
                public void setSomething(Object s) {
                        this.something = "OBJECT: " + s;
                }
               
                public String getSomething() {
                        return something;
                }
               
                public void setElse(Object s) {
                       
                }
        }
       
        @Test
        public void testDependency() {
               
                SetterDependency d = new SetterDependency("username", "theUsername", String.class);
               
                Assert.assertEquals("username", d.getTarget());
               
                Assert.assertEquals("theUsername", d.getSource());
               
                Method m = d.check(User.class);
               
                Assert.assertNotNull(m);
               
                Assert.assertEquals("setUsername", m.getName());
               
                Assert.assertEquals(String.class, m.getParameterTypes()[0]);
               
                d = new SetterDependency("something", "theSomething", String.class);
               
                m = d.check(User.class);
               
                Assert.assertEquals("setSomething", m.getName());
               
                Assert.assertEquals(String.class, m.getParameterTypes()[0]);
               
                d = new SetterDependency("else", "theElse", String.class);
               
                m = d.check(User.class);
               
                Assert.assertEquals("setElse", m.getName());
               
                Assert.assertEquals(Object.class, m.getParameterTypes()[0]);           
        }
}