public IEnumerator TestTask()
        {
            var request            = new AudioRequest(TestConstants.RemoteMp3Url, false);
            ITask <AudioClip> task = request;

            Assert.AreEqual(request, task);
            Assert.IsFalse(task.DidRun);
            Assert.IsFalse(task.IsFinished);

            // Receive via callback
            AudioClip clip = null;
            TaskListener <AudioClip> listener = new TaskListener <AudioClip>();

            listener.OnFinished += (value) => clip = value;

            // Request
            task.StartTask(listener);
            Assert.IsFalse(task.IsFinished);
            Assert.IsFalse(request.IsFinished);

            // Wait till finish
            while (!task.IsFinished)
            {
                Debug.Log("Progress: " + request.Progress);
                yield return(null);
            }

            Assert.IsTrue(task.DidRun);
            Assert.IsTrue(task.IsFinished);
            Assert.IsTrue(request.IsFinished);
            Assert.IsNotNull(request.Response);
            Assert.IsNotNull(clip);
            Assert.AreEqual(clip, request.Response.AudioData);
            Assert.AreEqual(listener.Value, clip);
        }
Esempio n. 2
0
        public void InvokeSoftDispose()
        {
            IsPlaying = false;
            IsPaused  = false;

            int playTime = GetPlayTime();

            // Stop listening to app pause event.
            Game.OnAppPause -= OnAppPaused;
            Game.OnAppFocus -= OnAppFocused;

            // Record score if not replay mode.
            if (!CurrentParameter.IsReplay)
            {
                var listener = new TaskListener <IRecord>();
                listener.OnFinished += (record) =>
                {
                    ScoreProcessor = null;
                    GameGui.HideGame(() => OnSoftDispose?.Invoke());
                };
                Model?.RecordScore(ScoreProcessor, playTime, listener);
            }
            else
            {
                GameGui.HideGame(() => OnSoftDispose?.Invoke());
            }
        }
Esempio n. 3
0
        public void TestWithNoFinishedTasks()
        {
            var tasks = new List <ManualTask>()
            {
                new ManualTask((t) => {}),
                new ManualTask((t) => {}),
                new ManualTask((t) => {})
            };

            var task     = new MultiTask(tasks);
            var listener = new TaskListener();

            task.StartTask(listener);
            Assert.AreEqual(listener, task.Listener);
            Assert.AreEqual(3, task.Tasks.Count);
            Assert.IsFalse(task.IsFinished);
            Assert.IsTrue(task.DidRun);
            Assert.AreEqual(0f, listener.TotalProgress, Delta);
            Assert.IsFalse(listener.IsFinished);

            tasks.ForEach(t => t.SetFinished());
            Assert.IsTrue(task.IsFinished);
            Assert.AreEqual(1f, listener.TotalProgress, Delta);
            Assert.IsTrue(listener.IsFinished);
        }
Esempio n. 4
0
        public override void RenderStatusById(TaskListener <List <RenderStatusResults> > taskListener,
                                              IList <string> testIds, IList <string> renderIds)
        {
            List <RenderStatusResults> results = new List <RenderStatusResults>();

            foreach (string renderId in renderIds)
            {
                List <VGRegion> selectorRegions = new List <VGRegion>();
                JToken          request         = renderRequestsById_[renderId];
                JToken          selectors       = request["selectorsToFindRegionsFor"];
                if (selectors != null && selectors is JArray selectorsArr)
                {
                    IWebDriver driver = driverProvider_.ProvideDriver();
                    foreach (JObject selectorToken in selectorsArr)
                    {
                        string      selector = selectorToken["selector"].Value <string>();
                        IWebElement elem     = driver.FindElement(By.XPath(selector));
                        Rectangle   r        = EyesSeleniumUtils.GetElementBounds(elem);
                        selectorRegions.Add(new VGRegion()
                        {
                            X = r.X, Y = r.Y, Width = r.Width, Height = r.Height
                        });
                    }
                }
                RenderStatusResults result = new RenderStatusResults()
                {
                    RenderId        = renderId,
                    Status          = RenderStatus.Rendered,
                    ImageLocation   = "http://image.some.url.com/" + renderId,
                    SelectorRegions = selectorRegions.ToArray()
                };
                results.Add(result);
            }
            taskListener.OnComplete(results);
        }
Esempio n. 5
0
        public void TestStart()
        {
            var task     = new ManualTask((t) => {});
            var listener = new TaskListener();

            task.StartTask(listener);
            Assert.IsFalse(listener.IsFinished);
            Assert.AreEqual(0f, listener.Progress, Delta);
            Assert.IsTrue(task.DidRun);
            Assert.IsFalse(task.IsRevoked.Value);
            Assert.IsFalse(task.IsFinished);
            Assert.AreEqual(listener, task.Listener);

            task.SetProgress(0.25f);
            Assert.IsFalse(listener.IsFinished);
            Assert.AreEqual(0.25f, listener.Progress, Delta);
            Assert.IsTrue(task.DidRun);
            Assert.IsFalse(task.IsRevoked.Value);
            Assert.IsFalse(task.IsFinished);
            Assert.AreEqual(listener, task.Listener);

            task.SetFinished();
            Assert.IsTrue(listener.IsFinished);
            Assert.AreEqual(1f, listener.Progress, Delta);
            Assert.IsTrue(task.DidRun);
            Assert.IsFalse(task.IsRevoked.Value);
            Assert.IsTrue(task.IsFinished);
            Assert.AreEqual(listener, task.Listener);
        }
        public void TestProgress()
        {
            var   listener = new TaskListener();
            float progress = 0f;

            listener.OnProgress += (p) => progress = p;
            Assert.AreEqual(0f, listener.Progress, Delta);
            Assert.AreEqual(0f, listener.TotalProgress, Delta);
            Assert.AreEqual(0f, progress, Delta);

            listener.SetProgress(-1f);
            Assert.AreEqual(0f, listener.Progress, Delta);
            Assert.AreEqual(0f, listener.TotalProgress, Delta);
            Assert.AreEqual(0f, progress, Delta);

            listener.SetProgress(0.5f);
            Assert.AreEqual(0.5f, listener.Progress, Delta);
            Assert.AreEqual(0.5f, listener.TotalProgress, Delta);
            Assert.AreEqual(0.5f, progress, Delta);

            listener.SetProgress(1.1f);
            Assert.AreEqual(1f, listener.Progress, Delta);
            Assert.AreEqual(1f, listener.TotalProgress, Delta);
            Assert.AreEqual(1f, progress, Delta);
        }
        public IEnumerator TestStream()
        {
            // Current limitation:
            // There is no way to check whether the loaded audio is truly a streaming audio or not.

            var request  = new AudioRequest(TestConstants.RemoteMp3Url, true);
            var listener = new TaskListener <IWebRequest>();

            request.Request(listener);

            while (!request.IsFinished)
            {
                Debug.Log("Progress: " + listener.Progress);
                yield return(null);
            }

            Assert.IsNotNull(request.Response);

            var clip = request.Response.AudioData;

            Assert.IsNotNull(clip);

            Debug.Log($"Content: {request.Response.ContentLength}, response: {request.Response.BytesLoaded}");
            Assert.LessOrEqual((double)request.Response.BytesLoaded, (double)request.Response.ContentLength);
        }
        public void TestAutoFinish()
        {
            var listener = new TaskListener();

            Assert.IsFalse(listener.IsAutoFinish);
            Assert.IsFalse(listener.IsFinished);
            listener.SetFinished();
            Assert.IsTrue(listener.IsFinished);

            listener = new TaskListener();
            listener.IsAutoFinish = true;
            Assert.IsFalse(listener.IsFinished);
            Assert.IsTrue(listener.IsAutoFinish);
            listener.SetFinished();
            Assert.IsTrue(listener.IsFinished);

            listener = new TaskListener();
            var sub = listener.CreateSubListener();

            sub.SetFinished();
            Assert.IsFalse(listener.IsFinished);
            var sub2 = listener.CreateSubListener();
            var sub3 = listener.CreateSubListener();

            listener.IsAutoFinish = true;
            Assert.IsFalse(listener.IsFinished);
            sub2.SetFinished();
            Assert.IsFalse(listener.IsFinished);
            sub3.SetFinished();
            Assert.IsTrue(listener.IsFinished);
        }
        public void TestHasOwnProgress()
        {
            var listener = new TaskListener();

            Assert.IsTrue(listener.HasOwnProgress);

            listener.SetProgress(0.5f);
            Assert.AreEqual(0.5f, listener.Progress, Delta);
            Assert.AreEqual(0.5f, listener.TotalProgress, Delta);

            var subListener = listener.CreateSubListener();

            Assert.AreEqual(0.5f, listener.Progress, Delta);
            Assert.AreEqual(0f, subListener.Progress, Delta);
            Assert.AreEqual(0.25f, listener.TotalProgress, Delta);

            listener.HasOwnProgress = false;
            Assert.IsFalse(listener.HasOwnProgress);
            Assert.AreEqual(0.5f, listener.Progress, Delta);
            Assert.AreEqual(0f, subListener.Progress, Delta);
            Assert.AreEqual(0f, listener.TotalProgress, Delta);

            listener.SetProgress(1f);
            subListener.SetProgress(0.25f);
            Assert.AreEqual(1f, listener.Progress, Delta);
            Assert.AreEqual(0.25f, subListener.Progress, Delta);
            Assert.AreEqual(0.25f, listener.TotalProgress, Delta);
        }
        public void TestTotalProgress()
        {
            var   listener = new TaskListener();
            float progress = 0f;

            listener.OnProgress += (p) => progress = p;

            listener.SetProgress(0.4f);
            Assert.AreEqual(0.4f, listener.TotalProgress, Delta);
            Assert.AreEqual(0.4f, progress, Delta);
            Assert.AreEqual(0.4f, listener.Progress, Delta);

            var   sub         = listener.CreateSubListener();
            float subProgress = 0f;

            sub.OnProgress += (p) => subProgress = p;
            Assert.AreEqual(0.2f, listener.TotalProgress, Delta);
            Assert.AreEqual(0.2f, progress, Delta);
            Assert.AreEqual(0.4f, listener.Progress, Delta);
            Assert.AreEqual(0f, subProgress, Delta);
            Assert.AreEqual(0f, sub.Progress, Delta);

            sub.SetProgress(1f);
            Assert.AreEqual(0.7f, listener.TotalProgress, Delta);
            Assert.AreEqual(0.7f, progress, Delta);
            Assert.AreEqual(0.4f, listener.Progress, Delta);
            Assert.AreEqual(1f, subProgress, Delta);
            Assert.AreEqual(1f, sub.Progress, Delta);
        }
        public IEnumerator TestTimeout()
        {
            var request  = new WebRequest(TestConstants.RemoteMp3Url, timeout: 2);
            var listener = new TaskListener <IWebRequest>();

            request.Request(listener);

            while (!request.IsFinished)
            {
                yield return(null);
            }

            Debug.Log("Stopped at progress: " + listener.Progress);
            Debug.Log("Error message: " + request.Response.ErrorMessage);

            Assert.IsNotNull(request.Response);

            if (request.Response.IsSuccess)
            {
                Assert.IsNull(request.Response.ErrorMessage);
                Debug.Log("Result was true.");
            }
            else
            {
                Assert.IsNotNull(request.Response.ErrorMessage);
                Debug.Log("Result was false");
            }
        }
Esempio n. 12
0
        private short RegisterMRListenerDescriptor(TaskListener listener)
        {
            if (listener == null)
            {
                return(0);
            }

            short returnValue = 0;

            lock (SyncMapReduce)
            {
                ResourcePool pool   = _mapReduceListenerPool;
                ResourcePool poolID = _mapReduceListenerIDPool;

                if (pool.GetResource(listener) == null)
                {
                    returnValue = ++MAPREDUCELISTENER;
                    pool.AddResource(listener, returnValue);
                    poolID.AddResource(returnValue, listener);
                }
                else
                {
                    short val = (short)pool.GetResource(listener);
                    if (val >= 0)
                    {
                        pool.AddResource(listener, returnValue);
                        poolID.AddResource(returnValue, listener);
                        returnValue = val;
                    }
                }
            }

            return(returnValue);
        }
Esempio n. 13
0
        internal void FireMapReduceCallback(string taskId, int taskstatus, string taskFailureReason, short callbackId)
        {
            TaskCompletionStatus status = TaskCompletionStatus.Success;

            switch (taskstatus)
            {
            case 0:
                status = TaskCompletionStatus.Success;
                break;

            case 1:
                status = TaskCompletionStatus.Failure;
                break;

            case 2:
                status = TaskCompletionStatus.Cancelled;
                break;
            }

            TaskResult resp = new TaskResult(status, taskId, callbackId, taskFailureReason);

            if (_mapReduceListenerIDPool != null)
            {
                ResourcePool poole    = _mapReduceListenerIDPool;
                TaskListener callback = (TaskListener)poole.GetResource(callbackId);

                if (callback != null)
                {
                    callback.Invoke(resp);
                }
            }
        }
Esempio n. 14
0
        public IEnumerator TestTask()
        {
            var request = new TextureRequest(TestConstants.RemoteImageUrl, false);
            ITask <Texture2D> promise = request;

            Assert.AreEqual(request, promise);

            // Receive via callback
            Texture2D texture  = null;
            var       listener = new TaskListener <Texture2D>();

            listener.OnFinished += (value) => texture = value;

            // Request
            promise.StartTask(listener);
            Assert.IsFalse(promise.IsFinished);
            Assert.IsFalse(request.IsFinished);

            // Wait till finish
            while (!promise.IsFinished)
            {
                Debug.Log("Progress: " + request.Progress);
                yield return(null);
            }

            Assert.IsTrue(promise.IsFinished);
            Assert.IsTrue(request.IsFinished);
            Assert.IsNotNull(request.Response);
            Assert.IsNotNull(texture);
            Assert.AreEqual(listener.Value, request.Response.TextureData);
            Assert.AreEqual(listener.Value, texture);
        }
Esempio n. 15
0
        public Task Reload(TaskListener listener = null)
        {
            return(Task.Run(async() =>
            {
                if (listener != null)
                {
                    listener.HasOwnProgress = false;
                }

                // Wait for store reloading.
                await store.Reload(listener?.CreateSubListener());

                // Run on the main thread
                UnityThread.DispatchUnattended(() =>
                {
                    // Refill the mapset list
                    allMapsets.Clear();
                    allMapsets.AddRange(store.Mapsets);

                    // TODO: Process for a case where the previously selected map no longer exists.

                    // Fill the displayed mapsets list using last search term.
                    Search(lastSearch);
                    // Finished
                    listener?.SetFinished();
                    return null;
                });
            }));
        }
Esempio n. 16
0
        public void TestGenericStart()
        {
            var task     = new ManualTask <int>();
            var listener = new TaskListener <int>();

            task.StartTask(listener);
            Assert.IsTrue(listener.IsFinished);
            Assert.AreEqual(1f, listener.Progress, Delta);
            Assert.IsTrue(task.DidRun);
            Assert.IsFalse(task.IsRevoked.Value);
            Assert.IsTrue(task.IsFinished);
            Assert.AreEqual(listener, task.Listener);
            Assert.AreEqual(default(int), listener.Value);

            task     = new ManualTask <int>((t) => t.SetFinished(100));
            listener = new TaskListener <int>();
            task.StartTask(listener);
            Assert.IsTrue(listener.IsFinished);
            Assert.AreEqual(1f, listener.Progress, Delta);
            Assert.IsTrue(task.DidRun);
            Assert.IsFalse(task.IsRevoked.Value);
            Assert.IsTrue(task.IsFinished);
            Assert.AreEqual(listener, task.Listener);
            Assert.AreEqual(100, listener.Value);
        }
Esempio n. 17
0
        public override Task Reload(TaskListener listener = null)
        {
            return(Task.Run(async() =>
            {
                // Perform internal reloading routine.
                await base.Reload(listener?.CreateSubListener());

                // Retrieve processor count.

                // Load all mapsets from the storage.
                var rawMapsets = GetAll().ToList();
                var threadedLoader = new ThreadedLoader <Mapset, Mapset>(ProcessMapsetLoad);
                var results = await threadedLoader.StartLoad(
                    8,
                    rawMapsets,
                    listener: listener?.CreateSubListener <Mapset[]>()
                    );

                // Add results to the mapsets list.
                lock (mapsets)
                {
                    mapsets.Clear();
                    for (int i = 0; i < results.Length; i++)
                    {
                        if (results[i] != null)
                        {
                            mapsets.Add(results[i]);
                        }
                    }
                }
                listener?.SetFinished();
            }));
        }
Esempio n. 18
0
        protected override void StartSessionInternal(TaskListener <RunningSession> taskListener, SessionStartInfo sessionStartInfo)
        {
            Logger.Log(TraceLevel.Info, Stage.Open, StageType.Called, new { sessionStartInfo });

            RunningSession newSession         = null;
            bool           continueInvocation = true;
            bool           callBase           = false;

            if (continueInvocation)
            {
                newSession = new RunningSession()
                {
                    isNewSession_ = false, SessionId = Guid.NewGuid().ToString()
                };
                SessionIds.Add(newSession.SessionId);
                Sessions.Add(newSession.SessionId, newSession);
                SessionsStartInfo.Add(newSession.SessionId, sessionStartInfo);
            }
            if (callBase)
            {
                base.StartSessionInternal(taskListener, sessionStartInfo);
            }
            else
            {
                EnsureHttpClient_();
                taskListener.OnComplete(newSession);
            }
        }
Esempio n. 19
0
        protected override void EndSessionInternal(TaskListener <TestResults> taskListener, SessionStopInfo sessionStopInfo)
        {
            Logger.Log("ending session: {0}", sessionStopInfo.RunningSession.SessionId);
            TestResults testResults = new TestResults();

            AfterEndSession?.Invoke(sessionStopInfo.RunningSession, sessionStopInfo.Aborted, sessionStopInfo.UpdateBaseline);
            taskListener.OnComplete(testResults);
        }
Esempio n. 20
0
            public override void collectionItemAdded(object item)
            {
                BackgroundAction action   = item as BackgroundAction;
                TaskListener     listener = new TaskListener(_controller, action);

                _actionListener.Add(action, listener);
                _controller.Invoke(new AddTaskAction(_controller, action));
            }
Esempio n. 21
0
 public Task Reload(TaskListener listener = null)
 {
     return(Task.Run(() =>
     {
         base.Reload();
         listener?.SetFinished();
     }));
 }
 public virtual Task Reload(TaskListener listener = null)
 {
     return(Task.Run(() =>
     {
         InitModules(true);
         LoadOrphanedData(listener?.CreateSubListener());
         listener.SetFinished();
     }));
 }
        public IEnumerator TestTaskRevoke()
        {
            var   request = new WebRequest(TestConstants.RemoteMp3Url);
            ITask task    = request;

            Assert.IsNotNull(task);

            // Register callback
            bool onFinishedCalled = false;
            var  listener         = new TaskListener();

            listener.OnFinished += () => onFinishedCalled = true;
            Assert.IsFalse(onFinishedCalled);

            // Start request
            task.StartTask(listener);

            // Wait till certain progress level
            while (request.Progress < 0.4f)
            {
                Debug.Log("Progress: " + request.Progress);
                yield return(null);
            }

            Assert.IsFalse(request.IsFinished);
            Assert.IsFalse(task.IsFinished);

            // Revoke the request.
            task.RevokeTask(true);
            Assert.IsFalse(request.IsFinished);
            Assert.IsFalse(task.IsFinished);

            // See if any progress is changing even after revoke.
            float lastProgress = request.Progress;
            float limit        = 3;

            while (true)
            {
                limit -= Time.deltaTime;
                if (request.Progress != lastProgress)
                {
                    Debug.Log("New progress detected! " + request.Progress);
                    Assert.Fail("There mustn't be any progressing going on!");
                }
                if (limit <= 0)
                {
                    break;
                }
                yield return(null);
            }

            Assert.IsNull(request.Response);
            Assert.IsFalse(request.IsFinished);
            Assert.IsFalse(task.IsFinished);
            Assert.IsFalse(onFinishedCalled);
        }
 public RequestPollingTaskListener(HttpRestClient restClient, Uri pollingUrl,
                                   TaskListener <HttpResponseMessage> listener, Logger logger = null)
 {
     restClient_ = restClient;
     logger_     = logger;
     pollingUrl_ = pollingUrl;
     listener_   = listener;
     OnComplete  = OnComplete_;
     OnFail      = OnFail_;
 }
Esempio n. 25
0
        public Task Reload(TaskListener listener = null)
        {
            return(Task.Run(() =>
            {
                dependencies.Inject(offlineUser);
                userStore.Reload();

                listener?.SetFinished();
            }));
        }
Esempio n. 26
0
        /// <summary>
        /// Stops listening to record retrieval task's completion.
        /// </summary>
        private void StopRecordRetrieval()
        {
            if (recordsListener != null)
            {
                recordsListener.OnFinished -= OnRecordsRetrieved;
                recordsListener             = null;

                isRetrievingRecords.Value = false;
            }
        }
        private IEnumerator InitStore(DummyStore store, int expectedCount = 0)
        {
            var listener = new TaskListener();

            store.Reload(listener).Wait();
            yield return(null);

            Assert.AreEqual(1f, listener.Progress, 0.00001f);
            Assert.AreEqual(expectedCount, store.Count);
        }
Esempio n. 28
0
        /// <summary>
        /// Returns an enumerator which awaits until the specified progress has finished.
        /// </summary>
        public IEnumerator AwaitProgress(TaskListener listener)
        {
            bool isFinished = false;

            listener.OnFinished += () => isFinished = true;
            while (!isFinished)
            {
                yield return(null);
            }
        }
        /// <summary>
        /// Starts loading the user data.
        /// </summary>
        private void LoadUserData()
        {
            SetState("Loading user data");

            TaskListener listener = new TaskListener();

            listener.OnProgress += SetProgress;
            listener.OnFinished += LoadRecordData;
            UserManager.Reload(listener);
        }
        /// <summary>
        /// Starts loading the record data.
        /// </summary>
        private void LoadRecordData()
        {
            SetState("Loading record data");

            TaskListener listener = new TaskListener();

            listener.OnProgress += SetProgress;
            listener.OnFinished += FinalizeLoad;
            RecordStore.Reload(listener);
        }