public void Constructor_doesnt_run_initializer()
        {
            var initialized = false;
            var _ = new LazyEnumerator<object>(
                () =>
                {
                    initialized = true;
                    return null;
                });

            Assert.False(initialized);
        }
        public void Reset_doesnt_run_initializer()
        {
            var initialized = false;
            var enumerator = new LazyEnumerator<object>(
                () =>
                {
                    initialized = true;
                    return new Mock<ObjectResult<object>>().Object;
                });

            enumerator.Reset();

            Assert.False(initialized);
        }
        public void MoveNext_runs_initializer()
        {
            var mockShaper = Core.Objects.MockHelper.CreateShaperMock<int>();
            mockShaper.Setup(m => m.GetEnumerator()).Returns(
                () => new DbEnumeratorShim<int>(Enumerable.Range(1, 1).GetEnumerator()));
            var mockObjectResult = new Mock<ObjectResult<int>>(mockShaper.Object, null, null) 
                { CallBase = true };

            var initialized = false;
            var enumerator = new LazyEnumerator<int>(
                () =>
                {
                    initialized = true;
                    return mockObjectResult.Object;
                });

            Assert.True(enumerator.MoveNext());

            Assert.True(initialized);
            Assert.Equal(1, enumerator.Current);
        }
 public LazyStream(FileInfo file, Encoding encoding)
 {
     le = new LazyEnumerator(file, encoding);
 }