feat: add get_test_methods API to get a list of methods in curren class by s1n7ax · Pull Request #25 · nvim-java/nvim-java-core · GitHub
Skip to content
This repository was archived by the owner on Nov 30, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions lua/java-core/adapters/init.lua
27 changes: 22 additions & 5 deletions lua/java-core/api/test.lua
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ local JavaDebug = require('java-core.ls.clients.java-debug-client')
local JavaTest = require('java-core.ls.clients.java-test-client')

---@class JavaCoreTestApi
---@field private client JavaCoreJdtlsClient
---@field private client java_core.JdtlsClient
---@field private debug_client JavaCoreDebugClient
---@field private test_client JavaCoreTestClient
---@field private test_client java_core.TestClient
---@field private runner JavaCoreDapRunner
local M = {}

Expand Down Expand Up @@ -39,6 +39,24 @@ function M:new(args)
return o
end

---Returns a list of test methods
---@param file_uri string uri of the class
---@return java_core.TestDetailsWithRange[] # list of test methods
function M:get_test_methods(file_uri)
local classes = self.test_client:find_test_types_and_methods(file_uri)
local methods = {}

for _, class in ipairs(classes) do
for _, method in ipairs(class.children) do
---@diagnostic disable-next-line: inject-field
method.class = class
table.insert(methods, method)
end
end

return methods
end

---Runs the test class in the given buffer
---@param buffer integer
---@param config JavaCoreDapLauncherConfigOverridable
Expand All @@ -50,7 +68,7 @@ end
---Returns test classes in the given buffer
---@priate
---@param buffer integer
---@return JavaCoreTestDetailsWithChildrenAndRange # get test class details
---@return java_core.TestDetailsWithChildrenAndRange # get test class details
function M:get_test_class_by_buffer(buffer)
log.debug('finding test class by buffer')

Expand All @@ -59,8 +77,7 @@ function M:get_test_class_by_buffer(buffer)
end

---Run the given test
---@private
---@param tests JavaCoreTestDetails[]
---@param tests java_core.TestDetails[]
---@param config? JavaCoreDapLauncherConfigOverridable config to override the default values in test launcher config
function M:run_test(tests, config)
---@type JavaCoreTestJunitLaunchArguments
Expand Down
2 changes: 1 addition & 1 deletion lua/java-core/ls/clients/java-debug-client.lua
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
local JdtlsClient = require('java-core.ls.clients.jdtls-client')

---@class JavaCoreDebugClient: JavaCoreJdtlsClient
---@class JavaCoreDebugClient: java_core.JdtlsClient
local M = JdtlsClient:new()

---@class JavaDebugResolveMainClassRecord
Expand Down
34 changes: 17 additions & 17 deletions lua/java-core/ls/clients/java-test-client.lua
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
local log = require('java-core.utils.log')
local JdtlsClient = require('java-core.ls.clients.jdtls-client')

---@class JavaCoreTestDetails: Configuration
---@class java_core.TestDetails: Configuration
---@field fullName string
---@field id string
---@field jdtHandler string
Expand All @@ -11,29 +11,29 @@ local JdtlsClient = require('java-core.ls.clients.jdtls-client')
---@field testLevel integer
---@field uri string

---@class JavaCoreTestDetailsWithRange: JavaCoreTestDetails
---@field range Range
---@class java_core.TestDetailsWithRange: java_core.TestDetails
---@field range java_core.TestRange

---@class JavaCoreTestDetailsWithChildren: JavaCoreTestDetails
---@field children JavaCoreTestDetailsWithRange[]
---@class java_core.TestDetailsWithChildren: java_core.TestDetails
---@field children java_core.TestDetailsWithRange[]

---@class JavaCoreTestDetailsWithChildrenAndRange: JavaCoreTestDetails
---@field range Range
---@field children JavaCoreTestDetailsWithRange[]
---@class java_core.TestDetailsWithChildrenAndRange: java_core.TestDetails
---@field range java_core.TestRange
---@field children java_core.TestDetailsWithRange[]

---@class Range
---@class java_core.TestRange
---@field start CursorPoint
---@field end CursorPoint

---@class CursorPoint
---@field line integer
---@field character integer

---@class JavaCoreTestClient: JavaCoreJdtlsClient
---@class java_core.TestClient: java_core.JdtlsClient
local M = JdtlsClient:new()

---Returns a list of project details in the current root
---@return JavaCoreTestDetails[] # test details of the projects
---@return java_core.TestDetails[] # test details of the projects
function M:find_java_projects()
return self:execute_command(
'vscode.java.test.findJavaProjects',
Expand All @@ -44,7 +44,7 @@ end
---Returns a list of test package details
---@param handler string
---@param token? string
---@return JavaCoreTestDetailsWithChildren[] # test package details
---@return java_core.TestDetailsWithChildren[] # test package details
function M:find_test_packages_and_types(handler, token)
return self:execute_command(
'vscode.java.test.findTestPackagesAndTypes',
Expand All @@ -55,7 +55,7 @@ end
---Returns test informations in a given file
---@param file_uri string
---@param token? string
---@return JavaCoreTestDetailsWithChildrenAndRange[] # test details
---@return java_core.TestDetailsWithChildrenAndRange[] # test details
function M:find_test_types_and_methods(file_uri, token)
return self:execute_command(
'vscode.java.test.findTestTypesAndMethods',
Expand All @@ -75,8 +75,8 @@ end
---@class JavaCoreTestResolveJUnitLaunchArgumentsParams
---@field project_name string
---@field test_names string[]
---@field test_level JavaCoreTestLevel
---@field test_kind JavaCoreTestKind
---@field test_level java_core.TestLevel
---@field test_kind java_core.TestKind

---Returns junit launch arguments
---@param args JavaCoreTestResolveJUnitLaunchArgumentsParams
Expand All @@ -97,15 +97,15 @@ function M:resolve_junit_launch_arguments(args)
return launch_args.body
end

---@enum JavaCoreTestKind
---@enum java_core.TestKind
M.TestKind = {
JUnit5 = 0,
JUnit = 1,
TestNG = 2,
None = 100,
}

---@enum JavaCoreTestLevel
---@enum java_core.TestLevel
M.TestLevel = {
Root = 0,
Workspace = 1,
Expand Down
4 changes: 2 additions & 2 deletions lua/java-core/ls/clients/jdtls-client.lua