Пример #1
0
        public RunOnceResult <T> End <T>()
        {
            if (m_key == null)
            {
                throw new InvalidOperationException(Properties.Resources.RunOnceServiceKeyNotInitialized);
            }

            var result = new RunOnceResult <T>();
            var error  = m_cache.Get <string>(string.Concat(ErrorKeyPrefix, m_key));

            if (error != null)
            {
                m_validationState.AddError(error);
                result.Error       = error;
                result.IsCompleted = true;
            }
            else
            {
                var datakey = new LazyDataKey <T>(string.Concat(ResultKeyPrefix, m_key));
                if (m_cache.Get(datakey))
                {
                    if (datakey.HasValue)
                    {
                        result.Result      = datakey.Value;
                        result.IsCompleted = true;
                    }
                }
            }

            return(result);
        }
Пример #2
0
        public static void Value_HasNo_Value()
        {
            // Arrange
            var datakey = new LazyDataKey <int>("key");

            // Act
            var result = datakey.Value;

            // Assert
            Assert.False(datakey.HasValue);
            Assert.Equal(0, result);
        }
Пример #3
0
        public static void Value()
        {
            // Arrange
            var datakey = new LazyDataKey <int>("key");

            datakey.Value = 100;

            // Act
            var result = datakey.Value;

            // Assert
            Assert.True(datakey.HasValue);
            Assert.Equal(100, result);
        }
Пример #4
0
        public static void Load_HasValue()
        {
            // Arrange
            var mockFormatter = new Mock <IObjectFormatter>(MockBehavior.Strict);
            var datakey       = new LazyDataKey <int>("key");

            datakey.Initialize(mockFormatter.Object);

            // Act
            datakey.Load(new ArraySegment <byte>(new byte[] { }), 0);

            // Assert
            Assert.True(datakey.HasValue);
            mockFormatter.VerifyAll();
        }
Пример #5
0
        public static void Load_Value()
        {
            // Arrange
            var mockFormatter = new Mock <IObjectFormatter>(MockBehavior.Strict);
            var datakey       = new LazyDataKey <int>("key");

            mockFormatter
            .Setup(formatter => formatter.Deserialize <int>(It.IsAny <ArraySegment <byte> >(), 7))
            .Returns(100);
            datakey.Initialize(mockFormatter.Object);

            // Act
            datakey.Load(new ArraySegment <byte>(new byte[] { }), 7);
            mockFormatter.Verify(formatter => formatter.Deserialize <int>(It.IsAny <ArraySegment <byte> >(), 7), Times.Never());
            Assert.Equal(100, datakey.Value);
            mockFormatter.Verify(formatter => formatter.Deserialize <int>(It.IsAny <ArraySegment <byte> >(), 7), Times.Once());

            // Assert
            mockFormatter.VerifyAll();
        }