Beispiel #1
0
        public async Task ShouldBeCompletedСonsequentiallyAsync()
        {
            var env = await TestEnvironment.CreateSimpleAsync();

            var man = new AsyncTaskManager(new MockConfigurationStorage());

            man.MaxNumberOfTasksRunning = 1;
            List <LockTask> tasks = new List <LockTask>();

            for (int i = 0; i < 10; i++)
            {
                var newTask = new LockTask(env.Account);
                tasks.Add(newTask);
                man.Add(newTask);
            }
            for (var i = 0; i < 10; i++)
            {
                var currentTask = tasks[i];
                currentTask.locker.Set();
                Assert.IsTrue(currentTask.CompleteWaitHandle.WaitOne());
                Assert.AreEqual(AsyncTaskState.Completed, currentTask.State);
                for (var k = i + 2; k < 10; k++)
                {
                    var task = tasks[k];
                    Assert.AreEqual(AsyncTaskState.Waiting, task.State);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        ///  ミューテックスを取得<br />
        /// </summary>
        ///
        /// <returns>IEnumerator</returns>
        /// <param name="callback">コールバックハンドラ</param>
        /// <param name="request">リクエストパラメータ</param>
        public IEnumerator Lock(
            Request.LockRequest request,
            UnityAction <AsyncResult <Result.LockResult> > callback
            )
        {
            var task = new LockTask(request, callback);

            return(Gs2WebSocketSession.Execute(task));
        }
Beispiel #3
0
 public void ShouldBeAsync()
 {
     var man = new AsyncTaskManager(new MockConfigurationStorage());
     // very long task
     var task = new LockTask(100000);
     man.Add(task);
     // wait short a time and check state
     Assert.IsFalse(task.CompleteWaitHandle.WaitOne(100));
     Assert.AreNotEqual(AsyncTaskState.Completed, task.State);
     Assert.IsFalse(task.ok);
 }
Beispiel #4
0
        public void ShouldBeCompletedAtTime()
        {
            var man  = new AsyncTaskManager(new MockConfigurationStorage());
            var task = new LockTask();

            man.Add(task);
            Assert.IsFalse(task.ok);
            task.locker.Set();
            Assert.IsTrue(task.CompleteWaitHandle.WaitOne());
            Assert.IsTrue(task.ok);
            Assert.AreEqual(AsyncTaskState.Completed, task.State);
        }
Beispiel #5
0
        public void ShouldBeAsync()
        {
            var man = new AsyncTaskManager(new MockConfigurationStorage());
            // very long task
            var task = new LockTask(100000);

            man.Add(task);
            // wait short a time and check state
            Assert.IsFalse(task.CompleteWaitHandle.WaitOne(100));
            Assert.AreNotEqual(AsyncTaskState.Completed, task.State);
            Assert.IsFalse(task.ok);
        }
Beispiel #6
0
        /// <summary>
        ///  ミューテックスを取得<br />
        /// </summary>
        ///
        /// <returns>IEnumerator</returns>
        /// <param name="callback">コールバックハンドラ</param>
        /// <param name="request">リクエストパラメータ</param>
        public IEnumerator Lock(
            Request.LockRequest request,
            UnityAction <AsyncResult <Result.LockResult> > callback
            )
        {
            var task = new LockTask(request, callback);

            if (_certificateHandler != null)
            {
                task.UnityWebRequest.certificateHandler = _certificateHandler;
            }
            return(Gs2RestSession.Execute(task));
        }
Beispiel #7
0
        public async Task ShouldBeCompletedhHierarchically()
        {
            var env = await TestEnvironment.CreateSimpleAsync();

            var createFolder    = new LockTask(env.Account);
            var createSubfolder = new LockTask(env.Account, 10, new AsyncTask[] { createFolder });
            var uploadFile1     = new LockTask(env.Account, 10, new AsyncTask[] { createSubfolder });
            var uploadFile2     = new LockTask(env.Account, 10, new AsyncTask[] { createSubfolder });
            var deleteFile2     = new LockTask(env.Account, 10, new AsyncTask[] { uploadFile2 });

            var man = new AsyncTaskManager(new MockConfigurationStorage());

            man.Add(createFolder);
            man.Add(createSubfolder);
            man.Add(uploadFile1);
            man.Add(uploadFile2);
            man.Add(deleteFile2);

            createFolder.locker.Set();

            Assert.IsFalse(createSubfolder.ok);
            createSubfolder.locker.Set();

            Assert.IsFalse(uploadFile1.ok);
            uploadFile1.locker.Set();

            Assert.IsFalse(uploadFile2.ok);
            uploadFile2.locker.Set();

            Assert.IsFalse(deleteFile2.ok);
            deleteFile2.locker.Set();

            Assert.IsTrue(deleteFile2.CompleteWaitHandle.WaitOne());
            Assert.IsTrue(createFolder.ok);
            Assert.IsTrue(createSubfolder.ok);
            Assert.IsTrue(uploadFile1.ok);
            Assert.IsTrue(uploadFile2.ok);
            Assert.IsTrue(deleteFile2.ok);
        }
Beispiel #8
0
 public async Task ShouldBeCompletedСonsequentiallyAsync()
 {
     var env = await TestEnvironment.CreateSimpleAsync();
     var man = new AsyncTaskManager(new MockConfigurationStorage());
     man.MaxNumberOfTasksRunning = 1;
     List<LockTask> tasks = new List<LockTask>();
     for (int i = 0; i < 10; i++)
     {
         var newTask = new LockTask(env.Account);
         tasks.Add(newTask);
         man.Add(newTask);
     }
     for (var i = 0; i < 10; i++)
     {
         var currentTask = tasks[i];
         currentTask.locker.Set();
         Assert.IsTrue(currentTask.CompleteWaitHandle.WaitOne());
         Assert.AreEqual(AsyncTaskState.Completed, currentTask.State);
         for (var k = i + 2; k < 10; k++)
         {
             var task = tasks[k];
             Assert.AreEqual(AsyncTaskState.Waiting, task.State);
         }
     }
 }
Beispiel #9
0
 public void ShouldBeCompletedAtTime()
 {
     var man = new AsyncTaskManager(new MockConfigurationStorage());
     var task = new LockTask();
     man.Add(task);
     Assert.IsFalse(task.ok);
     task.locker.Set();
     Assert.IsTrue(task.CompleteWaitHandle.WaitOne());
     Assert.IsTrue(task.ok);
     Assert.AreEqual(AsyncTaskState.Completed, task.State);
 }
Beispiel #10
0
        public async Task ShouldBeCompletedhHierarchically()
        {
            var env = await TestEnvironment.CreateSimpleAsync();
            var createFolder = new LockTask(env.Account);
            var createSubfolder = new LockTask(env.Account, 10, new AsyncTask[] { createFolder });
            var uploadFile1 = new LockTask(env.Account, 10, new AsyncTask[] { createSubfolder });
            var uploadFile2 = new LockTask(env.Account, 10, new AsyncTask[] { createSubfolder });
            var deleteFile2 = new LockTask(env.Account, 10, new AsyncTask[] { uploadFile2 });

            var man = new AsyncTaskManager(new MockConfigurationStorage());

            man.Add(createFolder);
            man.Add(createSubfolder);
            man.Add(uploadFile1);
            man.Add(uploadFile2);
            man.Add(deleteFile2);

            createFolder.locker.Set();

            Assert.IsFalse(createSubfolder.ok);
            createSubfolder.locker.Set();

            Assert.IsFalse(uploadFile1.ok);
            uploadFile1.locker.Set();

            Assert.IsFalse(uploadFile2.ok);
            uploadFile2.locker.Set();

            Assert.IsFalse(deleteFile2.ok);
            deleteFile2.locker.Set();

            Assert.IsTrue(deleteFile2.CompleteWaitHandle.WaitOne());
            Assert.IsTrue(createFolder.ok);
            Assert.IsTrue(createSubfolder.ok);
            Assert.IsTrue(uploadFile1.ok);
            Assert.IsTrue(uploadFile2.ok);
            Assert.IsTrue(deleteFile2.ok);
        }