public async Task JoiningNonExistentGame() { var store = new InMemoryEventStore(); var collected = new List <IEvent>(); var app = new App(store, events => { collected.AddRange(events); return(Task.CompletedTask); }); //When await app.Dispatch( new JoinGame { GameId = Guid.NewGuid(), PlayerId = "*****@*****.**" }); //Then Assert.False(collected.Any()); }
public async Task CreateGame() { var store = new InMemoryEventStore(); var collected = new List <IEvent>(); var app = new App(store, events => { collected.AddRange(events); return(Task.CompletedTask); }); //When await app.Dispatch( new CreateGame { GameId = Guid.NewGuid(), PlayerId = "*****@*****.**", Rounds = 1, Title = "test" }); //Then Assert.True(collected.OfType <GameCreated>().Count() == 1); }
private static Task Execute( InMemoryEventStore store, string streamName, Func <IEvent[], IEvent[]> f, Func <IEvent[], Task> pub) => Execute(store, streamName, data => f(data.Select(e => e.Event).ToArray()), pub);
public App(InMemoryEventStore store, Func <IEvent[], Task> pub) { this.store = store; this.pub = pub; }