refactor: rename apply_event to apply
This commit is contained in:
7
.vscode/settings.json
vendored
Normal file
7
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
|
||||
"python.testing.pytestEnabled": true,
|
||||
"python.testing.pytestPath": "${workspaceFolder}/.venv/bin/pytest",
|
||||
"python.testing.pytestArgs": ["tests"],
|
||||
"python.testing.unittestEnabled": false
|
||||
}
|
||||
@@ -8,8 +8,10 @@ from domain.marketplace.domain_event import DomainEvent
|
||||
class Entity(ABC):
|
||||
_changes: tuple[DomainEvent, ...] = ()
|
||||
|
||||
def apply_event(self, event: DomainEvent) -> Self:
|
||||
return replace(self, _changes=(*self._changes, event))
|
||||
def apply(self, event: DomainEvent) -> Self:
|
||||
result = self.when(event)
|
||||
result._ensure_valid_state()
|
||||
return replace(result, _changes=(*result._changes, event))
|
||||
|
||||
def get_changes(self) -> tuple[DomainEvent, ...]:
|
||||
return self._changes
|
||||
|
||||
@@ -57,27 +57,27 @@ class ClassifiedAd(Entity):
|
||||
self._ensure_valid_state()
|
||||
|
||||
updated = replace(self, state=ClassifiedAdState.PendingReview)
|
||||
return updated.apply_event(
|
||||
return updated.apply(
|
||||
ClassifiedAdSentForReview(id=self.id.value)
|
||||
)
|
||||
|
||||
def set_title(self, title: ClassifiedAdTitle) -> ClassifiedAd:
|
||||
updated = replace(self, title=title)
|
||||
updated._ensure_valid_state()
|
||||
return updated.apply_event(
|
||||
return updated.apply(
|
||||
ClassifiedAdTitleChanged(id=self.id.value, title=title.title)
|
||||
)
|
||||
|
||||
def update_text(self, text: ClassifiedAdText) -> ClassifiedAd:
|
||||
updated = replace(self, text=text)
|
||||
updated._ensure_valid_state()
|
||||
return updated.apply_event(
|
||||
return updated.apply(
|
||||
ClassifiedAdTextUpdated(id=self.id.value, ad_text=text.text)
|
||||
)
|
||||
|
||||
def update_price(self, price: Price) -> ClassifiedAd:
|
||||
updated = replace(self, price=price)
|
||||
updated._ensure_valid_state()
|
||||
return updated.apply_event(
|
||||
return updated.apply(
|
||||
ClassifiedAdPriceUpdated(id=self.id.value, price=price.amount)
|
||||
)
|
||||
|
||||
@@ -248,7 +248,7 @@ def test_classified_ad_is_instance_of_entity():
|
||||
assert isinstance(ad, Entity)
|
||||
|
||||
|
||||
def test_classified_ad_can_use_entity_apply_event():
|
||||
def test_classified_ad_can_use_entity_apply():
|
||||
ad = ClassifiedAd(
|
||||
id=ClassifiedAdId(value=uuid4()),
|
||||
_ownerId=UserId(value=uuid4()),
|
||||
@@ -258,7 +258,7 @@ def test_classified_ad_can_use_entity_apply_event():
|
||||
)
|
||||
event = ClassifiedAdSentForReview(id=ad.id.value)
|
||||
|
||||
updated_ad = ad.apply_event(event)
|
||||
updated_ad = ad.apply(event)
|
||||
|
||||
assert updated_ad.get_changes() == (ad.get_changes()[0], event)
|
||||
assert len(ad.get_changes()) == 1
|
||||
|
||||
@@ -20,20 +20,20 @@ def test_entity_creation():
|
||||
assert entity.get_changes() == ()
|
||||
|
||||
|
||||
def test_apply_event_returns_new_instance_with_event():
|
||||
def test_apply_returns_new_instance_with_event():
|
||||
entity = TestEntity()
|
||||
event = ClassifiedAdCreated(id=uuid4(), owner_id=uuid4())
|
||||
|
||||
new_entity = entity.apply_event(event)
|
||||
new_entity = entity.apply(event)
|
||||
|
||||
assert new_entity.get_changes() == (event,)
|
||||
|
||||
|
||||
def test_apply_event_does_not_mutate_original():
|
||||
def test_apply_does_not_mutate_original():
|
||||
entity = TestEntity()
|
||||
event = ClassifiedAdCreated(id=uuid4(), owner_id=uuid4())
|
||||
|
||||
entity.apply_event(event)
|
||||
entity.apply(event)
|
||||
|
||||
assert entity.get_changes() == ()
|
||||
|
||||
@@ -43,8 +43,8 @@ def test_multiple_events_accumulate():
|
||||
event1 = ClassifiedAdCreated(id=uuid4(), owner_id=uuid4())
|
||||
event2 = ClassifiedAdSentForReview(id=uuid4())
|
||||
|
||||
entity = entity.apply_event(event1)
|
||||
entity = entity.apply_event(event2)
|
||||
entity = entity.apply(event1)
|
||||
entity = entity.apply(event2)
|
||||
|
||||
assert entity.get_changes() == (event1, event2)
|
||||
|
||||
@@ -52,7 +52,7 @@ def test_multiple_events_accumulate():
|
||||
def test_clear_changes_returns_instance_with_empty_events():
|
||||
entity = TestEntity()
|
||||
event = ClassifiedAdCreated(id=uuid4(), owner_id=uuid4())
|
||||
entity = entity.apply_event(event)
|
||||
entity = entity.apply(event)
|
||||
|
||||
cleared = entity.clear_changes()
|
||||
|
||||
@@ -62,7 +62,7 @@ def test_clear_changes_returns_instance_with_empty_events():
|
||||
def test_clear_changes_does_not_mutate_original():
|
||||
entity = TestEntity()
|
||||
event = ClassifiedAdCreated(id=uuid4(), owner_id=uuid4())
|
||||
entity = entity.apply_event(event)
|
||||
entity = entity.apply(event)
|
||||
|
||||
entity.clear_changes()
|
||||
|
||||
@@ -72,7 +72,7 @@ def test_clear_changes_does_not_mutate_original():
|
||||
def test_get_changes_returns_tuple():
|
||||
entity = TestEntity()
|
||||
event = ClassifiedAdCreated(id=uuid4(), owner_id=uuid4())
|
||||
entity = entity.apply_event(event)
|
||||
entity = entity.apply(event)
|
||||
|
||||
changes = entity.get_changes()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user