use std::sync::Arc; use data_models::{ errors::StorageError, payments::{payment_attempt::PaymentAttempt, payment_intent::PaymentIntent}, }; use diesel_models::{self as store}; use error_stack::ResultExt; use futures::lock::Mutex; use redis_interface::RedisSettings; use crate::redis::RedisStore; pub mod payment_attempt; pub mod payment_intent; pub mod redis_conn; #[derive(Clone)] pub struct MockDb { pub addresses: Arc>>, pub configs: Arc>>, pub merchant_accounts: Arc>>, pub merchant_connector_accounts: Arc>>, pub payment_attempts: Arc>>, pub payment_intents: Arc>>, pub payment_methods: Arc>>, pub customers: Arc>>, pub refunds: Arc>>, pub processes: Arc>>, pub connector_response: Arc>>, pub redis: Arc, pub api_keys: Arc>>, pub ephemeral_keys: Arc>>, pub cards_info: Arc>>, pub events: Arc>>, pub disputes: Arc>>, pub lockers: Arc>>, pub mandates: Arc>>, pub captures: Arc>>, pub merchant_key_store: Arc>>, pub business_profiles: Arc>>, pub reverse_lookups: Arc>>, pub payment_link: Arc>>, } impl MockDb { pub async fn new(redis: &RedisSettings) -> error_stack::Result { Ok(Self { addresses: Default::default(), configs: Default::default(), merchant_accounts: Default::default(), merchant_connector_accounts: Default::default(), payment_attempts: Default::default(), payment_intents: Default::default(), payment_methods: Default::default(), customers: Default::default(), refunds: Default::default(), processes: Default::default(), connector_response: Default::default(), redis: Arc::new( RedisStore::new(redis) .await .change_context(StorageError::InitializationError)?, ), api_keys: Default::default(), ephemeral_keys: Default::default(), cards_info: Default::default(), events: Default::default(), disputes: Default::default(), lockers: Default::default(), mandates: Default::default(), captures: Default::default(), merchant_key_store: Default::default(), business_profiles: Default::default(), reverse_lookups: Default::default(), payment_link: Default::default(), }) } }