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.
		
		
		
		
		
			
		
			
				
	
	
		
			61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			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 "))
 | |
|     }
 | |
| }
 |