Skip to content
Snippets Groups Projects
Commit f01aa47c authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Add EventReport model

parent 919022d2
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!18Update Bindings
import Foundation
public struct EventReport: Equatable {
public init(
priority: Int,
category: String,
eventType: String,
details: String
) {
self.priority = priority
self.category = category
self.eventType = eventType
self.details = details
}
public var priority: Int
public var category: String
public var eventType: String
public var details: String
}
extension EventReport: Codable {
enum CodingKeys: String, CodingKey {
case priority = "Priority"
case category = "Category"
case eventType = "EventType"
case details = "Details"
}
public static func decode(_ data: Data) throws -> EventReport {
try JSONDecoder().decode(Self.self, from: data)
}
public func encode() throws -> Data {
try JSONEncoder().encode(self)
}
}
import CustomDump
import XCTest
@testable import ElixxirDAppsSDK
final class EventReportTests: XCTestCase {
func testCoding() throws {
let priority: Int = 1
let category = "Test Events"
let eventType = "Ping"
let details = "This is an example of an event report"
let jsonString = """
{
"Priority": \(priority),
"Category": "\(category)",
"EventType": "\(eventType)",
"Details": "\(details)"
}
"""
let jsonData = jsonString.data(using: .utf8)!
let report = try EventReport.decode(jsonData)
XCTAssertNoDifference(report, EventReport(
priority: priority,
category: category,
eventType: eventType,
details: details
))
let encodedReport = try report.encode()
let decodedReport = try EventReport.decode(encodedReport)
XCTAssertNoDifference(decodedReport, report)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment