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.
session-ios/Signal/test/util/SearcherTest.swift

61 lines
2.2 KiB
Swift

//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
//
import XCTest
class SearcherTest: XCTestCase {
struct TestCharacter {
let name: String
let description: String
}
let smerdyakov = TestCharacter(name: "Pavel Fyodorovich Smerdyakov", description: "A rusty hue in the sky")
let stinkingLizaveta = TestCharacter(name: "Stinking Lizaveta", description: "object of pity")
let regularLizaveta = TestCharacter(name: "Lizaveta", description: "")
let indexer = { (character: TestCharacter) in
return "\(character.name) \(character.description)"
}
var searcher: Searcher<TestCharacter> {
return Searcher(indexer: indexer)
}
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testSimple() {
XCTAssert(searcher.matches(item: smerdyakov, query: "Pavel"))
XCTAssert(searcher.matches(item: smerdyakov, query: "pavel"))
XCTAssertFalse(searcher.matches(item: smerdyakov, query: "asdf"))
XCTAssertFalse(searcher.matches(item: smerdyakov, query: ""))
XCTAssert(searcher.matches(item: stinkingLizaveta, query: "Pity"))
}
func testRepeats() {
XCTAssert(searcher.matches(item: smerdyakov, query: "pavel pavel"))
XCTAssertFalse(searcher.matches(item: smerdyakov, query: "pavelpavel"))
}
func testSplitWords() {
XCTAssert(searcher.matches(item: stinkingLizaveta, query: "Lizaveta"))
XCTAssert(searcher.matches(item: regularLizaveta, query: "Lizaveta"))
XCTAssert(searcher.matches(item: stinkingLizaveta, query: "Stinking Lizaveta"))
XCTAssertFalse(searcher.matches(item: regularLizaveta, query: "Stinking Lizaveta"))
XCTAssert(searcher.matches(item: stinkingLizaveta, query: "Lizaveta Stinking"))
XCTAssert(searcher.matches(item: stinkingLizaveta, query: "Lizaveta St"))
XCTAssert(searcher.matches(item: stinkingLizaveta, query: " Lizaveta St "))
}
}