public void 存在しない実行コンテキストを指定したら例外()
 {
     var comp = new SimpleComponent("test");
     AssertEx.Throws<ArgumentOutOfRangeException>(() => comp.DeactivateAsync(1).Wait());
 }
        public void 状態が変化しなかったらタイムアウト()
        {
            var comp = new SimpleComponent("test");
            comp.OnDeactivated = _ =>
            {
                Thread.Sleep(TimeSpan.FromSeconds(3));
                return ReturnCode_t.RTC_OK;
            };

            comp.ActivateAsync().Result.Is(ReturnCode_t.RTC_OK);
            AssertEx.Throws<TimeoutException>(() =>
                    comp.DeactivateAsync(timeout: TimeSpan.FromSeconds(1)).Wait()
                );
        }
        public void コンポーネントの非活性化()
        {
            var comp = new SimpleComponent("test");

            bool calledDeactivated = false;
            comp.OnDeactivated = _ =>
            {
                calledDeactivated = true;
                return ReturnCode_t.RTC_OK;
            };

            comp.ActivateAsync().Result.Is(ReturnCode_t.RTC_OK);
            comp.DeactivateAsync().Result.Is(ReturnCode_t.RTC_OK);

            calledDeactivated.Is(true);
        }
 public void 活性化してないのにDeactivateしたら失敗()
 {
     var comp = new SimpleComponent("test");
     comp.DeactivateAsync().Result.Is(ReturnCode_t.PRECONDITION_NOT_MET);
 }