Bytes2you.Validation.UnitTests.Helpers.PortableLazyTests.Value_Should.InvokeOnlyOnceValueFactory_WhenValueIsCalled C# (CSharp) Method

InvokeOnlyOnceValueFactory_WhenValueIsCalled() private method

private InvokeOnlyOnceValueFactory_WhenValueIsCalled ( ) : void
return void
        public void InvokeOnlyOnceValueFactory_WhenValueIsCalled()
        {
            // Arrange.
            int valueFactoryCallCount = 0;
            object value = new object();

            PortableLazy<object> lazy =
                new PortableLazy<object>(
                () => 
                {
                    valueFactoryCallCount++; 
                    return value; 
                });

            // Act & Assert.
            for (int i = 0; i < 5; i++)
            {
                Assert.AreSame(value, lazy.Value);
            }

            Assert.AreEqual(1, valueFactoryCallCount);
        }
    }