public void ThenAllTheConferencesAreCreated() { var failureCollector = new ConcurrentBag <string>(); Parallel.ForEach(slugs, s => { var mConf = ConferenceHelper.FindConference(s); if (mConf == null) { failureCollector.Add(string.Format("Conference with slug '{0}' not found in management repository.", s)); return; } var success = MessageLogHelper.CollectEvents <AvailableSeatsChanged>(mConf.Id, seatsInfo.Rows.Count); if (!success) { failureCollector.Add(string.Format("Some seats were not found in Conference '{0}'", mConf.Name)); } }); if (failureCollector.Count > 0) { var sb = new StringBuilder(); failureCollector.ToList().ForEach(s => sb.AppendLine(s)); Assert.True(failureCollector.Count == 0, sb.ToString()); // raise error with all the failures } }
public void ThenTheNewSeatTypesWithThisInformationAreCreated(Table table) { var conferenceInfo = ConferenceHelper.FindConference(ScenarioContext.Current.Get <string>("slug")); var seats = conferenceInfo.Seats.ToList(); foreach (var row in table.Rows) { Assert.True(seats.Any(s => s.Name == row["Name"])); Assert.True(seats.Any(s => s.Description == row["Description"])); Assert.True(seats.Any(s => s.Quantity == int.Parse(row["Quantity"]))); Assert.True(seats.Any(s => s.Price == decimal.Parse(row["Price"]))); } }