import pytest

import copy
import finoex


def get_item_a(sub_count=0):
    i = finoex.Item(name='test', price_brutto=finoex.Sum(2.0, 'EUR'))
    for c in range(sub_count):
        i.sub_items.append(finoex.Item(
            name='sub',
            price_brutto=finoex.Sum(1.0, 'EUR'),
        ))
    return i


@pytest.mark.parametrize(('item', 'expected_total'), [
    [get_item_a(sub_count=0), finoex.Sum(2.0, 'EUR')],
    [get_item_a(sub_count=1), finoex.Sum(3.0, 'EUR')],
    [get_item_a(sub_count=2), finoex.Sum(4.0, 'EUR')],
])
def test_total_price_brutto(item, expected_total):
    assert expected_total == item.total_price_brutto