Signal-iOS/Signal/test/util/ImageCacheTest.swift
2020-04-06 11:34:21 -03:00

63 lines
2.3 KiB
Swift

//
// Copyright (c) 2020 Open Whisper Systems. All rights reserved.
//
import XCTest
@testable import Signal
class ImageCacheTest: SignalBaseTest {
var imageCache: ImageCache!
let firstVariation = UIImage(color: .red, size: CGSize(square: 1))
let secondVariation = UIImage(color: .blue, size: CGSize(square: 1))
let otherImage = UIImage(color: .green, size: CGSize(square: 1))
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))
}
}