From ac2ce9636c1fef94bc0357bacc7b0283141c3f78 Mon Sep 17 00:00:00 2001 From: Ahmed Tawila Date: Fri, 16 Jun 2017 13:57:37 +0200 Subject: [PATCH] added tests & changed configuration to Java-based config --- .../java/com/baeldung/ConstructorApp.java | 7 +++-- .../src/main/java/com/baeldung/SetterApp.java | 10 +++---- .../configuration/ConstructorConfig.java | 21 ++++++++++++++ .../baeldung/configuration/SetterConfig.java | 28 +++++++++++++++++++ .../configuration/ConstructorConfigTest.java | 22 +++++++++++++++ .../configuration/SetterConfigTest.java | 22 +++++++++++++++ 6 files changed, 101 insertions(+), 9 deletions(-) create mode 100644 spring-core/src/main/java/com/baeldung/configuration/ConstructorConfig.java create mode 100644 spring-core/src/main/java/com/baeldung/configuration/SetterConfig.java create mode 100644 spring-core/src/test/java/com/baeldung/configuration/ConstructorConfigTest.java create mode 100644 spring-core/src/test/java/com/baeldung/configuration/SetterConfigTest.java diff --git a/spring-core/src/main/java/com/baeldung/ConstructorApp.java b/spring-core/src/main/java/com/baeldung/ConstructorApp.java index 89aa55d3b1..3c66f74a36 100644 --- a/spring-core/src/main/java/com/baeldung/ConstructorApp.java +++ b/spring-core/src/main/java/com/baeldung/ConstructorApp.java @@ -1,15 +1,16 @@ package com.baeldung; import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; +import com.baeldung.configuration.ConstructorConfig; import com.baeldung.model.Student; public class ConstructorApp { public static void main(String[] args) { - ApplicationContext context = new ClassPathXmlApplicationContext("constructor-context.xml"); - - Student student = (Student) context.getBean("student"); + AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ConstructorConfig.class); + Student student = context.getBean(Student.class); student.introduceMyself(); } } diff --git a/spring-core/src/main/java/com/baeldung/SetterApp.java b/spring-core/src/main/java/com/baeldung/SetterApp.java index 17de7db6dd..202f557f44 100644 --- a/spring-core/src/main/java/com/baeldung/SetterApp.java +++ b/spring-core/src/main/java/com/baeldung/SetterApp.java @@ -1,15 +1,13 @@ package com.baeldung; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; - +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import com.baeldung.configuration.SetterConfig; import com.baeldung.model.Student; public class SetterApp { public static void main(String[] args) { - ApplicationContext context = new ClassPathXmlApplicationContext("setter-context.xml"); - - Student student = (Student) context.getBean("student"); + AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(SetterConfig.class); + Student student = context.getBean(Student.class); student.introduceMyself(); } } diff --git a/spring-core/src/main/java/com/baeldung/configuration/ConstructorConfig.java b/spring-core/src/main/java/com/baeldung/configuration/ConstructorConfig.java new file mode 100644 index 0000000000..e1ebdcedca --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/configuration/ConstructorConfig.java @@ -0,0 +1,21 @@ +package com.baeldung.configuration; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import com.baeldung.model.College; +import com.baeldung.model.Student; + +@Configuration +public class ConstructorConfig { + + @Bean + public Student student() { + return new Student(1, "John", college()); + } + + @Bean + public College college() { + return new College(1, "New York"); + } +} diff --git a/spring-core/src/main/java/com/baeldung/configuration/SetterConfig.java b/spring-core/src/main/java/com/baeldung/configuration/SetterConfig.java new file mode 100644 index 0000000000..caaa70ee46 --- /dev/null +++ b/spring-core/src/main/java/com/baeldung/configuration/SetterConfig.java @@ -0,0 +1,28 @@ +package com.baeldung.configuration; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import com.baeldung.model.College; +import com.baeldung.model.Student; + +@Configuration +public class SetterConfig { + + @Bean + public Student student() { + Student student = new Student(); + student.setId(2); + student.setName("Tom"); + student.setCollege(college()); + return student; + } + + @Bean + public College college() { + College college = new College(); + college.setId(2); + college.setName("Pittsburgh"); + return college; + } +} diff --git a/spring-core/src/test/java/com/baeldung/configuration/ConstructorConfigTest.java b/spring-core/src/test/java/com/baeldung/configuration/ConstructorConfigTest.java new file mode 100644 index 0000000000..a9f5165704 --- /dev/null +++ b/spring-core/src/test/java/com/baeldung/configuration/ConstructorConfigTest.java @@ -0,0 +1,22 @@ +package com.baeldung.configuration; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +import com.baeldung.model.Student; + +public class ConstructorConfigTest { + + @Test + public void testConstructorDependencyInjection() { + ApplicationContext context = new AnnotationConfigApplicationContext(ConstructorConfig.class); + Student student = context.getBean(Student.class); + assertEquals(1, student.getId()); + assertEquals("John", student.getName()); + assertEquals(1, student.getCollege().getId()); + assertEquals("New York", student.getCollege().getName()); + } +} diff --git a/spring-core/src/test/java/com/baeldung/configuration/SetterConfigTest.java b/spring-core/src/test/java/com/baeldung/configuration/SetterConfigTest.java new file mode 100644 index 0000000000..5d687d0272 --- /dev/null +++ b/spring-core/src/test/java/com/baeldung/configuration/SetterConfigTest.java @@ -0,0 +1,22 @@ +package com.baeldung.configuration; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +import com.baeldung.model.Student; + +public class SetterConfigTest { + + @Test + public void testConstructorDependencyInjection() { + ApplicationContext context = new AnnotationConfigApplicationContext(SetterConfig.class); + Student student = context.getBean(Student.class); + assertEquals(2, student.getId()); + assertEquals("Tom", student.getName()); + assertEquals(2, student.getCollege().getId()); + assertEquals("Pittsburgh", student.getCollege().getName()); + } +}