コード例 #1
0
        public void SettingTheValuePropertyThrowsWhenIsLockedIsTrue()
        {
            var semimutable = new Semimutable <int>(1);

            semimutable.LockValue();

            Assert.Throws <InvalidOperationException>(() => semimutable.Value = 2);
        }
コード例 #2
0
        public void CallingTheResetValueMethodThrowsWhenIsLockedIsTrue()
        {
            var semimutable = new Semimutable <int>(1);

            semimutable.LockValue();

            Assert.Throws <InvalidOperationException>(() => semimutable.ResetValue());
        }
コード例 #3
0
        public void IsLockedIsTrueAfterLockValueIsCalled()
        {
            var semimutable = new Semimutable <int>(1);

            semimutable.LockValue();

            Assert.True(semimutable.IsLocked);
        }
コード例 #4
0
        public void InvokingTheMethodReturnedFromGetUnlockMethodUnlocksTheValue()
        {
            var semimutable = new Semimutable <int>(1);

            semimutable.LockValue();

            var unlockValue = semimutable.GetUnlockValueMethod();

            unlockValue.Invoke(semimutable, null);

            Assert.False(semimutable.IsLocked);

            semimutable.Value = 2;

            Assert.Equal(2, semimutable.Value);
        }