public void When_updating_published_updates_conference() { _service.Publish(this._conference.Id); Assert.IsTrue(_service.FindConference(this._conference.Slug).IsPublished); _service.Unpublish(this._conference.Id); Assert.IsFalse(_service.FindConference(this._conference.Slug).IsPublished); }
public static ConferenceInfo PopulateConfereceData(Table table) { var svc = new ConferenceService(BuildEventBus()); var conference = BuildInternalConferenceInfo(table); svc.CreateConference(conference); svc.Publish(conference.Id); // publish seats ICollection <SeatType> createdSeats = CreateSeats(table); foreach (var seat in createdSeats) { svc.CreateSeat(conference.Id, seat); } var created = MessageLogHelper.CollectEvents <AvailableSeatsChanged>(conference.Id, createdSeats.Count); if (!created) { throw new TimeoutException("Conference creation error"); } // Update the confInfo with the created seats conference.Seats.AddRange(createdSeats); return(conference); }
public void when_creating_conference_and_seat_then_publishes_seat_created_on_publish() { var conference = new ConferenceInfo { OwnerEmail = "*****@*****.**", OwnerName = "test owner", AccessCode = "qwerty", Name = "test conference", Description = "test conference description", Location = "redmond", Slug = "test", StartDate = DateTime.UtcNow, EndDate = DateTime.UtcNow.Add(TimeSpan.FromDays(2)), }; service.CreateConference(conference); var seat = new SeatType { Name = "seat", Description = "description", Price = 100, Quantity = 100 }; service.CreateSeat(conference.Id, seat); service.Publish(conference.Id); var e = busEvents.OfType <SeatCreated>().FirstOrDefault(); Assert.NotNull(e); Assert.Equal(e.SourceId, seat.Id); }
public async Task <IActionResult> Publish(ConferenceIdentity identity) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var conference = await this._service.FindConference(identity.Slug); if (conference == null) { return(NotFound()); } // check access if (string.IsNullOrWhiteSpace(identity.AccessCode) || !string.Equals(identity.AccessCode, conference.AccessCode, StringComparison.Ordinal)) { return(Unauthorized("Invalid access code.")); } await _service.Publish(conference.Id); return(Ok()); }
public void then_seat_created_is_published_on_publish() { service.Publish(this.conference.Id); var e = busEvents.OfType <SeatCreated>().Single(); var seat = this.conference.Seats.Single(); Assert.Equal(seat.Id, e.SourceId); Assert.Equal(seat.Name, e.Name); Assert.Equal(seat.Description, e.Description); Assert.Equal(seat.Price, e.Price); Assert.Equal(seat.Quantity, e.Quantity); }
public static ConferenceInfo PopulateConfereceData(Table table) { string conferenceSlug = Slug.CreateNew().Value; var svc = new ConferenceService(BuildEventBus()); var conference = BuildConferenceInfo(table, conferenceSlug); svc.CreateConference(conference); svc.Publish(conference.Id); Registration.ReadModel.Conference published = null; while(published == null || !published.IsPublished || published.Seats.Count != table.Rows.Count) { published = RegistrationHelper.FindConference(conference.Id); Thread.Sleep(100); } return conference; }
public static ConferenceInfo PopulateConfereceData(Table table) { var svc = new ConferenceService(BuildEventBus()); var conference = BuildInternalConferenceInfo(table); svc.CreateConference(conference); svc.Publish(conference.Id); // publish seats ICollection<SeatType> createdSeats = CreateSeats(table); foreach (var seat in createdSeats) { svc.CreateSeat(conference.Id, seat); } var created = MessageLogHelper.CollectEvents<AvailableSeatsChanged>(conference.Id, createdSeats.Count); if(!created) throw new TimeoutException("Conference creation error"); // Update the confInfo with the created seats conference.Seats.AddRange(createdSeats); return conference; }
public void WhenTheConferenceIsPublished() { conferenceService.Publish(conference.Id); }