Files
Jot/JotTests/JotTests.swift

50 lines
2.1 KiB
Swift

//
// JotTests.swift
// JotTests
//
// Created by James Griffin-Allwood on 2018-12-29.
// Copyright © 2018 James Griffin-Allwood. All rights reserved.
//
import XCTest
@testable import Jot
class JotTests: XCTestCase {
func testJWTInit() {
guard let jwt = Jwt(token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJqZ3JpZmZpbiIsIm5hbWUiOiJKYW1lcyBHcmlmZmluIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.DXfNW7Gzvie7LIl5-HSG9clm3sjeglYG2uNmsPvcNerBQbzLI06vys4YqqCMtrWKEFij_y2hKGP9YFdHSRMdtyVcGEXmYP6H6E62uGhASmGFzEHeSa6B1X1-v8lRt_YpIGEXhkUnxfhdcQ90HJlNfajv0ndnRFk8YJxRkmr99OI") else {
XCTFail()
return
}
XCTAssertEqual(jwt.header.alg, SigningAlgorithm.rsa256)
XCTAssertEqual(jwt.header.typ, JwtType.jwt)
}
func testJWTPayload() {
guard let jwt = Jwt(token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJqZ3JpZmZpbiIsIm5hbWUiOiJKYW1lcyBHcmlmZmluIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.DXfNW7Gzvie7LIl5-HSG9clm3sjeglYG2uNmsPvcNerBQbzLI06vys4YqqCMtrWKEFij_y2hKGP9YFdHSRMdtyVcGEXmYP6H6E62uGhASmGFzEHeSa6B1X1-v8lRt_YpIGEXhkUnxfhdcQ90HJlNfajv0ndnRFk8YJxRkmr99OI") else {
XCTFail()
return
}
XCTAssertEqual(jwt.payload["sub"] as? String, "jgriffin")
XCTAssertEqual(jwt.payload["name"] as? String, "James Griffin")
}
func testJwtPayloadWithComplexObject() {
guard let jwt = Jwt(token: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJqZ3JpZmZpbiIsIm5hbWUiOiJKYW1lcyBHcmlmZmluIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMiwiZXhwIjoxNTY2MjM5MDIyLCJsaWMiOjIsInJvbGVzIjpbeyJ0eXBlIjoiQWRtaW4ifV19.W9xUEhfgQSZivmmcW_egcP3AR3QG7CTXo-1x-7NXgqdTxY9tDMcbVRvFuBj-qRcoh-Ugl-IHeQgSaUnxAfOwnHicWmRr5d44YO_MuuT7RYOPBImN2zg9CoYdrdIzbLkLo6m5muR5d8xs3lgRzhDneLCDKE4BfdDYqbMSkO4INWY") else {
XCTFail()
return
}
XCTAssertEqual(jwt.payload["exp"] as? Int, 1566239022)
guard let roles = jwt.payload["roles"] as? [[String:String]] else {
XCTFail()
return
}
XCTAssertEqual(roles.first!["type"], "Admin")
}
}