from app.core.zte_c320 import generate_zte_c320_config


def test_private_pppoe_profile_contains_customer_wan_and_vlans():
    config = generate_zte_c320_config({
        "olt_port": "1/1/1", "onu_id": 10, "ont_sn": "ZTEGCC444066",
        "pppoe_username": "fifi@terminal", "pppoe_password": "fifi@hs",
        "wan_vlan": 175, "service_vlan": 175, "iptv_vlan": 15,
        "olt_vlan_profile": "bnbv1009", "provisioning_mode": "private_pppoe",
    })
    assert "onu 10 type ALL sn ZTEGCC444066" in config
    assert "wan-ip 1 mode pppoe username fifi@terminal password fifi@hs vlan-profile bnbv1009 host 1" in config
    assert "service-port 1 vport 1 user-vlan 175 vlan 175" in config
    assert "service iptv gemport 3 vlan 15" in config


def test_hotspot_profile_uses_dhcp_and_does_not_use_customer_pppoe():
    config = generate_zte_c320_config({
        "olt_port": "1/1/1", "onu_id": 10, "ont_sn": "ZTEGCC444066",
        "pppoe_username": "control", "pppoe_password": "secret",
        "wan_vlan": 175, "service_vlan": 15, "iptv_vlan": 15,
        "olt_vlan_profile": "bnbv1009", "provisioning_mode": "hotspot",
    })
    assert "service-port 1 vport 1 user-vlan 15 vlan 15" in config
    assert "dhcp-ip ethuni eth_0/1 from-internet" in config
    assert "wan-ip 1 mode pppoe username control password secret" not in config
    assert "wan-ip 1 mode dhcp" in config
