Skip to content

Commit

Permalink
fix: unit test cases fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
“sneha122” committed Feb 24, 2025
1 parent b06d39e commit 505ba4d
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -298,11 +298,14 @@ default Mono<TriggerResultDTO> triggerWithFlags(

default Mono<C> datasourceCreate(
DatasourceConfiguration datasourceConfiguration, Map<String, Boolean> featureFlagMap) {
return datasourceCreate(datasourceConfiguration);
return this.datasourceCreate(datasourceConfiguration);
}

default Mono<DatasourceTestResult> testDatasource(
DatasourceConfiguration datasourceConfiguration, Map<String, Boolean> featureFlagMap) {
if (featureFlagMap == null || featureFlagMap.isEmpty()) {
return this.testDatasource(datasourceConfiguration);
}
return this.datasourceCreate(datasourceConfiguration, featureFlagMap)
.flatMap(connection -> {
return this.testDatasource(connection).doFinally(signal -> this.datasourceDestroy(connection));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -215,10 +215,9 @@ public Mono<DatasourceContext<Object>> getCachedDatasourceContextMono(
DatasourceContext<Object> datasourceContext = new DatasourceContext<>();
Mono<Object> connectionMonoCache = featureFlagService
.getAllFeatureFlagsForUser()
.flatMap(featureFlagMap -> pluginExecutor
.datasourceCreate(
datasourceStorage.getDatasourceConfiguration(), featureFlagMap)
.cache());
.flatMap(featureFlagMap -> pluginExecutor.datasourceCreate(
datasourceStorage.getDatasourceConfiguration(), featureFlagMap))
.cache();

Mono<DatasourceContext<Object>> datasourceContextMonoCache = connectionMonoCache
.flatMap(connection ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import static org.assertj.core.api.Assertions.assertThat;
Expand Down Expand Up @@ -118,6 +119,9 @@ public class DatasourceContextServiceTest {
@Autowired
ApplicationPermission applicationPermission;

@MockBean
FeatureFlagService featureFlagService;

String defaultEnvironmentId;

String workspaceId;
Expand All @@ -127,6 +131,7 @@ public void setup() {
User apiUser = userService.findByEmail("api_user").block();
Workspace toCreate = new Workspace();
toCreate.setName("DatasourceServiceTest");
Mockito.doReturn(Mono.just(Map.of())).when(featureFlagService).getAllFeatureFlagsForUser();

Workspace workspace =
workspaceService.create(toCreate, apiUser, Boolean.FALSE).block();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import static com.appsmith.server.acl.AclPermission.DELETE_DATASOURCES;
Expand All @@ -73,6 +74,7 @@
import static com.appsmith.server.constants.FieldName.DEVELOPER;
import static com.appsmith.server.constants.FieldName.VIEWER;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.doReturn;

@SpringBootTest
@Slf4j
Expand Down Expand Up @@ -124,6 +126,9 @@ public class DatasourceServiceTest {
@Autowired
ApplicationPermission applicationPermission;

@SpyBean
FeatureFlagService featureFlagService;

String workspaceId = "";
private String defaultEnvironmentId;

Expand All @@ -139,6 +144,7 @@ public void setup() {
defaultEnvironmentId = workspaceService
.getDefaultEnvironmentId(workspaceId, environmentPermission.getExecutePermission())
.block();
doReturn(Mono.just(Map.of())).when(featureFlagService).getAllFeatureFlagsForUser();
}

@AfterEach
Expand Down Expand Up @@ -1990,7 +1996,7 @@ public void verifyTestDatasourceWithSavedDatasourceButNoDatasourceStorageSucceed
.thenReturn(Mono.just(new MockPluginExecutor()));
DatasourceStorage datasourceStorage =
datasourceStorageService.createDatasourceStorageFromDatasourceStorageDTO(datasourceStorageDTO);
Mockito.doReturn(Mono.just(datasourceStorage))
doReturn(Mono.just(datasourceStorage))
.when(datasourceStorageService)
.create(Mockito.any(), Mockito.anyBoolean());
Datasource dbDatasource = datasourceService.create(datasource).block();
Expand Down Expand Up @@ -2055,9 +2061,7 @@ public void verifyTestDatasource_withRateLimitExceeded_returnsTooManyRequests()

Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any()))
.thenReturn(Mono.just(new MockPluginExecutor()));
Mockito.doReturn(Mono.just(true))
.when(spyDatasourceService)
.isEndpointBlockedForConnectionRequest(Mockito.any());
doReturn(Mono.just(true)).when(spyDatasourceService).isEndpointBlockedForConnectionRequest(Mockito.any());
Mono<DatasourceTestResult> testResultMono =
spyDatasourceService.testDatasource(datasourceStorageDTO, defaultEnvironmentId);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ public void setup() {
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any()))
.thenReturn(Mono.just(new MockPluginExecutor()));
Mockito.doReturn(Mono.just(Boolean.TRUE)).when(featureFlagService).check(Mockito.any());
Mockito.doReturn(Mono.just(Map.of())).when(featureFlagService).getAllFeatureFlagsForUser();
Workspace workspace = new Workspace();
workspace.setName("Datasource Trigger Test Workspace");
Workspace savedWorkspace = workspaceService.create(workspace).block();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ private Mono<ActionExecutionResult> executeAction(
.thenReturn(Mono.just(mockResult));
Mockito.when(pluginExecutor.executeParameterizedWithMetricsAndFlags(any(), any(), any(), any(), any(), any()))
.thenReturn(Mono.just(mockResult));
Mockito.when(pluginExecutor.datasourceCreate(any())).thenReturn(Mono.empty());
pluginExecutor = this.mockDatasourceCreate(pluginExecutor);
Mockito.doReturn(Mono.just(false))
.when(spyDatasourceService)
.isEndpointBlockedForConnectionRequest(Mockito.any());
Expand All @@ -343,6 +343,15 @@ private Mono<ActionExecutionResult> executeAction(
return actionExecutionResultMono;
}

private PluginExecutor mockDatasourceCreate(PluginExecutor pluginExecutor) {
Mockito.when(pluginExecutor.datasourceCreate(any())).thenReturn(Mono.empty());

// This method has been recently added to support feature flagging for datasource creation
// second param to datasourceCreate method is the feature flags map
Mockito.when(pluginExecutor.datasourceCreate(any(), any())).thenReturn(Mono.empty());
return pluginExecutor;
}

@Test
@WithUserDetails(value = "api_user")
public void testVariableSubstitution() {
Expand Down Expand Up @@ -531,7 +540,7 @@ public void testActionExecuteErrorResponse() {
.thenReturn(Mono.error(pluginException));
Mockito.when(pluginExecutor.executeParameterizedWithMetricsAndFlags(any(), any(), any(), any(), any(), any()))
.thenReturn(Mono.error(pluginException));
Mockito.when(pluginExecutor.datasourceCreate(any())).thenReturn(Mono.empty());
pluginExecutor = this.mockDatasourceCreate(pluginExecutor);
Mockito.doReturn(Mono.just(false))
.when(spyDatasourceService)
.isEndpointBlockedForConnectionRequest(Mockito.any());
Expand Down Expand Up @@ -590,7 +599,7 @@ public void testActionExecuteNullPaginationParameters() {
.thenReturn(Mono.error(pluginException));
Mockito.when(pluginExecutor.executeParameterizedWithMetricsAndFlags(any(), any(), any(), any(), any(), any()))
.thenReturn(Mono.error(pluginException));
Mockito.when(pluginExecutor.datasourceCreate(any())).thenReturn(Mono.empty());
pluginExecutor = this.mockDatasourceCreate(pluginExecutor);
Mockito.doReturn(Mono.just(false))
.when(spyDatasourceService)
.isEndpointBlockedForConnectionRequest(Mockito.any());
Expand Down Expand Up @@ -644,7 +653,7 @@ public void testActionExecuteSecondaryStaleConnection() {
Mockito.when(pluginExecutor.executeParameterizedWithMetricsAndFlags(any(), any(), any(), any(), any(), any()))
.thenReturn(Mono.error(new StaleConnectionException()))
.thenReturn(Mono.error(new StaleConnectionException()));
Mockito.when(pluginExecutor.datasourceCreate(any())).thenReturn(Mono.empty());
pluginExecutor = this.mockDatasourceCreate(pluginExecutor);
Mockito.doReturn(Mono.just(false))
.when(spyDatasourceService)
.isEndpointBlockedForConnectionRequest(Mockito.any());
Expand Down Expand Up @@ -697,7 +706,7 @@ public void testActionExecuteTimeout() {
.thenAnswer(x -> Mono.delay(Duration.ofMillis(1000)).ofType(ActionExecutionResult.class));
Mockito.when(pluginExecutor.executeParameterizedWithMetricsAndFlags(any(), any(), any(), any(), any(), any()))
.thenAnswer(x -> Mono.delay(Duration.ofMillis(1000)).ofType(ActionExecutionResult.class));
Mockito.when(pluginExecutor.datasourceCreate(any())).thenReturn(Mono.empty());
pluginExecutor = this.mockDatasourceCreate(pluginExecutor);
Mockito.doReturn(Mono.just(false))
.when(spyDatasourceService)
.isEndpointBlockedForConnectionRequest(Mockito.any());
Expand Down Expand Up @@ -732,7 +741,7 @@ public void checkRecoveryFromStaleConnections() {
Mockito.when(pluginExecutor.executeParameterizedWithMetricsAndFlags(any(), any(), any(), any(), any(), any()))
.thenThrow(new StaleConnectionException())
.thenReturn(Mono.just(mockResult));
Mockito.when(pluginExecutor.datasourceCreate(any())).thenReturn(Mono.empty());
pluginExecutor = this.mockDatasourceCreate(pluginExecutor);
Mockito.when(pluginExecutor.getHintMessages(any(), any()))
.thenReturn(Mono.zip(Mono.just(new HashSet<>()), Mono.just(new HashSet<>())));
Mockito.doReturn(Mono.just(false))
Expand Down

0 comments on commit 505ba4d

Please sign in to comment.