public void can_display_updated_room_types() { //given var rt1 = new RoomTypeAdded(Guid.NewGuid(), "1King", "test description"); var rt2 = new RoomTypeAdded(Guid.NewGuid(), "2Queen", "test description"); var rt3 = new RoomTypeAdded(Guid.NewGuid(), "3Econ", "test description"); var update = new RoomTypeDescriptionChanged(rt1.TypeId, "1Super"); //when var rm = new RoomTypeReader(() => null, new SimpleRepo(null, "Administration.Blueprint.Events", "Administration").Deserialize); rm.Apply(rt1); rm.Apply(rt2); rm.Apply(rt3); rm.Apply(update); //Then Assert.Collection(rm.Current, i => { var item = i as RoomTypeItem; Assert.NotNull(item); Assert.Equal(rt2.TypeId, item.Id); Assert.Equal(rt2.Description, item.Description, StringComparer.Ordinal); }, i => { var item = i as RoomTypeItem; Assert.NotNull(item); Assert.Equal(rt3.TypeId, item.Id); Assert.Equal(rt3.Description, item.Description, StringComparer.Ordinal); }, i => { var item = i as RoomTypeItem; Assert.NotNull(item); Assert.Equal(rt1.TypeId, item.Id); Assert.Equal(update.Description, item.Description, StringComparer.Ordinal); }); }
static void Main(string[] args) { //Bootstrap var settings = ConnectionSettings.Create() .SetDefaultUserCredentials(new UserCredentials("admin", "changeit")) .KeepReconnecting() .KeepRetrying() //.UseConsoleLogger() .Build(); var conn = EventStoreConnection.Create(settings, new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1113)); conn.ConnectAsync().Wait(); var eventNamespace = "Administration.EventModel.Events"; var eventAssembly = "Administration"; var repo = new SimpleRepo(conn, eventNamespace, eventAssembly); var roomTypeRm = new RoomTypeReader(() => conn, repo.Deserialize); var mainBus = new SimpleBus(); var adminSvc = new AdminSvc(repo); mainBus.Subscribe <AddRoomType>(adminSvc); mainBus.Subscribe <AddRoom>(adminSvc); var view = new ConsoleView(); var controller = new Controller(view, mainBus); roomTypeRm.Subscribe(model => view.RoomSummaries = model); view.Redraw(); roomTypeRm.Start(); controller.StartCommandLoop(); Console.WriteLine("press enter to exit"); Console.ReadLine(); }