public void NoNeedMoveWhileMoving()
        {
            // NOTE : Arrange.
            var mock = new Mock<IWatch>();
            mock.Setup(w => w.Now()).Returns(new DateTime(2013, 01, 22));
            bool needStop = false;
            var m = new SlothMoveByTimeSingle<object>(() => {
                while (!needStop) {
                    Thread.Sleep(1);
                }
                return null;
            }, new TimeSpan(100, 0, 0), default(int), mock.Object);
            mock.Setup(w => w.Now()).Returns(new DateTime(2013, 02, 22));

            var thread = new Thread(() => m.Move(0));
            thread.Start();
            Thread.Sleep(1);

            // NOTE : Act.
            var isneed = m.IsNeedMove;
            needStop = true;

            // NOTE : Assert.
            Assert.IsFalse(isneed);
        }
        public void NeedMoveFirstTimeTest()
        {
            // NOTE : Arrange.
            var mock = new Mock<IWatch>();
            mock.Setup(w => w.Now()).Returns(new DateTime(2013, 01, 22));
            var m = new SlothMoveByTimeSingle<object>(() => null, new TimeSpan(100, 0, 0), default(int), mock.Object);

            // NOTE : Act.
            var isneed = m.IsNeedMove;

            // NOTE : Assert.
            Assert.IsTrue(isneed);
        }