File size: 1,717 Bytes
fd2ce9d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import pytest
from unittest.mock import Mock, patch
from app.repositories.payment import save_order_to_db
from app.services.razorpay import RazorpayService


class TestPaymentRepository:
    """Test cases for Payment repository"""
    
    @patch('app.repositories.payment.database')
    def test_save_order_to_db(self, mock_database):
        """Test saving order to database"""
        # Mock database response
        mock_database.execute.return_value = Mock()
        
        # Test data
        order_data = {
            "order_id": "test_order_123",
            "amount": 1000,
            "currency": "INR"
        }
        
        # This is a placeholder test - implement based on actual functionality
        assert True  # Replace with actual test logic


class TestRazorpayService:
    """Test cases for Razorpay service"""
    
    @pytest.fixture
    def razorpay_service(self):
        """Fixture to create RazorpayService instance"""
        with patch.dict('os.environ', {
            'RAZORPAY_KEY_ID': 'test_key_id',
            'RAZORPAY_KEY_SECRET': 'test_key_secret'
        }):
            return RazorpayService()
    
    @patch('razorpay.Client')
    def test_create_order(self, mock_client, razorpay_service):
        """Test order creation"""
        # Mock Razorpay client
        mock_order = {
            'id': 'order_test123',
            'amount': 100000,
            'currency': 'INR'
        }
        mock_client.return_value.order.create.return_value = mock_order
        
        # Test order creation
        result = razorpay_service.create_order(1000, "receipt_123", "INR")
        
        assert result['id'] == 'order_test123'
        assert result['amount'] == 100000