Skip to content

Commit

Permalink
Improve action tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ZekeSnider committed Aug 7, 2020
1 parent 0c82488 commit 5e9550d
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 44 deletions.
16 changes: 12 additions & 4 deletions Jared.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@
B347A4A624DD0CE500E93657 /* MessageSender.swift in Sources */ = {isa = PBXBuildFile; fileRef = B347A4A324DD0B7400E93657 /* MessageSender.swift */; };
B347A4A724DD0FCF00E93657 /* Jared.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3EF1DA92206E09B00953DE7 /* Jared.swift */; };
B347A4A924DD119A00E93657 /* JaredMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = B347A4A824DD119A00E93657 /* JaredMock.swift */; };
B347A4AB24DD165200E93657 /* ActionType.swift in Sources */ = {isa = PBXBuildFile; fileRef = B347A4AA24DD165200E93657 /* ActionType.swift */; };
B347A4AD24DD170C00E93657 /* ActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B347A4AC24DD170C00E93657 /* ActionTest.swift */; };
B35CE7152196AD4E002F52A7 /* DatabaseHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = B35CE7142196AD4E002F52A7 /* DatabaseHandler.swift */; };
B361EEBB1F1DE24C0041113C /* config.json in Resources */ = {isa = PBXBuildFile; fileRef = B361EEBA1F1DE24C0041113C /* config.json */; };
B36563EF1F3D68980064B114 /* TouchBarTextFieldExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B36563EE1F3D68980064B114 /* TouchBarTextFieldExtension.swift */; };
Expand All @@ -44,7 +46,7 @@
B39F2B391CB3BCA700C0D35C /* SendText.scpt in Resources */ = {isa = PBXBuildFile; fileRef = B39F2B381CB3BCA700C0D35C /* SendText.scpt */; };
B3A4C61423B867E300B7F009 /* MessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3A4C61323B867E300B7F009 /* MessageRequest.swift */; };
B3AECB5F2207CE33003E32F8 /* JaredFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F84B61F1CC506790059A82B /* JaredFramework.framework */; };
B3B844B824D7791800DC162A /* ActionTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B844B724D7791700DC162A /* ActionTest.swift */; };
B3B844B824D7791800DC162A /* ActionTypeTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B844B724D7791700DC162A /* ActionTypeTest.swift */; };
B3B844BA24D77A4900DC162A /* SendStyleTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B844B924D77A4800DC162A /* SendStyleTest.swift */; };
B3B844BC24D77BF200DC162A /* SendStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3B844BB24D77BF200DC162A /* SendStyle.swift */; };
B3B844BE24D8F90000DC162A /* scaffold.db in Resources */ = {isa = PBXBuildFile; fileRef = B3B844BD24D8F8FF00DC162A /* scaffold.db */; };
Expand Down Expand Up @@ -149,6 +151,8 @@
B3327DD222068176009DD882 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
B347A4A324DD0B7400E93657 /* MessageSender.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageSender.swift; sourceTree = "<group>"; };
B347A4A824DD119A00E93657 /* JaredMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JaredMock.swift; sourceTree = "<group>"; };
B347A4AA24DD165200E93657 /* ActionType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionType.swift; sourceTree = "<group>"; };
B347A4AC24DD170C00E93657 /* ActionTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionTest.swift; sourceTree = "<group>"; };
B35CE7142196AD4E002F52A7 /* DatabaseHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseHandler.swift; sourceTree = "<group>"; };
B361EEBA1F1DE24C0041113C /* config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = config.json; sourceTree = "<group>"; };
B36563EE1F3D68980064B114 /* TouchBarTextFieldExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TouchBarTextFieldExtension.swift; sourceTree = "<group>"; };
Expand All @@ -161,7 +165,7 @@
B39EC17D1CB01FEF002C3161 /* CoreModule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CoreModule.swift; sourceTree = "<group>"; };
B39F2B381CB3BCA700C0D35C /* SendText.scpt */ = {isa = PBXFileReference; lastKnownFileType = file; path = SendText.scpt; sourceTree = "<group>"; };
B3A4C61323B867E300B7F009 /* MessageRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageRequest.swift; sourceTree = "<group>"; };
B3B844B724D7791700DC162A /* ActionTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionTest.swift; sourceTree = "<group>"; };
B3B844B724D7791700DC162A /* ActionTypeTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionTypeTest.swift; sourceTree = "<group>"; };
B3B844B924D77A4800DC162A /* SendStyleTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendStyleTest.swift; sourceTree = "<group>"; };
B3B844BB24D77BF200DC162A /* SendStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SendStyle.swift; sourceTree = "<group>"; };
B3B844BD24D8F8FF00DC162A /* scaffold.db */ = {isa = PBXFileReference; lastKnownFileType = file; path = scaffold.db; sourceTree = "<group>"; };
Expand Down Expand Up @@ -253,6 +257,7 @@
B39EC1751CB01F55002C3161 /* Message.swift */,
B347A4A324DD0B7400E93657 /* MessageSender.swift */,
B32DE51924D5524300AB3A71 /* Action.swift */,
B347A4AA24DD165200E93657 /* ActionType.swift */,
B3B844BB24D77BF200DC162A /* SendStyle.swift */,
B3EF1DAD2206E19100953DE7 /* Bodies.swift */,
B3EF1DAB2206E17900953DE7 /* Entities.swift */,
Expand Down Expand Up @@ -281,7 +286,8 @@
children = (
B3327DC722068147009DD882 /* WebhookTests.swift */,
B3EF1DAF2206E4EB00953DE7 /* MessageTests.swift */,
B3B844B724D7791700DC162A /* ActionTest.swift */,
B3B844B724D7791700DC162A /* ActionTypeTest.swift */,
B347A4AC24DD170C00E93657 /* ActionTest.swift */,
B3B844B924D77A4800DC162A /* SendStyleTest.swift */,
B32DE51424D51F9C00AB3A71 /* RouterTests.swift */,
B3B844CF24DA6AC800DC162A /* JaredWebServerTest.swift */,
Expand Down Expand Up @@ -662,6 +668,7 @@
B3EF1DAE2206E19100953DE7 /* Bodies.swift in Sources */,
B3B844BC24D77BF200DC162A /* SendStyle.swift in Sources */,
B32DE51A24D5524300AB3A71 /* Action.swift in Sources */,
B347A4AB24DD165200E93657 /* ActionType.swift in Sources */,
7F84B62B1CC5069C0059A82B /* Message.swift in Sources */,
B3EF1DA62206DFEA00953DE7 /* Route.swift in Sources */,
);
Expand Down Expand Up @@ -709,8 +716,9 @@
B3BF17CA244FDA3F00CC44C5 /* MessageDelegate.swift in Sources */,
B3B844C524D9288000DC162A /* RouterDelegate.swift in Sources */,
B347A4A924DD119A00E93657 /* JaredMock.swift in Sources */,
B3B844B824D7791800DC162A /* ActionTest.swift in Sources */,
B3B844B824D7791800DC162A /* ActionTypeTest.swift in Sources */,
B3B844C724D9298000DC162A /* MockRouter.swift in Sources */,
B347A4AD24DD170C00E93657 /* ActionTest.swift in Sources */,
B3B844C224D8FA7D00DC162A /* DatabaseTestHelper.swift in Sources */,
B3B844BA24D77A4900DC162A /* SendStyleTest.swift in Sources */,
B3327DD8220682ED009DD882 /* WebhookTests.swift in Sources */,
Expand Down
46 changes: 8 additions & 38 deletions JaredFramework/Action.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,50 +8,20 @@

import Foundation

public enum ActionType: String {
case like = "like"
case dislike = "dislike"
case love = "love"
case laugh = "laugh"
case exclaim = "exclaim"
case question = "question"
case unknown = "unknown"

public init(fromActionTypeInt actionTypeInt: Int) {
switch(actionTypeInt) {
case 2000:
self = .love
case 2001:
self = .like
case 2002:
self = .dislike
case 2003:
self = .laugh
case 2004:
self = .exclaim
case 2005:
self = .question
default:
self = .unknown
}
}
}

public enum ActionEvent: String {
case placed = "placed"
case removed = "removed"
}

public struct Action: Encodable {
public var type: ActionType
public var event: ActionEvent
public var targetGUID: String

enum CodingKeys : String, CodingKey{
case type
case targetGUID
case event
}
public enum ActionEvent: String {
case placed = "placed"
case removed = "removed"
}

public var type: ActionType
public var event: ActionEvent
public var targetGUID: String

public init(actionTypeInt: Int, targetGUID: String) {
if (actionTypeInt >= 3000) {
Expand Down
38 changes: 38 additions & 0 deletions JaredFramework/ActionType.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
//
// main.swift
// Jared 3.0 - Swiftified
//
// Created by Zeke Snider on 4/3/16.
// Copyright © 2016 Zeke Snider. All rights reserved.
//

import Foundation

public enum ActionType: String {
case like = "like"
case dislike = "dislike"
case love = "love"
case laugh = "laugh"
case exclaim = "exclaim"
case question = "question"
case unknown = "unknown"

public init(fromActionTypeInt actionTypeInt: Int) {
switch(actionTypeInt) {
case 2000:
self = .love
case 2001:
self = .like
case 2002:
self = .dislike
case 2003:
self = .laugh
case 2004:
self = .exclaim
case 2005:
self = .question
default:
self = .unknown
}
}
}
18 changes: 16 additions & 2 deletions JaredTests/ActionTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,29 @@ import XCTest
import JaredFramework

class ActionTest: XCTestCase {
static let removeLikeJSON = "{\"type\":\"like\",\"targetGUID\":\"goodGUID\",\"event\":\"removed\"}"
static let placeLoveJSON = "{\"type\":\"love\",\"targetGUID\":\"goodGUID\",\"event\":\"placed\"}"
override func setUp() {
}

override func tearDown() {
}

func testFromActionTypeInt() {
XCTAssertEqual(ActionType(fromActionTypeInt: 2005), .question, "Properly deserializes known action type")
let targetGUID = "goodGUID"
let encoder = JSONEncoder()
var action = Action(actionTypeInt: 3001, targetGUID: targetGUID)

XCTAssertEqual(ActionType(fromActionTypeInt: 696969), .unknown, "Properly deserializes unknown action type")
XCTAssertEqual(action.event, .removed, "Event marked as removed")
XCTAssertEqual(action.type, .like, "Type is correct")
XCTAssertEqual(String(data: try! encoder.encode(action), encoding: .utf8),
ActionTest.removeLikeJSON, "Encoding works as expected")

action = Action(actionTypeInt: 2000, targetGUID: targetGUID)

XCTAssertEqual(action.event, .placed, "Event marked as removed")
XCTAssertEqual(action.type, .love, "Type is correct")
XCTAssertEqual(String(data: try! encoder.encode(action), encoding: .utf8),
ActionTest.placeLoveJSON, "Encoding works as expected")
}
}
24 changes: 24 additions & 0 deletions JaredTests/ActionTypeTest.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
//
// MessageTests.swift
// JaredTests
//
// Created by Zeke Snider on 2/3/19.
// Copyright © 2019 Zeke Snider. All rights reserved.
//

import XCTest
import JaredFramework

class ActionTypeTest: XCTestCase {
override func setUp() {
}

override func tearDown() {
}

func testFromActionTypeInt() {
XCTAssertEqual(ActionType(fromActionTypeInt: 2005), .question, "Properly deserializes known action type")

XCTAssertEqual(ActionType(fromActionTypeInt: 696969), .unknown, "Properly deserializes unknown action type")
}
}

0 comments on commit 5e9550d

Please sign in to comment.