Bug: Implement `CardsInfoInterface` for `MockDb`



Spin out from #172. Please refer to that issue for more information.
diff --git a/crates/router/src/db.rs b/crates/router/src/db.rs
index 6863ddf1eb6..ee9cd03e692 100644
--- a/crates/router/src/db.rs
+++ b/crates/router/src/db.rs
@@ -84,6 +84,7 @@ pub struct MockDb {
     connector_response: Arc<Mutex<Vec<storage::ConnectorResponse>>>,
     redis: Arc<redis_interface::RedisConnectionPool>,
     api_keys: Arc<Mutex<Vec<storage::ApiKey>>>,
+    cards_info: Arc<Mutex<Vec<storage::CardInfo>>>,
 }
 
 impl MockDb {
@@ -100,6 +101,7 @@ impl MockDb {
             connector_response: Default::default(),
             redis: Arc::new(crate::connection::redis_connection(redis).await),
             api_keys: Default::default(),
+            cards_info: Default::default(),
         }
     }
 }
diff --git a/crates/router/src/db/cards_info.rs b/crates/router/src/db/cards_info.rs
index d088bd415d7..029c3b7babd 100644
--- a/crates/router/src/db/cards_info.rs
+++ b/crates/router/src/db/cards_info.rs
@@ -34,8 +34,14 @@ impl CardsInfoInterface for Store {
 impl CardsInfoInterface for MockDb {
     async fn get_card_info(
         &self,
-        _card_iin: &str,
+        card_iin: &str,
     ) -> CustomResult<Option<CardInfo>, errors::StorageError> {
-        Err(errors::StorageError::MockDbError)?
+        Ok(self
+            .cards_info
+            .lock()
+            .await
+            .iter()
+            .find(|ci| ci.card_iin == card_iin)
+            .cloned())
     }
 }

## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [x] New feature
- [ ] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->

Very simply implement `CardsInfoInterface` for `MockDB`, allowing looking up of card info, the only trait method

### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!-- 
Provide links to the files with corresponding changes.

Following are the paths where you can find config files:
1. `config`
2. `crates/router/src/configs`
3. `loadtest/config`
-->


## Motivation and Context
<!--
Why is this change required? What problem does it solve?
If it fixes an open issue, please link to the issue here.

If you don't have an issue, we'd recommend starting with one first so the PR
can focus on the implementation (unless its an obvious bug or documentation fix
that will have little conversation).
-->

Closes #1189.

## How did you test it?
<!--
Did you write an integration/unit/API test to verify the code changes?
Or did you test this change manually (provide relevant screenshots)?
-->

Code change is simple enough that I didn't find tests necessary, although I am happy to add a unit test if desired.

## Checklist
<!-- Put an `x` in the boxes that apply -->

- [ ] I formatted the code `cargo +nightly fmt --all`
- [ ] I addressed lints thrown by `cargo clippy`
- [ ] I reviewed submitted code
- [ ] I added unit tests for my changes where possible
- [ ] I added a [CHANGELOG](/CHANGELOG.md) entry if applicable
