109 lines
3.5 KiB
Swift
109 lines
3.5 KiB
Swift
//
|
|
// Copyright (c) 2022 Open Whisper Systems. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import XCTest
|
|
@testable import SignalServiceKit
|
|
|
|
private extension UUID {
|
|
static let uuid1 = UUID()
|
|
static let uuid2 = UUID()
|
|
static let uuid3 = UUID()
|
|
}
|
|
|
|
class GroupModelsTest: SSKBaseTestSwift {
|
|
|
|
func testGroupMembershipChangingFullMembers() {
|
|
var builder1 = GroupMembership.Builder()
|
|
builder1.addFullMember(.uuid1, role: .normal)
|
|
let membership1 = builder1.build()
|
|
|
|
var builder2 = GroupMembership.Builder()
|
|
builder2.addFullMember(.uuid1, role: .administrator)
|
|
let membership2 = builder2.build()
|
|
|
|
var builder3 = GroupMembership.Builder()
|
|
builder3.addFullMember(.uuid1, role: .normal)
|
|
builder3.addFullMember(.uuid2, role: .normal)
|
|
let membership3 = builder3.build()
|
|
|
|
var builder4 = GroupMembership.Builder()
|
|
builder4.addFullMember(.uuid1, role: .normal)
|
|
let membership4 = builder4.build()
|
|
|
|
XCTAssertEqual(membership1, membership4)
|
|
|
|
XCTAssertNotEqual(membership1, membership2)
|
|
|
|
XCTAssertNotEqual(membership1, membership3)
|
|
|
|
XCTAssertNotEqual(membership2, membership3)
|
|
}
|
|
|
|
func testGroupMembershipChangingRequestingMembers() {
|
|
var builder1 = GroupMembership.Builder()
|
|
builder1.addFullMember(.uuid1, role: .normal)
|
|
let membership1 = builder1.build()
|
|
|
|
var builder2 = GroupMembership.Builder()
|
|
builder2.addFullMember(.uuid1, role: .normal)
|
|
builder2.addRequestingMember(.uuid2)
|
|
let membership2 = builder2.build()
|
|
|
|
var builder3 = GroupMembership.Builder()
|
|
builder3.addFullMember(.uuid1, role: .normal)
|
|
builder3.addRequestingMember(.uuid3)
|
|
let membership3 = builder3.build()
|
|
|
|
var builder4 = GroupMembership.Builder()
|
|
builder4.addFullMember(.uuid1, role: .normal)
|
|
builder4.addRequestingMember(.uuid2)
|
|
let membership4 = builder4.build()
|
|
|
|
XCTAssertFalse(membership1 == membership2)
|
|
|
|
XCTAssertFalse(membership1 == membership3)
|
|
|
|
XCTAssertFalse(membership2 == membership3)
|
|
|
|
XCTAssertTrue(membership2 == membership4)
|
|
}
|
|
|
|
func testGroupMembershipChangingBannedMembers() {
|
|
var builder1 = GroupMembership.Builder()
|
|
builder1.addFullMember(.uuid1, role: .normal)
|
|
let membership1 = builder1.build()
|
|
|
|
var builder2 = membership1.asBuilder
|
|
builder2.addFullMember(.uuid1, role: .normal)
|
|
builder2.addBannedMember(.uuid2, bannedAtTimestamp: 3)
|
|
let membership2 = builder2.build()
|
|
|
|
var builder3 = GroupMembership.Builder()
|
|
builder3.addFullMember(.uuid1, role: .normal)
|
|
builder3.addBannedMember(.uuid2, bannedAtTimestamp: 12)
|
|
let membership3 = builder3.build()
|
|
|
|
var builder4 = GroupMembership.Builder()
|
|
builder4.addFullMember(.uuid1, role: .normal)
|
|
builder4.addBannedMember(.uuid2, bannedAtTimestamp: 3)
|
|
builder4.addBannedMember(.uuid3, bannedAtTimestamp: 4)
|
|
let membership4 = builder4.build()
|
|
|
|
var builder5 = GroupMembership.Builder()
|
|
builder5.addFullMember(.uuid1, role: .normal)
|
|
builder5.addBannedMember(.uuid2, bannedAtTimestamp: 3)
|
|
builder5.addBannedMember(.uuid3, bannedAtTimestamp: 4)
|
|
let membership5 = builder5.build()
|
|
|
|
XCTAssertNotEqual(membership1, membership2)
|
|
|
|
XCTAssertNotEqual(membership2, membership3)
|
|
|
|
XCTAssertNotEqual(membership3, membership4)
|
|
|
|
XCTAssertEqual(membership4, membership5)
|
|
}
|
|
}
|