Skip to content

Instantly share code, notes, and snippets.

View dougritter's full-sized avatar

Douglas Ritter dougritter

View GitHub Profile

Keybase proof

I hereby claim:

  • I am dougritter on github.
  • I am dougritter (https://keybase.io/dougritter) on keybase.
  • I have a public key ASBejOIP40xwqNyElvH72X2Z42049RvqRP2FAPK2FD7gfgo

To claim this, I am signing this object:

@dougritter
dougritter / NoteController.swift
Created July 19, 2019 15:50
Vapor Fluent - multiple insertions in PostgreSQL from a request
final class NoteController {
// NotesRequest is a struct that represents the request body
// It contains a function that returns a [Note] array.
// The line 9 creates a Note for each item in the array
func create(_ req: Request) throws -> Future<HTTPStatus> {
return try req.content.decode(NotesRequest.self).flatMap { notesRequest in
return NotesRequest.toNotes(notesRequest: notesRequest)
.map { item in Note(id: nil,
text: item.text,
func test_given_a_lowercase_named_account_when_is_valid_checked_then_return_true() {
let account = Account(name: "talkdesk")
let result = account.isValid
XCTAssertEqual(result, true)
}
protocol AccountPresenter {
func nextPressed(accountName: String)
}
class AccountPresenterImplementation: AccountPresenterImplementation {
func nextPressed(accountName: String) {
}
}
@dougritter
dougritter / AccountPresenterImplementation.swift
Last active September 5, 2019 22:41
Empty implementation of the AccountPresenter
class AccountPresenterImplementation: AccountPresenter {
func nextPressed(accountName: String) {
}
}
class AccountPresenterTests: XCTestCase {
func test_given_and_account_name_when_next_is_pressed_then_should_navigate_to_home() {
let presenter = AccountPresenterImplementation()
presenter.nextPressed(accountName: "talkdesk")
XCTAssertEqual(/* navigated to home */, true)
}
}
@dougritter
dougritter / AccountPresenterImplementation.swift
Created September 5, 2019 22:43
AccountPresenter with router
class AccountPresenterImplementation: AccountPresenter {
private let router: Router
init(router: Router) {
self.router = router
}
func nextPressed(accountName: String) {
}
}
@dougritter
dougritter / RouterMock.swift
Last active September 11, 2019 17:21
Router Mock implementation
protocol Router {
func showHomeScreen()
}
class RouterMock: Router {
var showHomeWasCalled: Bool?
func showHomeScreen() {
showHomeWasCalled = true
}
@dougritter
dougritter / AccountPresenterTests.swift
Last active September 11, 2019 17:22
AccountPresenter tests with router.
class AccountPresenterTests: XCTestCase {
func test_given_and_account_name_when_next_is_pressed_then_should_navigate_to_home() {
let routerMock = RouterMock()
let presenter = AccountPresenterImplementation(router: routerMock)
presenter.nextPressed(accountName: "talkdesk")
XCTAssertEqual(routerMock.showHomeCalled, true)
}
}