feat: raise ClassifiedAdSentForReview event in request_to_publish
This commit is contained in:
@@ -10,6 +10,7 @@ from domain.marketplace.classified_ad_text import ClassifiedAdText
|
|||||||
from domain.marketplace.classified_ad_title import ClassifiedAdTitle
|
from domain.marketplace.classified_ad_title import ClassifiedAdTitle
|
||||||
from domain.marketplace.domain_event import (
|
from domain.marketplace.domain_event import (
|
||||||
ClassifiedAdPriceUpdated,
|
ClassifiedAdPriceUpdated,
|
||||||
|
ClassifiedAdSentForReview,
|
||||||
ClassifiedAdTextUpdated,
|
ClassifiedAdTextUpdated,
|
||||||
ClassifiedAdTitleChanged,
|
ClassifiedAdTitleChanged,
|
||||||
DomainEvent,
|
DomainEvent,
|
||||||
@@ -48,7 +49,10 @@ class ClassifiedAd(Entity):
|
|||||||
def request_to_publish(self):
|
def request_to_publish(self):
|
||||||
self._ensure_valid_state()
|
self._ensure_valid_state()
|
||||||
|
|
||||||
return replace(self, state=ClassifiedAdState.PendingReview)
|
updated = replace(self, state=ClassifiedAdState.PendingReview)
|
||||||
|
return updated.raise_event(
|
||||||
|
ClassifiedAdSentForReview(id=self.id.value)
|
||||||
|
)
|
||||||
|
|
||||||
def set_title(self, title: ClassifiedAdTitle) -> ClassifiedAd:
|
def set_title(self, title: ClassifiedAdTitle) -> ClassifiedAd:
|
||||||
updated = replace(self, title=title)
|
updated = replace(self, title=title)
|
||||||
|
|||||||
@@ -153,6 +153,12 @@ def test_request_to_publish_sets_state_to_pending_review():
|
|||||||
|
|
||||||
assert published.state == ClassifiedAdState.PendingReview
|
assert published.state == ClassifiedAdState.PendingReview
|
||||||
|
|
||||||
|
changes = published.get_changes()
|
||||||
|
assert len(changes) == 1
|
||||||
|
event = changes[0]
|
||||||
|
assert isinstance(event, ClassifiedAdSentForReview)
|
||||||
|
assert event.id == ad.id.value
|
||||||
|
|
||||||
|
|
||||||
def test_request_to_publish_fails_when_title_empty():
|
def test_request_to_publish_fails_when_title_empty():
|
||||||
ad = ClassifiedAd(
|
ad = ClassifiedAd(
|
||||||
|
|||||||
Reference in New Issue
Block a user