JAVA-8366: Split or move spring-boot-annotations module

This commit is contained in:
sampadawagde
2021-12-12 17:21:57 +05:30
parent 17981c9036
commit 46007cd515
25 changed files with 43 additions and 1 deletions
@@ -0,0 +1,23 @@
package com.baeldung.annotations;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertAll;
public class EmployeeApplicationUnitTest {
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withUserConfiguration(EmployeeApplication.class);
@Test
void whenApplicationContextRuns_thenContainAllDefinedBeans() {
contextRunner.run(context -> assertAll(
() -> assertTrue(context.containsBeanDefinition("employee")),
() -> assertTrue(context.containsBeanDefinition("seniorEmployee")),
() -> assertTrue(context.containsBeanDefinition("doctor")),
() -> assertTrue(context.containsBeanDefinition("hospital")),
() -> assertFalse(context.containsBeanDefinition("student")),
() -> assertTrue(context.containsBeanDefinition("teacher"))));
}
}
@@ -1,10 +0,0 @@
package com.baeldung.annotations.conditional;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.context.annotation.ComponentScan;
@TestConfiguration
@ComponentScan("com.baeldung.annotations.conditional")
public class ConditionalTestConfiguration {
}
@@ -1,52 +0,0 @@
package com.baeldung.annotations.conditional;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
public class DevEnvLoggingConfigurationUnitTest {
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner();
@Test
public void whenDevEnvEnabled_thenDevEnvLoggingConfigurationAndLoggingServiceShouldBeCreated() {
System.setProperty("env", "dev");
contextRunner
.withUserConfiguration(ConditionalTestConfiguration.class)
.run(context ->
Assertions.assertNotNull(
context.getBean(DevEnvLoggingConfiguration.class)
)
);
contextRunner
.withUserConfiguration(ConditionalTestConfiguration.class)
.run(context ->
Assertions.assertNotNull(
context.getBean(LoggingService.class)
)
);
}
@Test
public void whenDevEnvNotEnabled_thenDevEnvLoggingConfigurationAndLoggingServiceShouldNotBeCreated() {
System.setProperty("env", "not-dev");
contextRunner
.withUserConfiguration(ConditionalTestConfiguration.class)
.run(context ->
Assertions.assertThrows(NoSuchBeanDefinitionException.class, () ->
context.getBean(DevEnvLoggingConfiguration.class)
)
);
contextRunner
.withUserConfiguration(ConditionalTestConfiguration.class)
.run(context ->
Assertions.assertThrows(NoSuchBeanDefinitionException.class, () ->
context.getBean(LoggingService.class)
)
);
}
}
@@ -1,33 +0,0 @@
package com.baeldung.annotations.conditional;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.mockito.Mockito;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
public class IsDevEnvConditionUnitTest {
@Test
public void whenDevEnvEnabled_thenDevEnvConditionShouldPass() {
System.setProperty("env", "dev");
Assertions.assertTrue(
new IsDevEnvCondition().matches(
Mockito.mock(ConditionContext.class), Mockito.mock(AnnotatedTypeMetadata.class)
)
);
}
@Test
public void whenDevEnvNotEnabled_thenDevEnvConditionShouldNotPass() {
System.setProperty("env", "not-dev");
Assertions.assertFalse(
new IsDevEnvCondition().matches(
Mockito.mock(ConditionContext.class), Mockito.mock(AnnotatedTypeMetadata.class)
)
);
}
}
@@ -1,39 +0,0 @@
package com.baeldung.annotations.conditional;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
public class IsWindowsConditionUnitTest {
@Test
public void whenOnWindows_thenIsWindowsConditionShouldPass() {
try (MockedStatic<ConditionalUtils> theMock = Mockito.mockStatic(ConditionalUtils.class)) {
theMock.when(ConditionalUtils::isWindows)
.thenReturn(true);
Assertions.assertTrue(
new IsWindowsCondition().matches(
Mockito.mock(ConditionContext.class), Mockito.mock(AnnotatedTypeMetadata.class)
)
);
}
}
@Test
public void whenNotOnWindows_thenIsWindowsConditionShouldNotPass() {
try (MockedStatic<ConditionalUtils> theMock = Mockito.mockStatic(ConditionalUtils.class)) {
theMock.when(ConditionalUtils::isWindows)
.thenReturn(false);
Assertions.assertFalse(
new IsWindowsCondition().matches(
Mockito.mock(ConditionContext.class), Mockito.mock(AnnotatedTypeMetadata.class)
)
);
}
}
}
@@ -1,39 +0,0 @@
package com.baeldung.annotations.conditional;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
public class Java8ConditionUnitTest {
@Test
public void whenOnJava8_thenJava8ConditionShouldPass() {
try (MockedStatic<ConditionalUtils> theMock = Mockito.mockStatic(ConditionalUtils.class)) {
theMock.when(ConditionalUtils::isJava8)
.thenReturn(true);
Assertions.assertTrue(
new Java8Condition().matches(
Mockito.mock(ConditionContext.class), Mockito.mock(AnnotatedTypeMetadata.class)
)
);
}
}
@Test
public void whenNotOnJava8_thenJava8ConditionShouldNotPass() {
try (MockedStatic<ConditionalUtils> theMock = Mockito.mockStatic(ConditionalUtils.class)) {
theMock.when(ConditionalUtils::isJava8)
.thenReturn(false);
Assertions.assertFalse(
new Java8Condition().matches(
Mockito.mock(ConditionContext.class), Mockito.mock(AnnotatedTypeMetadata.class)
)
);
}
}
}
@@ -1,39 +0,0 @@
package com.baeldung.annotations.conditional;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
public class Java9ConditionUnitTest {
@Test
public void whenOnJava9_thenJava9ConditionShouldPass() {
try (MockedStatic<ConditionalUtils> theMock = Mockito.mockStatic(ConditionalUtils.class)) {
theMock.when(ConditionalUtils::isJava9)
.thenReturn(true);
Assertions.assertTrue(
new Java9Condition().matches(
Mockito.mock(ConditionContext.class), Mockito.mock(AnnotatedTypeMetadata.class)
)
);
}
}
@Test
public void whenNotOnJava9_thenJava9ConditionShouldNotPass() {
try (MockedStatic<ConditionalUtils> theMock = Mockito.mockStatic(ConditionalUtils.class)) {
theMock.when(ConditionalUtils::isJava9)
.thenReturn(false);
Assertions.assertFalse(
new Java9Condition().matches(
Mockito.mock(ConditionContext.class), Mockito.mock(AnnotatedTypeMetadata.class)
)
);
}
}
}
@@ -0,0 +1,51 @@
package com.baeldung.annotations.service;
import com.baeldung.annotations.service.abstracts.AbstractAuthenticationService;
import com.baeldung.annotations.service.config.AbstractsAnnotatedTestConfiguration;
import com.baeldung.annotations.service.config.ConcreteClassesAnnotatedTestConfiguration;
import com.baeldung.annotations.service.config.InterfacesAnnotatedTestConfiguration;
import com.baeldung.annotations.service.interfaces.AuthenticationService;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
public class AuthApplicationUnitTest {
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner();
@Test
void whenOnlyInterfacesAnnotated_noSuchBeanDefinitionExceptionThrown() {
contextRunner
.withUserConfiguration(InterfacesAnnotatedTestConfiguration.class)
.run(context -> {
Assertions.assertThrows(NoSuchBeanDefinitionException.class, () -> {
context.getBean(AuthenticationService.class);
});
});
}
@Test
void whenOnlyAbstractClassesAnnotated_noSuchBeanDefinitionExceptionThrown() {
contextRunner
.withUserConfiguration(AbstractsAnnotatedTestConfiguration.class)
.run(context -> {
Assertions.assertThrows(NoSuchBeanDefinitionException.class, () -> {
context.getBean(AbstractAuthenticationService.class);
});
});
}
@Test
void whenConcreteClassesAnnotated_noExceptionThrown() {
contextRunner
.withUserConfiguration(ConcreteClassesAnnotatedTestConfiguration.class)
.run(context -> {
AuthenticationService inMemoryAuthService = context.getBean(AuthenticationService.class);
AbstractAuthenticationService ldapAuthService = context.getBean(AbstractAuthenticationService.class);
Assertions.assertNotNull(inMemoryAuthService);
Assertions.assertNotNull(ldapAuthService);
});
}
}
@@ -0,0 +1,10 @@
package com.baeldung.annotations.service.config;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.context.annotation.ComponentScan;
@TestConfiguration
@ComponentScan("com.baeldung.annotations.service.abstracts")
public class AbstractsAnnotatedTestConfiguration {
}
@@ -0,0 +1,10 @@
package com.baeldung.annotations.service.config;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.context.annotation.ComponentScan;
@TestConfiguration
@ComponentScan("com.baeldung.annotations.service.concretes")
public class ConcreteClassesAnnotatedTestConfiguration {
}
@@ -0,0 +1,10 @@
package com.baeldung.annotations.service.config;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.context.annotation.ComponentScan;
@TestConfiguration
@ComponentScan("com.baeldung.annotations.service.interfaces")
public class InterfacesAnnotatedTestConfiguration {
}