From 51239b2652521ba914fee4ce35fd982d1bbe5486 Mon Sep 17 00:00:00 2001 From: Christopher Reitz Date: Tue, 4 Jul 2017 16:24:28 +0200 Subject: [PATCH] Add method to clear internal memory cache --- AwesomeCache/Cache.swift | 5 +++++ AwesomeCacheTests/AwesomeCacheTests.swift | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/AwesomeCache/Cache.swift b/AwesomeCache/Cache.swift index 6da0abd..74502ad 100644 --- a/AwesomeCache/Cache.swift +++ b/AwesomeCache/Cache.swift @@ -201,6 +201,11 @@ open class Cache { }) } + /// Removes all objects from memory (and keep them in disk cache). + open func removeAllObjectsFromMemory() { + cache.removeAllObjects() + } + // MARK: Subscripting open subscript(key: String) -> T? { diff --git a/AwesomeCacheTests/AwesomeCacheTests.swift b/AwesomeCacheTests/AwesomeCacheTests.swift index 4f450c2..abb6b7e 100644 --- a/AwesomeCacheTests/AwesomeCacheTests.swift +++ b/AwesomeCacheTests/AwesomeCacheTests.swift @@ -64,6 +64,22 @@ class AwesomeCacheTests: XCTestCase { XCTAssertNil(cache.object(forKey: "remove 2"), "Removed object should be nil") } + func testRemoveAllObjectsFromMemory() { + let cache = try! Cache(name: "testRemoveAllObjectsFromMemory") + + cache.setObject("AddedString 1", forKey: "remove only from memory 1") + cache.setObject("AddedString 2", forKey: "remove only from memory 2") + XCTAssertNotNil(cache.object(forKey: "remove only from memory 1"), "Added object should not be nil") + XCTAssertNotNil(cache.object(forKey: "remove only from memory 2"), "Added object should not be nil") + + cache.removeAllObjectsFromMemory() + XCTAssertNotNil(cache.object(forKey: "remove only from memory 1"), "Removed object should not be nil") + XCTAssertNotNil(cache.object(forKey: "remove only from memory 2"), "Removed object should not be nil") + + XCTAssertNil(cache.cache.object(forKey: "remove only from memory 1"), "Removed object should be nil in NSCache") + XCTAssertNil(cache.cache.object(forKey: "remove only from memory 2"), "Removed object should be nil in NSCache") + } + func testRemoveExpiredObjects() { let cache = try! Cache(name: "testRemoveExpiredObjects")