BAEL-4871 Spring Conditional Annotations
This commit is contained in:
+10
@@ -0,0 +1,10 @@
|
||||
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 {
|
||||
|
||||
}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
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 DevEnvLoggingConfigurationTest {
|
||||
|
||||
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() {
|
||||
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)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
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() {
|
||||
Assertions.assertTrue(
|
||||
new IsDevEnvCondition().matches(
|
||||
Mockito.mock(ConditionContext.class), Mockito.mock(AnnotatedTypeMetadata.class)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
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)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
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)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
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)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user