示例#1
0
        public IEnumerator TimeoutReuse() => UniTask.ToCoroutine(async() =>
        {
            var controller = new TimeoutController(DelayType.DeltaTime);

            var token = controller.Timeout(TimeSpan.FromSeconds(2));

            var complete = new UniTaskCompletionSource();
            token.RegisterWithoutCaptureExecutionContext(() =>
            {
                complete.TrySetResult(); // reuse, used same token?
            });

            await UniTask.Delay(TimeSpan.FromMilliseconds(100));
            controller.Reset();

            controller.IsTimeout().Should().BeFalse();

            var sw = Stopwatch.StartNew();

            controller.Timeout(TimeSpan.FromSeconds(5));

            await complete.Task;

            UnityEngine.Debug.Log(UnityEngine.Time.timeScale);
            Between(TimeSpan.FromSeconds(4.9), sw.Elapsed, TimeSpan.FromSeconds(5.1));

            controller.IsTimeout().Should().BeTrue();
        });
示例#2
0
        public override void Given()
        {
            _resultsAndCertificationConfiguration = new ResultsAndCertificationConfiguration {
                DfeSignInSettings = new DfeSignInSettings {
                    Timeout = 2
                }
            };
            _timeoutController = new TimeoutController(_resultsAndCertificationConfiguration, CacheService);

            var httpContext = new ClaimsIdentityBuilder <TimeoutController>(_timeoutController)
                              .Add(CustomClaimTypes.UserId, Guid.NewGuid().ToString())
                              .Build()
                              .HttpContext;

            HttpContextAccessor.HttpContext.Returns(httpContext);
            CacheKey = CacheKeyHelper.GetCacheKey(HttpContextAccessor.HttpContext.User.GetUserId(), CacheConstants.UserSessionActivityCacheKey);

            var routeData = new RouteData();

            routeData.Values.Add("controller", "Timeout");
            routeData.Values.Add("action", nameof(TimeoutController.GetActiveDurationAsync));

            var controllerActionDescriptor = new ControllerActionDescriptor
            {
                ControllerName = "Timeout",
                ActionName     = nameof(TimeoutController.GetActiveDurationAsync)
            };

            var actionContext = new ActionContext(HttpContextAccessor.HttpContext, routeData, controllerActionDescriptor);

            _actionExecutingContext = new ActionExecutingContext(actionContext, new List <IFilterMetadata>(), new Dictionary <string, object>(), _timeoutController);
        }
示例#3
0
 private void InitializeControllerInstances()
 {
     this.ScoreController      = ScoreboardBLL.ScoreController.GetScoreController();
     this.FoulController       = ScoreboardBLL.FoulController.GetFoulController();
     this.ClockController      = ScoreboardBLL.ClockController.GetClockController();
     this.PeriodController     = ScoreboardBLL.PeriodController.GetPeriodController();
     this.PossessionController = ScoreboardBLL.PossessionController.GetPossessionController();
     this.TimeoutController    = ScoreboardBLL.TimeoutController.GetTimeoutController();
 }
示例#4
0
        public IEnumerator LinkedTokenTest() => UniTask.ToCoroutine(async() =>
        {
            var cts = new CancellationTokenSource();

            var controller = new TimeoutController(cts);
            var token      = controller.Timeout(TimeSpan.FromSeconds(2));

            await UniTask.DelayFrame(3);

            cts.Cancel();

            token.IsCancellationRequested.Should().BeTrue();

            controller.Dispose();
        });
示例#5
0
        public IEnumerator TimeoutController() => UniTask.ToCoroutine(async() =>
        {
            var controller = new TimeoutController();

            var token = controller.Timeout(TimeSpan.FromSeconds(1));

            var complete = new UniTaskCompletionSource();
            token.RegisterWithoutCaptureExecutionContext(() =>
            {
                complete.TrySetResult();
            });

            var sw = Stopwatch.StartNew();
            await complete.Task;
            Between(TimeSpan.FromSeconds(0.9), sw.Elapsed, TimeSpan.FromSeconds(1.1));

            controller.IsTimeout().Should().BeTrue();
        });
 public void TestInitialize()
 {
     timeoutController = TimeoutController.GetTimeoutController();
     methodWasCalled   = false;
 }