"""Tests for MACD strategy."""

import pytest
import pandas as pd
from src.strategies.technical.macd_strategy import MACDStrategy


class TestMACDStrategy:
    """Tests for MACDStrategy."""
    
    @pytest.fixture
    def strategy(self):
        """Create MACD strategy instance."""
        return MACDStrategy(
            strategy_id=1,
            name="test_macd",
            symbol="BTC/USD",
            timeframe="1h",
            parameters={
                "fast_period": 12,
                "slow_period": 26,
                "signal_period": 9
            }
        )
    
    @pytest.mark.asyncio
    async def test_macd_strategy_initialization(self, strategy):
        """Test MACD strategy initialization."""
        assert strategy.fast_period == 12
        assert strategy.slow_period == 26
        assert strategy.signal_period == 9
    
    @pytest.mark.asyncio
    async def test_generate_signal(self, strategy):
        """Test signal generation."""
        # Create minimal data
        data = pd.DataFrame({
            'close': [100 + i * 0.1 for i in range(50)]
        })
        strategy.current_data = data
        
        signal = await strategy.generate_signal()
        assert "signal" in signal
        assert signal["signal"] in ["buy", "sell", "hold"]

