public void CreateRandomBets_GivenXBatchSize_ReturnsXInBatchSize(int numberOfBets, int maxBetsBatchSize) { // Given var betsRecieved = new List<List<Bet>>(); var randomBetDataProvider = new RandomBetDataProvider(numberOfBets, maxBetsBatchSize); randomBetDataProvider.BetsProvided += (sender, args) => { betsRecieved.Add(new List<Bet>(args.Bets)); }; randomBetDataProvider.BetsProviderFinished += (sender, args) => { lock (_lockObject) { Monitor.Pulse(_lockObject); } }; // When randomBetDataProvider.Start(); lock (_lockObject) { Monitor.Wait(_lockObject, TimeOut); } // Then var lastBatch = betsRecieved.Last(); foreach (var betsRecievedBatch in betsRecieved) { if(betsRecievedBatch != lastBatch) Assert.That(betsRecievedBatch.Count, Is.EqualTo(maxBetsBatchSize)); else Assert.That(betsRecievedBatch.Count, Is.LessThanOrEqualTo(maxBetsBatchSize)); } }
public void CreateRandomBets_GivenXBets_ReturnsXBets(int numberOfBets) { // Given var betsRecieved = new List<Bet>(); var randomBetDataProvider = new RandomBetDataProvider(numberOfBets); randomBetDataProvider.BetsProvided += (sender, args) => { betsRecieved.AddRange(args.Bets); }; randomBetDataProvider.BetsProviderFinished += (sender, args) => { lock (_lockObject) { Monitor.Pulse(_lockObject); } }; // When randomBetDataProvider.Start(); lock (_lockObject) { Monitor.Wait(_lockObject, TimeOut); } // Then Assert.That(betsRecieved.Count, Is.EqualTo(numberOfBets)); }
public BetDataProvider CreateRandomBetDataProvider(int numberOfBets, int maxBetBatchSize) { var randomBetDataProvider = new RandomBetDataProvider(numberOfBets, maxBetBatchSize); return randomBetDataProvider; }