BAEL-628: Added sources for "Constructor Injection in Spring with Lombok" article. (#1064)
* BAEL-628: Added sources for "Constructor Injection in Spring with Lombok" article. * BAEL-628: Removed unneccessary @Autowired + Apologizer example.
This commit is contained in:
parent
28cbdeb4a9
commit
5548022a2b
|
@ -3,3 +3,4 @@
|
|||
- [Exploring the Spring BeanFactory API](http://www.baeldung.com/spring-beanfactory)
|
||||
- [How to use the Spring FactoryBean?](http://www.baeldung.com/spring-factorybean)
|
||||
- [Constructor Dependency Injection in Spring](http://www.baeldung.com/constructor-injection-in-spring)
|
||||
- [Constructor Injection in Spring with Lombok](http://inprogress.baeldung.com/constructor-injection-in-spring-with-lombok)
|
||||
|
|
|
@ -52,6 +52,11 @@
|
|||
<artifactId>guava</artifactId>
|
||||
<version>${guava.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>${lombok.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
@ -131,6 +136,7 @@
|
|||
<junit.version>4.12</junit.version>
|
||||
<guava.version>20.0</guava.version>
|
||||
<maven-war-plugin.version>2.6</maven-war-plugin.version>
|
||||
<lombok.version>1.16.12</lombok.version>
|
||||
</properties>
|
||||
|
||||
<repositories>
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package com.baeldung.lombok;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
public class Apologizer {
|
||||
|
||||
private final Translator translator;
|
||||
private final String message;
|
||||
|
||||
@Autowired
|
||||
public Apologizer(Translator translator) {
|
||||
this(translator, "sorry");
|
||||
}
|
||||
|
||||
public String apologize() {
|
||||
return translator.translate(message);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package com.baeldung.lombok;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class Fareweller {
|
||||
|
||||
private final Translator translator;
|
||||
|
||||
public Fareweller(Translator translator) {
|
||||
this.translator = translator;
|
||||
}
|
||||
|
||||
public String farewell() {
|
||||
return translator.translate("bye");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package com.baeldung.lombok;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class Greeter {
|
||||
|
||||
@Autowired
|
||||
private Translator translator;
|
||||
|
||||
public String greet() {
|
||||
return translator.translate("hello");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package com.baeldung.lombok;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@AllArgsConstructor
|
||||
public class Thanker {
|
||||
|
||||
private final Translator translator;
|
||||
|
||||
public String thank() {
|
||||
return translator.translate("thank you");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
package com.baeldung.lombok;
|
||||
|
||||
public interface Translator {
|
||||
String translate(String input);
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.support.AnnotationConfigContextLoader;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(
|
||||
loader = AnnotationConfigContextLoader.class,
|
||||
classes = TestConfig.class)
|
||||
public class ApologizerAutowiringTest {
|
||||
|
||||
private final static String TRANSLATED = "TRANSLATED";
|
||||
|
||||
@Autowired
|
||||
private Apologizer apologizer;
|
||||
|
||||
@Autowired
|
||||
private Translator translator;
|
||||
|
||||
@Test
|
||||
public void apologizeWithTranslatedMessage() {
|
||||
when(translator.translate("sorry")).thenReturn(TRANSLATED);
|
||||
assertEquals(TRANSLATED, apologizer.apologize());
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public class ApologizerTest {
|
||||
|
||||
private final static String MESSAGE = "MESSAGE";
|
||||
private final static String TRANSLATED = "TRANSLATED";
|
||||
|
||||
@Test
|
||||
public void apologizeWithCustomTranslatedMessage() {
|
||||
Translator translator = mock(Translator.class);
|
||||
Apologizer apologizer = new Apologizer(translator, MESSAGE);
|
||||
when(translator.translate(MESSAGE)).thenReturn(TRANSLATED);
|
||||
assertEquals(TRANSLATED, apologizer.apologize());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.support.AnnotationConfigContextLoader;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(
|
||||
loader = AnnotationConfigContextLoader.class,
|
||||
classes = TestConfig.class)
|
||||
public class FarewellAutowiringTest {
|
||||
|
||||
@Autowired
|
||||
private Fareweller fareweller;
|
||||
|
||||
@Autowired
|
||||
private Translator translator;
|
||||
|
||||
@Test
|
||||
public void sayByeWithTranslatedMessage() {
|
||||
String translated = "translated";
|
||||
when(translator.translate("bye")).thenReturn(translated);
|
||||
assertEquals(translated, fareweller.farewell());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public class FarewellerTest {
|
||||
|
||||
private final static String TRANSLATED = "TRANSLATED";
|
||||
|
||||
@Test
|
||||
public void sayByeWithTranslatedMessage() {
|
||||
Translator translator = mock(Translator.class);
|
||||
when(translator.translate("bye")).thenReturn(TRANSLATED);
|
||||
Fareweller fareweller = new Fareweller(translator);
|
||||
assertEquals(TRANSLATED, fareweller.farewell());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.support.AnnotationConfigContextLoader;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(
|
||||
loader = AnnotationConfigContextLoader.class,
|
||||
classes = TestConfig.class)
|
||||
public class GreeterTest {
|
||||
|
||||
@Autowired
|
||||
private Greeter greeter;
|
||||
|
||||
@Autowired
|
||||
private Translator translator;
|
||||
|
||||
@Test
|
||||
public void greetWithTranslatedMessage() {
|
||||
String translated = "translated";
|
||||
when(translator.translate("hello")).thenReturn(translated);
|
||||
assertEquals(translated, greeter.greet());
|
||||
}
|
||||
|
||||
@Test(expected = NullPointerException.class)
|
||||
public void throwWhenInstantiated() {
|
||||
Greeter greeter = new Greeter();
|
||||
greeter.greet();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package com.baeldung.lombok;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
@Configuration
|
||||
@ComponentScan("com.baeldung.lombok")
|
||||
class TestConfig {
|
||||
|
||||
@Bean
|
||||
public Translator mockTranslator() {
|
||||
return mock(Translator.class);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.support.AnnotationConfigContextLoader;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(
|
||||
loader = AnnotationConfigContextLoader.class,
|
||||
classes = TestConfig.class)
|
||||
public class ThankerAutowiringTest {
|
||||
|
||||
@Autowired
|
||||
private Thanker thanker;
|
||||
|
||||
@Autowired
|
||||
private Translator translator;
|
||||
|
||||
@Test
|
||||
public void thankWithTranslatedMessage() {
|
||||
String translated = "translated";
|
||||
when(translator.translate("thank you")).thenReturn(translated);
|
||||
assertEquals(translated, thanker.thank());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package com.baeldung.lombok;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public class ThankerTest {
|
||||
|
||||
private final static String TRANSLATED = "TRANSLATED";
|
||||
|
||||
@Test
|
||||
public void thankWithTranslatedMessage() {
|
||||
Translator translator = mock(Translator.class);
|
||||
when(translator.translate("thank you")).thenReturn(TRANSLATED);
|
||||
Thanker thanker = new Thanker(translator);
|
||||
assertEquals(TRANSLATED, thanker.thank());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue