diff --git a/PainlessInjection/PainlessInjection/ArgumentList.swift b/PainlessInjection/PainlessInjection/ArgumentList.swift index 761cde8..9f4171a 100644 --- a/PainlessInjection/PainlessInjection/ArgumentList.swift +++ b/PainlessInjection/PainlessInjection/ArgumentList.swift @@ -19,7 +19,7 @@ public struct ArgumentList { FatalErrorNotifier.currentNotifier.notify("Expected \(T.self) parameter at index \(index) but got nothing: file \(file), line \(line)") return nil } - if let value = _args[0] as? T { + if let value = _args[index] as? T { return value } FatalErrorNotifier.currentNotifier.notify("Expected \(T.self) parameter at index \(index) but got \(_args[0].dynamicType): file \(file), line \(line)") diff --git a/PainlessInjection/PainlessInjectionTests/ArgumentListTests.swift b/PainlessInjection/PainlessInjectionTests/ArgumentListTests.swift index f5639bb..b327c68 100644 --- a/PainlessInjection/PainlessInjectionTests/ArgumentListTests.swift +++ b/PainlessInjection/PainlessInjectionTests/ArgumentListTests.swift @@ -43,7 +43,18 @@ class ArgumentListTests: XCTestCase { let line = #line - 2 notifier.assertLastMessage("Expected NSDictionary parameter at index 0 but got nothing: file \(file), line \(line)") - + } + + func testShouldUseMultipleParams() { + let list = ArgumentList(args: ["Hello", 12]) + + let text: String = list.at(0) + let number: Int = list.at(1) + + XCTAssertEqual(text, "Hello") + XCTAssertEqual(number, 12) + notifier.assertNotErrors() + } } diff --git a/PainlessInjection/PainlessInjectionTests/Fixtures.swift b/PainlessInjection/PainlessInjectionTests/Fixtures.swift index 92b1d97..8412b73 100644 --- a/PainlessInjection/PainlessInjectionTests/Fixtures.swift +++ b/PainlessInjection/PainlessInjectionTests/Fixtures.swift @@ -44,6 +44,10 @@ class TestFatalErrorNotifier: FatalErrorNotifierProtocol { lastMessage = message } + func assertNotErrors(file: StaticString = #file, line: UInt = #line) { + XCTAssertNil(lastMessage, "Should not raise any errors") + } + func assertLastMessage(message: String, file: StaticString = #file, line: UInt = #line) { XCTAssertEqual(lastMessage!, message, file: file, line: line) }