mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.9 KiB
Swift
77 lines
2.9 KiB
Swift
// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
|
|
|
|
import Foundation
|
|
|
|
import Quick
|
|
import Nimble
|
|
|
|
@testable import SessionMessagingKit
|
|
|
|
class OpenGroupSpec: QuickSpec {
|
|
// MARK: - Spec
|
|
|
|
override func spec() {
|
|
describe("an Open Group") {
|
|
context("when initializing") {
|
|
it("generates the id") {
|
|
let openGroup: OpenGroup = OpenGroup(
|
|
server: "server",
|
|
room: "room",
|
|
publicKey: "1234",
|
|
name: "name",
|
|
groupDescription: nil,
|
|
imageID: nil,
|
|
infoUpdates: 0
|
|
)
|
|
|
|
expect(openGroup.id).to(equal("server.room"))
|
|
}
|
|
}
|
|
|
|
context("when NSCoding") {
|
|
// Note: Unit testing NSCoder is horrible so we won't do it - wait until we refactor it to Codable
|
|
it("successfully encodes and decodes") {
|
|
let openGroupToEncode: OpenGroup = OpenGroup(
|
|
server: "server",
|
|
room: "room",
|
|
publicKey: "1234",
|
|
name: "name",
|
|
groupDescription: "desc",
|
|
imageID: "image",
|
|
infoUpdates: 1
|
|
)
|
|
let encodedData: Data = try! NSKeyedArchiver.archivedData(withRootObject: openGroupToEncode, requiringSecureCoding: false)
|
|
let openGroup: OpenGroup? = try? NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(encodedData) as? OpenGroup
|
|
|
|
expect(openGroup).toNot(beNil())
|
|
expect(openGroup?.id).to(equal("server.room"))
|
|
expect(openGroup?.server).to(equal("server"))
|
|
expect(openGroup?.room).to(equal("room"))
|
|
expect(openGroup?.publicKey).to(equal("1234"))
|
|
expect(openGroup?.name).to(equal("name"))
|
|
expect(openGroup?.groupDescription).to(equal("desc"))
|
|
expect(openGroup?.imageID).to(equal("image"))
|
|
expect(openGroup?.infoUpdates).to(equal(1))
|
|
}
|
|
}
|
|
|
|
context("when describing") {
|
|
it("includes relevant information") {
|
|
let openGroup: OpenGroup = OpenGroup(
|
|
server: "server",
|
|
room: "room",
|
|
publicKey: "1234",
|
|
name: "name",
|
|
groupDescription: nil,
|
|
imageID: nil,
|
|
infoUpdates: 0
|
|
)
|
|
|
|
expect(openGroup.description)
|
|
.to(equal("name (Server: server, Room: room)"))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|