public void EnterLoopSearchAndLeaveLoopSearchReturns()
        {
            var sut = new StormSourceState();

            sut = sut.EnterLoopSearch();
            sut.LeaveLoopSearch();
        }
        public void EnterUpdateAndEnterLoopSearchReturns()
        {
            var sut = new StormSourceState();

            sut = sut.EnterUpdate();
            sut.EnterLoopSearch();
        }
        public void EnterUpdateAndLeaveUpdateReturns()
        {
            var sut = new StormSourceState();

            sut = sut.EnterUpdate();
            sut.LeaveUpdate(true);
        }
        public void EnterUpdateAndEnterUpdateThrows()
        {
            var sut = new StormSourceState();

            sut = sut.EnterUpdate();

            Assert.Throws <InvalidOperationException>(() => sut.EnterUpdate());
        }
        public void EnterLoopSearchAndLeaveUpdateThrows()
        {
            var sut = new StormSourceState();

            sut = sut.EnterLoopSearch();

            Assert.Throws <InvalidOperationException>(() => sut.LeaveUpdate(true));
        }
        public void EnterUpdateReturns()
        {
            var sut = new StormSourceState();

            sut.EnterUpdate();
        }
        public void LeaveUpdateThrows()
        {
            var sut = new StormSourceState();

            Assert.Throws <InvalidOperationException>(() => sut.LeaveUpdate(true));
        }
        public void LeaveLoopSearchThrows()
        {
            var sut = new StormSourceState();

            Assert.Throws <InvalidOperationException>(() => sut.LeaveLoopSearch());
        }