provider_test.go
provider_test.go - Overview
- Overview
This file contains unit tests for the memory cache provider implementation. It tests the functionalities like creating a new cache, storing, retrieving, setting TTL, removing single and multiple keys, and the overall caching mechanism.
- Detailed Documentation
TestNew
- Purpose: Tests the
New
function to ensure it creates a new memory cache provider instance without errors, the cache client is not nil, and it connects successfully. - Parameters:
t
(*testing.T): Testing context.
- Returns: None
CacheableEntity
- Purpose: Defines a struct that implements the
BinaryMarshaler
andBinaryUnmarshaler
interfaces for testing the cache. - Fields:
Key
(string): A string key.Value
(int): An integer value.Expiry
(time.Duration): Duration for expiry.
CacheableEntity.MarshalBinary
- Purpose: Marshals the
CacheableEntity
struct into a binary representation using JSON. - Parameters: None
- Returns:
[]byte
: The binary representation of the struct.error
: An error, if any.
CacheableEntity.UnmarshalBinary
- Purpose: Unmarshals binary data into the
CacheableEntity
struct. Currently, it's a no-op. - Parameters:
data
([]byte): The binary data to unmarshal.
- Returns:
error
: An error, if any. Currently always nil.
DCacheableEntity
- Purpose: Defines another struct similar to
CacheableEntity
for testing different types during retrieval. - Fields:
Key
(string): A string key.Value
(int): An integer value.Expiry
(time.Duration): Duration for expiry.
DCacheableEntity.MarshalBinary
- Purpose: Marshals the
DCacheableEntity
struct into a binary representation using JSON. - Parameters: None
- Returns:
[]byte
: The binary representation of the struct.error
: An error, if any.
DCacheableEntity.UnmarshalBinary
- Purpose: Unmarshals binary data into the
DCacheableEntity
struct. Currently a no-op. - Parameters:
data
([]byte): The binary data to unmarshal.
- Returns:
error
: An error, if any. Currently always nil.
TestStoreWithNilPointer
- Purpose: Tests the
Store
function with a nil pointer to ensure it returns an error. - Parameters:
t
(*testing.T): Testing context.
- Returns: None
TestStoreWithStruct
- Purpose: Tests the
Store
function with a non-pointer value to ensure it returns an error. - Parameters:
t
(*testing.T): Testing context.
- Returns: None
TestStoreWithNonNilPointer
- Purpose: Tests the
Store
function with a non-nil pointer to ensure it stores the value without errors. - Parameters:
t
(*testing.T): Testing context.
- Returns: None
TestRetrieveWithNilPointer
- Purpose: Tests the
Retrieve
function when attempting to retrieve data into a nil pointer. It asserts that an error is returned and the retrieve status iscache.RetrieveStatusError
. - Parameters:
t
(*testing.T): Testing context.
- Returns: None
TestRetrieveWitNonPointer
- Purpose: Tests the
Retrieve
function when attempting to retrieve data into a non-pointer variable. It asserts that an error is returned and the retrieve status iscache.RetrieveStatusError
. - Parameters:
t
(*testing.T): Testing context.
- Returns: None
TestRetrieveWithDifferentTypes
- Purpose: Tests the
Retrieve
function when the type of the stored data and the retrieval target are different. It asserts that an error is returned and the retrieve status iscache.RetrieveStatusError
. - Parameters:
t
(*testing.T): Testing context.
- Returns: None
TestRetrieveWithSameTypes
- Purpose: Tests the
Retrieve
function with the same types for stored and retrieved data. It asserts that no error occurs, the retrieve status iscache.RetrieveStatusHit
, and the retrieved value matches the stored value. - Parameters:
t
(*testing.T): Testing context.
- Returns: None
TestSetTTL
- Purpose: Tests the
SetTTL
function to ensure it updates the TTL of a cached item correctly. It verifies that the item expires after the initial TTL, then resets the TTL and verifies that the item is accessible after the initial TTL but before the new TTL expires. - Parameters:
t
(*testing.T): Testing context.
- Returns: None
TestRemove
- Purpose: Tests the
Remove
function to ensure it removes a key from the cache. - Parameters:
t
(*testing.T): Testing context.
- Returns: None
TestBulkRemove
- Purpose: Tests the
BulkRemove
function to ensure it removes multiple keys from the cache. - Parameters:
t
(*testing.T): Testing context.
- Returns: None
TestCache
- Purpose: Tests the basic caching functionality, including storing, retrieving, and removing an item.
- Parameters:
t
(*testing.T): Testing context.
- Returns: None
- Code Examples
None
- Clarity and Accuracy
The documentation is based on the code provided and aims to be accurate and clear.
- Markdown & MDX Perfection
The markdown syntax is correct and well-formatted.
- Edge Cases To Avoid Breaking MDX
All special characters are properly escaped or enclosed in code blocks.
- Getting Started Relevance
Include in Getting Started: NO