Skip to content

Commit

Permalink
test: enhance OptionalProviderTest
Browse files Browse the repository at this point in the history
  • Loading branch information
mimbrero committed Oct 17, 2023
1 parent 8bca055 commit 23b13d7
Showing 1 changed file with 35 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -1,25 +1,33 @@
package st.networkers.rimor.context.provide.support;

import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoSettings;
import st.networkers.rimor.FooAnnotation;
import st.networkers.rimor.FooAnnotationImpl;
import st.networkers.rimor.context.ExecutionContext;
import st.networkers.rimor.context.Token;
import st.networkers.rimor.context.ExecutionContextServiceImpl;
import st.networkers.rimor.context.provide.ExecutionContextProviderRegistry;
import st.networkers.rimor.context.Token;

import java.util.Arrays;
import java.util.List;
import java.util.Optional;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;

@MockitoSettings
class OptionalProviderTest {

static OptionalProvider provider;
@Mock ExecutionContextServiceImpl executionContextService;
@InjectMocks OptionalProvider provider;

@BeforeAll
static void setUp() {
provider = new OptionalProvider(new ExecutionContextServiceImpl(new ExecutionContextProviderRegistry()));
@BeforeEach
void setUp() {
when(executionContextService.get(any(), any())).thenCallRealMethod();
}

@Test
Expand Down Expand Up @@ -52,6 +60,26 @@ void givenContextWithIntComponent_whenGettingIntegerWrappedInOptional_optionalCo
assertThat(get(token, context)).contains(3);
}

@Test
void givenContextWithListOfStringsComponent_whenGettingListOfStringsWrappedInOptional_optionalContainsGivenListOfStrings() {
ExecutionContext context = ExecutionContext.builder()
.bind(new Token<List<String>>() {}, Arrays.asList("foo", "bar"))
.build();

Token<Optional<List<String>>> token = new Token<Optional<List<String>>>() {};
assertThat(get(token, context)).contains(Arrays.asList("foo", "bar"));
}

@Test
void givenContextWithListOfStringsComponent_whenGettingListOfIntegersWrappedInOptional_optionalIsEmpty() {
ExecutionContext context = ExecutionContext.builder()
.bind(new Token<List<String>>() {}, Arrays.asList("foo", "bar"))
.build();

Token<Optional<List<Integer>>> token = new Token<Optional<List<Integer>>>() {};
assertThat(get(token, context)).isEmpty();
}

@Test
void givenContextWithIntComponent_whenGettingStringWrappedInOptional_optionalIsEmpty() {
ExecutionContext context = ExecutionContext.builder()
Expand Down

0 comments on commit 23b13d7

Please sign in to comment.