diff --git a/domain/marketplace/classified_ad.py b/domain/marketplace/classified_ad.py index 38e640e..b31ecf3 100644 --- a/domain/marketplace/classified_ad.py +++ b/domain/marketplace/classified_ad.py @@ -2,7 +2,7 @@ from dataclasses import dataclass, field from decimal import Decimal from domain.marketplace.classified_ad_id import ClassifiedAdId -from domain.marketplace.money import Money +from domain.marketplace.price import Price from domain.marketplace.user_id import UserId @@ -12,4 +12,4 @@ class ClassifiedAd: _ownerId: UserId title: str text: str - price: Money = field(default_factory=lambda: Money(amount=Decimal("0.00"))) + price: Price = field(default_factory=lambda: Price(amount=Decimal("0.00"))) diff --git a/tests/test_classified_ad.py b/tests/test_classified_ad.py index b2c3e30..86db76c 100644 --- a/tests/test_classified_ad.py +++ b/tests/test_classified_ad.py @@ -5,7 +5,7 @@ import pytest from domain.marketplace.classified_ad import ClassifiedAd from domain.marketplace.classified_ad_id import ClassifiedAdId -from domain.marketplace.money import Money +from domain.marketplace.price import Price from domain.marketplace.user_id import UserId @@ -18,14 +18,14 @@ def test_classified_ad_creation(): _ownerId=owner_id, title="Test Title", text="Test text content", - price=Money(amount=Decimal("99.99")), + price=Price(amount=Decimal("99.99")), ) assert ad.id == ad_id assert ad._ownerId == owner_id assert ad.title == "Test Title" assert ad.text == "Test text content" - assert ad.price == Money(amount=Decimal("99.99")) + assert ad.price == Price(amount=Decimal("99.99")) def test_classified_ad_can_not_be_created_without_id(): @@ -34,7 +34,7 @@ def test_classified_ad_can_not_be_created_without_id(): _ownerId=UserId(value=uuid4()), title="Title", text="Text", - price=Money(amount=Decimal("10.00")), + price=Price(amount=Decimal("10.00")), ) @@ -44,7 +44,7 @@ def test_classified_ad_can_not_be_created_without_owner_id(): id=ClassifiedAdId(value=uuid4()), title="Title", text="Text", - price=Money(amount=Decimal("10.00")), + price=Price(amount=Decimal("10.00")), ) @@ -63,7 +63,18 @@ def test_classified_ad_can_be_created_without_price(): assert ad._ownerId == owner_id assert ad.title == "Test Title" assert ad.text == "Test text content" - assert ad.price == Money(amount=Decimal("0.00")) + assert ad.price == Price(amount=Decimal("0.00")) + + +def test_classified_ad_can_not_have_negative_price(): + with pytest.raises(ValueError): + ClassifiedAd( + id=ClassifiedAdId(value=uuid4()), + _ownerId=UserId(value=uuid4()), + title="Title", + text="Text", + price=Price(amount=Decimal("-10.00")), + ) def test_classified_ad_is_immutable(): @@ -72,7 +83,7 @@ def test_classified_ad_is_immutable(): _ownerId=UserId(value=uuid4()), title="Title", text="Text", - price=Money(amount=Decimal("10.00")), + price=Price(amount=Decimal("10.00")), ) try: @@ -91,14 +102,14 @@ def test_classified_ad_equality(): _ownerId=owner_id, title="Title", text="Text", - price=Money(amount=Decimal("10.00")), + price=Price(amount=Decimal("10.00")), ) ad2 = ClassifiedAd( id=ad_id, _ownerId=owner_id, title="Title", text="Text", - price=Money(amount=Decimal("10.00")), + price=Price(amount=Decimal("10.00")), ) assert ad1 == ad2