Skip to content

Commit 0ef5c29

Browse files
committed
adding duplicate modifier test
1 parent 5aeec12 commit 0ef5c29

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

SwiftDraw/CommandLine.Arguments.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ extension CommandLine {
5050
var args = args
5151
var modifiers = [Modifier: String]()
5252
while let pair = args.takePair() {
53-
if let modifier = Modifier.parse(from: pair.0) {
53+
if let modifier = Modifier.parse(from: pair.0), modifiers.keys.contains(modifier) == false {
5454
modifiers[modifier] = pair.1
5555
} else {
5656
throw Error.invalid

SwiftDrawTests/CommandLine.ArgumentsTests.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ final class CommandLineArgumentsTests: XCTestCase {
4444
XCTAssertThrowsError(try CommandLine.parseModifiers(from: ["--format", "png", "--output"]))
4545
}
4646

47+
func testParseModifiersThrowsForDuplicateModifiers() {
48+
XCTAssertThrowsError(try CommandLine.parseModifiers(from: ["--format", "png", "--format", "jpg"]))
49+
XCTAssertThrowsError(try CommandLine.parseModifiers(from: ["--format", "png", "--output", "more", "--output", "evenmore"]))
50+
}
51+
4752
func testParseModifiersThrowsForUnknownModifiers() {
4853
XCTAssertThrowsError(try CommandLine.parseModifiers(from: ["--unknown", "png"]))
4954
XCTAssertThrowsError(try CommandLine.parseModifiers(from: ["--format", "png", "--unknown", "more"]))

0 commit comments

Comments
 (0)