// // Copyright (c) 2018 Open Whisper Systems. All rights reserved. // import XCTest @testable import Signal class ImageCacheTest: SignalBaseTest { var imageCache: ImageCache! let firstVariation = UIImage() let secondVariation = UIImage() let otherImage = UIImage() let cacheKey1 = "cache-key-1" as NSString let cacheKey2 = "cache-key-2" as NSString override func setUp() { super.setUp() self.imageCache = ImageCache() imageCache.setImage(firstVariation, forKey: cacheKey1, diameter: 100) imageCache.setImage(secondVariation, forKey: cacheKey1, diameter: 200) imageCache.setImage(otherImage, forKey: cacheKey2, diameter: 100) } override func tearDown() { // Put teardown code here. This method is called after the invocation of each test method in the class. super.tearDown() } func testSetGet() { XCTAssertEqual(firstVariation, imageCache.image(forKey: cacheKey1, diameter: 100)) XCTAssertEqual(secondVariation, imageCache.image(forKey: cacheKey1, diameter: 200)) XCTAssertNotEqual(secondVariation, imageCache.image(forKey: cacheKey1, diameter: 100)) XCTAssertEqual(otherImage, imageCache.image(forKey: cacheKey2, diameter: 100)) XCTAssertNil(imageCache.image(forKey: cacheKey2, diameter: 200)) } func testRemoveAllForKey() { // sanity check XCTAssertEqual(firstVariation, imageCache.image(forKey: cacheKey1, diameter: 100)) XCTAssertEqual(otherImage, imageCache.image(forKey: cacheKey2, diameter: 100)) imageCache.removeAllImages(forKey: cacheKey1) XCTAssertNil(imageCache.image(forKey: cacheKey1, diameter: 100)) XCTAssertNil(imageCache.image(forKey: cacheKey1, diameter: 200)) XCTAssertEqual(otherImage, imageCache.image(forKey: cacheKey2, diameter: 100)) } func testRemoveAll() { XCTAssertEqual(firstVariation, imageCache.image(forKey: cacheKey1, diameter: 100)) imageCache.removeAllImages() XCTAssertNil(imageCache.image(forKey: cacheKey1, diameter: 100)) XCTAssertNil(imageCache.image(forKey: cacheKey1, diameter: 200)) XCTAssertNil(imageCache.image(forKey: cacheKey2, diameter: 100)) } }