public async Task can_append_stream() { // PREPARE var personWasBorn = new PersonWasBorn { PersonId = Guid.NewGuid(), Date = new DateTime(2019, 10, 2) }; var personDied = new PersonDied { PersonId = Guid.NewGuid(), Date = new DateTime(2020, 10, 2) }; var fixture = await new Fixture(_fixture).Configure(); await fixture.Sut.CreateStream("testStream", new List <object> { personWasBorn }); // RUN await fixture.Sut.AppendStream("testStream", new List <object> { personDied }, 0); // ASSERT var events = new List <object>(); await foreach (var @event in fixture.Sut.GetEventsFromStream("testStream")) { events.Add(@event); } events.Should().BeEquivalentTo(personWasBorn, personDied); }
public void Handle(PersonDied message) { Person person = storage.Items <Person>().Where(p => p.Id == message.Id).Single(); DeadPerson deadPerson = new DeadPerson { Id = person.Id, Name = person.Name }; storage.Remove(person); storage.Add(deadPerson); }
public void Handle(PersonDied message) { Person person = storage.Load <Person>(message.Id); DeadPerson deadPerson = new DeadPerson(person.AggregateId) { Name = person.Name }; storage.Remove(person); storage.Add(deadPerson); }
internal void Kill(Person person) { Destroy(person.gameObject); if (person.IsContaminated) { noOfDead++; } persons.Remove(person); if (PersonDied != null) { PersonDied.Invoke(person); } }
private void Apply(PersonDied @event) { this.isAlive = false; }