forked from github/CopilotForXcode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExtractSelectedCodeTests.swift
More file actions
56 lines (51 loc) · 1.99 KB
/
ExtractSelectedCodeTests.swift
File metadata and controls
56 lines (51 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import SuggestionBasic
import XCTest
@testable import Service
@testable import XPCShared
class ExtractSelectedCodeTests: XCTestCase {
func test_empty_selection() {
let selection = EditorContent.Selection(
start: CursorPosition(line: 0, character: 0),
end: CursorPosition(line: 0, character: 0)
)
let lines = ["let foo = 1\n", "let bar = 2\n"]
let result = selectedCode(in: selection, for: lines)
XCTAssertEqual(result, "")
}
func test_single_line_selection() {
let selection = EditorContent.Selection(
start: CursorPosition(line: 0, character: 4),
end: CursorPosition(line: 0, character: 10)
)
let lines = ["let foo = 1\n", "let bar = 2\n"]
let result = selectedCode(in: selection, for: lines)
XCTAssertEqual(result, "foo = ")
}
func test_single_line_selection_at_line_end() {
let selection = EditorContent.Selection(
start: CursorPosition(line: 0, character: 8),
end: CursorPosition(line: 0, character: 11)
)
let lines = ["let foo = 1\n", "let bar = 2\n"]
let result = selectedCode(in: selection, for: lines)
XCTAssertEqual(result, "= 1")
}
func test_multi_line_selection() {
let selection = EditorContent.Selection(
start: CursorPosition(line: 0, character: 4),
end: CursorPosition(line: 1, character: 11)
)
let lines = ["let foo = 1\n", "let bar = 2\n", "let baz = 3\n"]
let result = selectedCode(in: selection, for: lines)
XCTAssertEqual(result, "foo = 1\nlet bar = 2")
}
func test_invalid_selection() {
let selection = EditorContent.Selection(
start: CursorPosition(line: 1, character: 4),
end: CursorPosition(line: 0, character: 10)
)
let lines = ["let foo = 1", "let bar = 2"]
let result = selectedCode(in: selection, for: lines)
XCTAssertEqual(result, "")
}
}