public void NullProducer()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         var ordered = new OrderedDataProducer <int>(null, null);
     });
 }
        public void OrderedProducerNullComparer()
        {
            var producer = new DataProducer <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]);
            }
        }
        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
     });
 }
 public void NullProducer()
 {
     var ordered = new OrderedDataProducer <int>(null, null);
 }