update tests

This commit is contained in:
Justin Mazzocchi 2020-09-12 17:02:56 -07:00
parent 3c46c6185d
commit 5fa4fb1b76
No known key found for this signature in database
GPG Key ID: E223E6937AAFB01C
1 changed files with 10 additions and 15 deletions

View File

@ -11,23 +11,18 @@ import XCTest
class InstanceURLServiceTests: XCTestCase { class InstanceURLServiceTests: XCTestCase {
func testFiltering() throws { func testFiltering() throws {
let sut = InstanceURLService(environment: .mock()) let sut = InstanceURLService(environment: .mock())
let unfilteredInstanceURL = URL(string: "https://unfiltered.instance")!
let filteredInstanceURL = URL(string: "https://filtered.instance")!
let subdomainFilteredInstanceURL = URL(string: "https://subdomain.filtered.instance")!
XCTAssertFalse(sut.isFiltered(url: unfilteredInstanceURL)) XCTAssertNotNil(sut.url(text: "unfiltered.instance"))
XCTAssertTrue(sut.isFiltered(url: filteredInstanceURL)) XCTAssertNil(sut.url(text: "filtered.instance"))
XCTAssertTrue(sut.isFiltered(url: subdomainFilteredInstanceURL)) XCTAssertNil(sut.url(text: "subdomain.filtered.instance"))
} }
func testUpdating() throws { func testUpdating() throws {
let environment = AppEnvironment.mock() let environment = AppEnvironment.mock()
var sut = InstanceURLService(environment: environment) var sut = InstanceURLService(environment: environment)
let previouslyFilteredInstanceURL = URL(string: "https://filtered.instance")!
let newlyFilteredInstanceURL = URL(string: "https://instance.filtered")!
XCTAssertTrue(sut.isFiltered(url: previouslyFilteredInstanceURL)) XCTAssertNil(sut.url(text: "filtered.instance"))
XCTAssertFalse(sut.isFiltered(url: newlyFilteredInstanceURL)) XCTAssertNotNil(sut.url(text: "instance.filtered"))
var updatedFilter = try BloomFilter<String>(hashes: [.djb232, .sdbm32], byteCount: 16) var updatedFilter = try BloomFilter<String>(hashes: [.djb232, .sdbm32], byteCount: 16)
@ -36,18 +31,18 @@ class InstanceURLServiceTests: XCTestCase {
let updatedFilterData = try JSONEncoder().encode(updatedFilter) let updatedFilterData = try JSONEncoder().encode(updatedFilter)
let stub: HTTPStub = .success((URLResponse(), updatedFilterData)) let stub: HTTPStub = .success((URLResponse(), updatedFilterData))
StubbingURLProtocol.setStub(stub, forURL: URL(string: "https://filter.metabolist.com/filter.json")!) StubbingURLProtocol.setStub(stub, forURL: URL(string: "https://filter.metabolist.com/filter")!)
let updateRecorder = sut.updateFilter().collect().record() let updateRecorder = sut.updateFilter().collect().record()
_ = try wait(for: updateRecorder.next(), timeout: 1) _ = try wait(for: updateRecorder.next(), timeout: 1)
XCTAssertFalse(sut.isFiltered(url: previouslyFilteredInstanceURL)) XCTAssertNotNil(sut.url(text: "filtered.instance"))
XCTAssertTrue(sut.isFiltered(url: newlyFilteredInstanceURL)) XCTAssertNil(sut.url(text: "instance.filtered"))
sut = InstanceURLService(environment: environment) sut = InstanceURLService(environment: environment)
XCTAssertFalse(sut.isFiltered(url: previouslyFilteredInstanceURL)) XCTAssertNotNil(sut.url(text: "filtered.instance"))
XCTAssertTrue(sut.isFiltered(url: newlyFilteredInstanceURL)) XCTAssertNil(sut.url(text: "instance.filtered"))
} }
} }