diff --git a/app/server/appsmith-plugins/appsmithAiPlugin/src/main/java/com/external/plugins/utils/FileUtils.java b/app/server/appsmith-plugins/appsmithAiPlugin/src/main/java/com/external/plugins/utils/FileUtils.java index 9f224b4dee..27acf3d3bc 100644 --- a/app/server/appsmith-plugins/appsmithAiPlugin/src/main/java/com/external/plugins/utils/FileUtils.java +++ b/app/server/appsmith-plugins/appsmithAiPlugin/src/main/java/com/external/plugins/utils/FileUtils.java @@ -19,7 +19,8 @@ public class FileUtils { } public static List getFileIds(DatasourceConfiguration datasourceConfiguration) { - if (datasourceConfiguration.getProperties() != null + if (datasourceConfiguration != null + && datasourceConfiguration.getProperties() != null && datasourceConfiguration.getProperties().size() > 0) { for (Property property : datasourceConfiguration.getProperties()) { if (property.getKey().equalsIgnoreCase(FILES) diff --git a/app/server/appsmith-plugins/appsmithAiPlugin/src/test/java/com/external/plugins/services/FileUtilTest.java b/app/server/appsmith-plugins/appsmithAiPlugin/src/test/java/com/external/plugins/services/FileUtilTest.java new file mode 100644 index 0000000000..c242428d61 --- /dev/null +++ b/app/server/appsmith-plugins/appsmithAiPlugin/src/test/java/com/external/plugins/services/FileUtilTest.java @@ -0,0 +1,44 @@ +package com.external.plugins.services; + +import com.appsmith.external.models.DatasourceConfiguration; +import com.appsmith.external.models.Property; +import com.external.plugins.utils.FileUtils; +import org.junit.jupiter.api.Test; +import org.testcontainers.junit.jupiter.Testcontainers; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; + +@Testcontainers +public class FileUtilTest { + @Test + public void getFileIds_withNullDatasourceConfig_returnsEmptyList() { + DatasourceConfiguration datasourceConfiguration = null; + List actualFileIds = FileUtils.getFileIds(datasourceConfiguration); + assertThat(actualFileIds).isEmpty(); + } + + @Test + public void getFileIds_withValidDatasourceConfig_returnsFileIdList() { + DatasourceConfiguration datasourceConfiguration = new DatasourceConfiguration(); + datasourceConfiguration.setUrl("https://example.com"); + + // create file object + Map fileMap = new HashMap(); + fileMap.put("id", "fileId"); + fileMap.put("name", "fileName"); + fileMap.put("size", 10); + fileMap.put("mimetype", "fileMimetype"); + + Property property = new Property(); + property.setKey("Files"); + property.setValue(List.of(fileMap)); + + datasourceConfiguration.setProperties(List.of(property)); + List actualFileIds = FileUtils.getFileIds(datasourceConfiguration); + assertThat(actualFileIds).contains("fileId"); + } +}