Fixed the broken test cases.

This commit is contained in:
Trisha Anand 2020-06-12 19:35:01 +05:30
parent bb6dc61015
commit 9dfb72720e
5 changed files with 88 additions and 57 deletions

View File

@ -1,11 +1,5 @@
package com.appsmith.server;
import com.appsmith.server.services.ActionServiceTest;
import com.appsmith.server.services.ApplicationServiceTest;
import com.appsmith.server.services.LayoutServiceTest;
import com.appsmith.server.services.OrganizationServiceTest;
import com.appsmith.server.services.PageServiceTest;
import com.appsmith.server.services.UserServiceTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@ -13,14 +7,7 @@ import org.springframework.boot.test.context.SpringBootTest;
@RunWith(Suite.class)
@SpringBootTest
@Suite.SuiteClasses({
OrganizationServiceTest.class,
ApplicationServiceTest.class,
LayoutServiceTest.class,
UserServiceTest.class,
PageServiceTest.class,
ActionServiceTest.class
})
@Suite.SuiteClasses({})
public class ServerApplicationTests {
@Test

View File

@ -0,0 +1,43 @@
package com.appsmith.server.helpers;
import com.appsmith.external.models.ActionConfiguration;
import com.appsmith.external.models.DatasourceConfiguration;
import com.appsmith.external.models.DatasourceTestResult;
import com.appsmith.external.plugins.PluginExecutor;
import reactor.core.publisher.Mono;
import java.util.HashSet;
import java.util.Set;
public class MockPluginExecutor implements PluginExecutor {
@Override
public Mono<Object> execute(Object connection, DatasourceConfiguration datasourceConfiguration, ActionConfiguration actionConfiguration) {
System.out.println("In the execute");
return null;
}
@Override
public Mono<Object> datasourceCreate(DatasourceConfiguration datasourceConfiguration) {
System.out.println("In the datasourceCreate");
return Mono.empty();
}
@Override
public void datasourceDestroy(Object connection) {
System.out.println("In the datasourceDestroy");
}
@Override
public Set<String> validateDatasource(DatasourceConfiguration datasourceConfiguration) {
System.out.println("In the datasourceValidate");
return new HashSet<>();
}
@Override
public Mono<DatasourceTestResult> testDatasource(DatasourceConfiguration datasourceConfiguration) {
return Mono.just(new DatasourceTestResult());
}
}

View File

@ -19,6 +19,7 @@ import com.appsmith.server.domains.User;
import com.appsmith.server.dtos.ExecuteActionDTO;
import com.appsmith.server.exceptions.AppsmithError;
import com.appsmith.server.exceptions.AppsmithException;
import com.appsmith.server.helpers.MockPluginExecutor;
import com.appsmith.server.helpers.PluginExecutorHelper;
import com.appsmith.server.repositories.OrganizationRepository;
import com.appsmith.server.repositories.PluginRepository;
@ -131,7 +132,7 @@ public class ActionServiceTest {
@Test
@WithUserDetails(value = "api_user")
public void createValidActionAndCheckPermissions() {
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new DatasourceServiceTest.TestPluginExecutor()));
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new MockPluginExecutor()));
Policy manageActionPolicy = Policy.builder().permission(MANAGE_ACTIONS.getValue())
.users(Set.of("api_user"))
@ -164,7 +165,7 @@ public class ActionServiceTest {
@Test
@WithUserDetails(value = "api_user")
public void createValidActionWithJustName() {
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new DatasourceServiceTest.TestPluginExecutor()));
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new MockPluginExecutor()));
Action action = new Action();
action.setName("randomActionName");
@ -188,7 +189,7 @@ public class ActionServiceTest {
@Test
@WithUserDetails(value = "api_user")
public void createValidActionNullActionConfiguration() {
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new DatasourceServiceTest.TestPluginExecutor()));
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new MockPluginExecutor()));
Action action = new Action();
action.setName("randomActionName2");

View File

@ -1,13 +1,11 @@
package com.appsmith.server.services;
import com.appsmith.external.models.ActionConfiguration;
import com.appsmith.external.models.Connection;
import com.appsmith.external.models.DatasourceConfiguration;
import com.appsmith.external.models.DatasourceTestResult;
import com.appsmith.external.models.Policy;
import com.appsmith.external.models.SSLDetails;
import com.appsmith.external.models.UploadedFile;
import com.appsmith.external.plugins.PluginExecutor;
import com.appsmith.server.acl.AclPermission;
import com.appsmith.server.constants.FieldName;
import com.appsmith.server.domains.Datasource;
@ -15,6 +13,7 @@ import com.appsmith.server.domains.Organization;
import com.appsmith.server.domains.Plugin;
import com.appsmith.server.exceptions.AppsmithError;
import com.appsmith.server.exceptions.AppsmithException;
import com.appsmith.server.helpers.MockPluginExecutor;
import com.appsmith.server.helpers.PluginExecutorHelper;
import com.appsmith.server.repositories.OrganizationRepository;
import lombok.extern.slf4j.Slf4j;
@ -32,7 +31,6 @@ import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
import reactor.util.function.Tuple2;
import java.util.HashSet;
import java.util.Set;
import static com.appsmith.server.acl.AclPermission.EXECUTE_DATASOURCES;
@ -58,38 +56,6 @@ public class DatasourceServiceTest {
@MockBean
PluginExecutorHelper pluginExecutorHelper;
static class TestPluginExecutor implements PluginExecutor {
@Override
public Mono<Object> execute(Object connection, DatasourceConfiguration datasourceConfiguration, ActionConfiguration actionConfiguration) {
System.out.println("In the execute");
return null;
}
@Override
public Mono<Object> datasourceCreate(DatasourceConfiguration datasourceConfiguration) {
System.out.println("In the datasourceCreate");
return Mono.empty();
}
@Override
public void datasourceDestroy(Object connection) {
System.out.println("In the datasourceDestroy");
}
@Override
public Set<String> validateDatasource(DatasourceConfiguration datasourceConfiguration) {
System.out.println("In the datasourceValidate");
return new HashSet<>();
}
@Override
public Mono<DatasourceTestResult> testDatasource(DatasourceConfiguration datasourceConfiguration) {
return Mono.just(new DatasourceTestResult());
}
}
String orgId = "";
@Before
@ -136,7 +102,7 @@ public class DatasourceServiceTest {
@Test
@WithUserDetails(value = "api_user")
public void createDatasourceNotInstalledPlugin() {
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new TestPluginExecutor()));
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new MockPluginExecutor()));
Mono<Plugin> pluginMono = pluginService.findByName("Not Installed Plugin Name");
Datasource datasource = new Datasource();
@ -167,7 +133,7 @@ public class DatasourceServiceTest {
@WithUserDetails(value = "api_user")
public void createDatasourceValid() {
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new TestPluginExecutor()));
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new MockPluginExecutor()));
Mono<Plugin> pluginMono = pluginService.findByName("Installed Plugin Name");
Datasource datasource = new Datasource();
@ -206,7 +172,7 @@ public class DatasourceServiceTest {
@Test
@WithUserDetails(value = "api_user")
public void createAndUpdateDatasourceValidDB() {
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new TestPluginExecutor()));
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new MockPluginExecutor()));
Datasource datasource = new Datasource();
datasource.setName("test db datasource");
@ -258,7 +224,7 @@ public class DatasourceServiceTest {
@Test
@WithUserDetails(value = "api_user")
public void createNamelessDatasource() {
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new TestPluginExecutor()));
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new MockPluginExecutor()));
Mono<Plugin> pluginMono = pluginService.findByName("Installed Plugin Name");
@ -314,7 +280,7 @@ public class DatasourceServiceTest {
return datasource;
}).flatMap(datasourceService::create);
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new TestPluginExecutor()));
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new MockPluginExecutor()));
Mono<DatasourceTestResult> testResultMono = datasourceMono.flatMap(datasource1 -> datasourceService.testDatasource(datasource1));

View File

@ -1,23 +1,31 @@
package com.appsmith.server.services;
import com.appsmith.external.models.ActionConfiguration;
import com.appsmith.external.plugins.PluginExecutor;
import com.appsmith.server.constants.FieldName;
import com.appsmith.server.domains.Action;
import com.appsmith.server.domains.Application;
import com.appsmith.server.domains.Datasource;
import com.appsmith.server.domains.Layout;
import com.appsmith.server.domains.Page;
import com.appsmith.server.domains.Plugin;
import com.appsmith.server.domains.User;
import com.appsmith.server.dtos.DslActionDTO;
import com.appsmith.server.exceptions.AppsmithError;
import com.appsmith.server.exceptions.AppsmithException;
import com.appsmith.server.helpers.MockPluginExecutor;
import com.appsmith.server.helpers.PluginExecutorHelper;
import com.appsmith.server.repositories.PluginRepository;
import lombok.extern.slf4j.Slf4j;
import net.minidev.json.JSONObject;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.HttpMethod;
import org.springframework.security.test.context.support.WithUserDetails;
import org.springframework.test.annotation.DirtiesContext;
@ -62,16 +70,34 @@ public class LayoutServiceTest {
@Autowired
ActionService actionService;
@Autowired
PluginRepository pluginRepository;
@MockBean
PluginExecutorHelper pluginExecutorHelper;
@MockBean
PluginExecutor pluginExecutor;
Mono<Layout> layoutMono;
String orgId;
Datasource datasource;
@Before
@WithUserDetails(value = "api_user")
public void setup() {
purgeAllPages();
User apiUser = userService.findByEmail("api_user").block();
orgId = apiUser.getOrganizationIds().iterator().next();
datasource = new Datasource();
datasource.setName("Default Database");
datasource.setOrganizationId(orgId);
Plugin installed_plugin = pluginRepository.findByPackageName("installed-plugin").block();
datasource.setPluginId(installed_plugin.getId());
}
private void purgeAllPages() {
@ -235,6 +261,8 @@ public class LayoutServiceTest {
@Test
@WithUserDetails(value = "api_user")
public void getActionsExecuteOnLoad() {
Mockito.when(pluginExecutorHelper.getPluginExecutor(Mockito.any())).thenReturn(Mono.just(new MockPluginExecutor()));
Mono<Layout> testMono = pageService
.findByName("validPageName")
.flatMap(page1 -> {
@ -245,6 +273,7 @@ public class LayoutServiceTest {
action.setActionConfiguration(new ActionConfiguration());
action.getActionConfiguration().setHttpMethod(HttpMethod.GET);
action.setPageId(page1.getId());
action.setDatasource(datasource);
monos.add(actionService.create(action));
action = new Action();
@ -252,6 +281,7 @@ public class LayoutServiceTest {
action.setActionConfiguration(new ActionConfiguration());
action.getActionConfiguration().setHttpMethod(HttpMethod.POST);
action.setPageId(page1.getId());
action.setDatasource(datasource);
monos.add(actionService.create(action));
action = new Action();
@ -263,6 +293,7 @@ public class LayoutServiceTest {
action.setJsonPathKeys(Set.of("aPostSecondaryAction.data", "aPostTertiaryAction.data"));
action.setPageId(page1.getId());
action.setExecuteOnLoad(true);
action.setDatasource(datasource);
monos.add(actionService.create(action));
action = new Action();
@ -270,6 +301,7 @@ public class LayoutServiceTest {
action.setActionConfiguration(new ActionConfiguration());
action.getActionConfiguration().setHttpMethod(HttpMethod.POST);
action.setPageId(page1.getId());
action.setDatasource(datasource);
monos.add(actionService.create(action));
action = new Action();
@ -278,6 +310,7 @@ public class LayoutServiceTest {
action.getActionConfiguration().setHttpMethod(HttpMethod.POST);
action.setPageId(page1.getId());
action.setExecuteOnLoad(true);
action.setDatasource(datasource);
monos.add(actionService.create(action));
action = new Action();
@ -285,6 +318,7 @@ public class LayoutServiceTest {
action.setActionConfiguration(new ActionConfiguration());
action.getActionConfiguration().setHttpMethod(HttpMethod.DELETE);
action.setPageId(page1.getId());
action.setDatasource(datasource);
monos.add(actionService.create(action));
return Mono.zip(monos, objects -> page1);