From 76df3d01175050c0d62be5c32e94a635436781e4 Mon Sep 17 00:00:00 2001 From: Justin Albano Date: Mon, 10 Feb 2020 20:36:52 -0500 Subject: [PATCH] BAEL-3744: Added unit tests for Spring Framework design patterns. --- ...nnotationConfigApplicationContextTest.java | 36 +++++++++++++++++++ .../patterns/factory/ApplicationConfig.java | 9 +++++ .../baeldung/spring/patterns/factory/Bar.java | 20 +++++++++++ .../baeldung/spring/patterns/factory/Foo.java | 7 ++++ 4 files changed, 72 insertions(+) create mode 100644 spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java create mode 100644 spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java create mode 100644 spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Bar.java create mode 100644 spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Foo.java diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java new file mode 100644 index 0000000000..57a8ece197 --- /dev/null +++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/AnnotationConfigApplicationContextTest.java @@ -0,0 +1,36 @@ +package com.baeldung.spring.patterns.factory; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.junit.jupiter.api.Test; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +public class AnnotationConfigApplicationContextTest { + + @Test + @SuppressWarnings("resource") + public void whenGetSimpleBean_ThenReturnConstructedBean() { + + ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); + + Foo foo = context.getBean(Foo.class); + + assertNotNull(foo); + } + + @Test + @SuppressWarnings("resource") + public void whenGetPrototypeBean_ThenReturnConstructedBean() { + + String expectedName = "Some name"; + ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfig.class); + + Bar bar = context.getBean(Bar.class, expectedName); + + assertNotNull(bar); + assertThat(bar.getName(), is(expectedName)); + } +} diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java new file mode 100644 index 0000000000..626947cfd5 --- /dev/null +++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/ApplicationConfig.java @@ -0,0 +1,9 @@ +package com.baeldung.spring.patterns.factory; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan(basePackageClasses = ApplicationConfig.class) +public class ApplicationConfig { +} diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Bar.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Bar.java new file mode 100644 index 0000000000..e2f825aab3 --- /dev/null +++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Bar.java @@ -0,0 +1,20 @@ +package com.baeldung.spring.patterns.factory; + +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; + +@Component +@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) +public class Bar { + + private String name; + + public Bar(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} \ No newline at end of file diff --git a/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Foo.java b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Foo.java new file mode 100644 index 0000000000..5edba6c50d --- /dev/null +++ b/spring-core-3/src/test/java/com/baeldung/spring/patterns/factory/Foo.java @@ -0,0 +1,7 @@ +package com.baeldung.spring.patterns.factory; + +import org.springframework.stereotype.Component; + +@Component +public class Foo { +}