@@ -39,6 +39,21 @@ final class MemoryStorageTests: XCTestCase {
3939 XCTAssertEqual ( entry? . object. lastName, testObject. lastName)
4040 XCTAssertEqual ( entry? . expiry. date, config. expiry. date)
4141 }
42+
43+ func testSetObjectWithExpiry( ) {
44+ let date = Date ( ) . addingTimeInterval ( 1 )
45+ storage. setObject ( testObject, forKey: key, expiry: . seconds( 1 ) )
46+ var entry = try ! storage. entry ( ofType: User . self, forKey: key)
47+ XCTAssertEqual ( entry. expiry. date. timeIntervalSinceReferenceDate,
48+ date. timeIntervalSinceReferenceDate,
49+ accuracy: 0.1 )
50+ //Timer vs sleep: do not complicate
51+ sleep ( 1 )
52+ entry = try ! storage. entry ( ofType: User . self, forKey: key)
53+ XCTAssertEqual ( entry. expiry. date. timeIntervalSinceReferenceDate,
54+ date. timeIntervalSinceReferenceDate,
55+ accuracy: 0.1 )
56+ }
4257
4358 /// Test that it removes cached object
4459 func testRemoveObject( ) {
@@ -66,6 +81,14 @@ final class MemoryStorageTests: XCTestCase {
6681
6782 XCTAssertNotNil ( cachedObject)
6883 }
84+
85+ /// Test expired object
86+ func testExpiredObject( ) throws {
87+ storage. setObject ( testObject, forKey: key, expiry: . seconds( 0.9 ) )
88+ XCTAssertFalse ( try ! storage. isExpiredObject ( ofType: User . self, forKey: key) )
89+ sleep ( 1 )
90+ XCTAssertTrue ( try ! storage. isExpiredObject ( ofType: User . self, forKey: key) )
91+ }
6992
7093 /// Test that it clears cache directory
7194 func testRemoveAll( ) {
0 commit comments