public void ProduceAfterEnd() { var producer = new CompliantProducer <int>(); var ordered = new OrderedDataProducer <int>(producer, null).ToList(); producer.ProduceAndEnd(1, 3, 0, 2, 4); for (int i = 0; i < 5; i++) { Assert.AreEqual(i, ordered[i], "verify working first"); } producer.Produce(6); // boom }
public void EndTwice() { Assert.Throws <InvalidOperationException>(() => { var producer = new CompliantProducer <int>(); var ordered = new OrderedDataProducer <int>(producer, null).ToList(); producer.ProduceAndEnd(1, 3, 0, 2, 4); for (int i = 0; i < 5; i++) { Assert.AreEqual(i, ordered[i], "verify working first"); } producer.End(); // boom }); }