FINERACT-1744
- [x] Batch api support for idempotency - [x] BatchFilter for generic batch filtering - [x] LoanCOBApiFilter extend with BatchFilter support - [x] FineractRequestContextHolder generic context holder with batch and http request supports
This commit is contained in:
committed by
Arnold Gálovics
parent
be958b9aef
commit
995b1ea021
+18
-19
@@ -18,46 +18,47 @@
|
||||
*/
|
||||
package org.apache.fineract.commands.service;
|
||||
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import java.util.HashMap;
|
||||
import org.apache.fineract.commands.domain.CommandWrapper;
|
||||
import org.apache.fineract.infrastructure.core.config.FineractProperties;
|
||||
import org.apache.fineract.infrastructure.core.domain.BatchRequestContextHolder;
|
||||
import org.apache.fineract.infrastructure.core.domain.FineractRequestContextHolder;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.springframework.mock.web.MockHttpServletRequest;
|
||||
import org.springframework.web.context.request.RequestAttributes;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
import org.mockito.Spy;
|
||||
|
||||
public class IdempotencyKeyResolverTest {
|
||||
|
||||
@Mock
|
||||
private IdempotencyKeyGenerator idempotencyKeyGenerator;
|
||||
|
||||
@Mock
|
||||
private FineractProperties fineractProperties;
|
||||
|
||||
@InjectMocks
|
||||
private IdempotencyKeyResolver underTest;
|
||||
|
||||
@Spy
|
||||
private FineractRequestContextHolder fineractRequestContextHolder;
|
||||
|
||||
@BeforeEach
|
||||
public void setup() {
|
||||
MockitoAnnotations.openMocks(this);
|
||||
BatchRequestContextHolder.setRequestAttributes(new HashMap<>());
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void tearDown() {
|
||||
BatchRequestContextHolder.resetRequestAttributes();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIPKResolveFromRequest() {
|
||||
String idkh = "foo";
|
||||
String idk = "bar";
|
||||
Mockito.when(fineractProperties.getIdempotencyKeyHeaderName()).thenReturn(idkh);
|
||||
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.addHeader(idkh, idk);
|
||||
RequestAttributes requestAttributes = new ServletRequestAttributes(request);
|
||||
RequestContextHolder.setRequestAttributes(requestAttributes);
|
||||
fineractRequestContextHolder.setAttribute(SynchronousCommandProcessingService.IDEMPOTENCY_KEY_ATTRIBUTE, idk);
|
||||
CommandWrapper wrapper = CommandWrapper.wrap("act", "ent", 1L, 1L);
|
||||
String resolvedIdk = underTest.resolve(wrapper);
|
||||
Assertions.assertEquals(idk, resolvedIdk);
|
||||
@@ -66,8 +67,7 @@ public class IdempotencyKeyResolverTest {
|
||||
@Test
|
||||
public void testIPKResolveFromGenerate() {
|
||||
String idk = "idk";
|
||||
Mockito.when(idempotencyKeyGenerator.create()).thenReturn(idk);
|
||||
RequestContextHolder.setRequestAttributes(null);
|
||||
when(idempotencyKeyGenerator.create()).thenReturn(idk);
|
||||
CommandWrapper wrapper = CommandWrapper.wrap("act", "ent", 1L, 1L);
|
||||
String resolvedIdk = underTest.resolve(wrapper);
|
||||
Assertions.assertEquals(idk, resolvedIdk);
|
||||
@@ -75,7 +75,6 @@ public class IdempotencyKeyResolverTest {
|
||||
|
||||
@Test
|
||||
public void testIPKResolveFromWrapper() {
|
||||
RequestContextHolder.setRequestAttributes(null);
|
||||
String idk = "idk";
|
||||
CommandWrapper wrapper = new CommandWrapper(null, null, null, null, null, null, null, null, null, null, null, null, null, null,
|
||||
null, null, null, idk);
|
||||
|
||||
+5
@@ -31,6 +31,7 @@ import org.apache.fineract.commands.provider.CommandHandlerProvider;
|
||||
import org.apache.fineract.infrastructure.configuration.domain.ConfigurationDomainService;
|
||||
import org.apache.fineract.infrastructure.core.api.JsonCommand;
|
||||
import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
|
||||
import org.apache.fineract.infrastructure.core.domain.FineractRequestContextHolder;
|
||||
import org.apache.fineract.infrastructure.core.serialization.ToApiJsonSerializer;
|
||||
import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
|
||||
import org.apache.fineract.useradministration.domain.AppUser;
|
||||
@@ -41,6 +42,7 @@ import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.mockito.Spy;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
@@ -66,6 +68,9 @@ public class SynchronousCommandProcessingServiceTest {
|
||||
@Mock
|
||||
private CommandSourceService commandSourceService;
|
||||
|
||||
@Spy
|
||||
private FineractRequestContextHolder fineractRequestContextHolder;
|
||||
|
||||
@InjectMocks
|
||||
private SynchronousCommandProcessingService underTest;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user