From b328fbd4cb8277a59fa3a9cff5a11e9096a1b836 Mon Sep 17 00:00:00 2001 From: Haesu Gwon Date: Thu, 1 Sep 2022 12:03:32 +0900 Subject: [PATCH] [MediaContent][Non-ACR] Update Cancel test logic Change-Id: I04592cd2ab453c128114f21ff35de34318f64d2b --- .../testcase/TSMediaInfoCommand.cs | 39 +++++++++++++++++++--- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/tct-suite-vs/Tizen.Mediacontent.Tests/testcase/TSMediaInfoCommand.cs b/tct-suite-vs/Tizen.Mediacontent.Tests/testcase/TSMediaInfoCommand.cs index 9261678..1e8ccd3 100644 --- a/tct-suite-vs/Tizen.Mediacontent.Tests/testcase/TSMediaInfoCommand.cs +++ b/tct-suite-vs/Tizen.Mediacontent.Tests/testcase/TSMediaInfoCommand.cs @@ -1556,14 +1556,43 @@ namespace Tizen.Content.MediaContent.Tests [Property("CRITERIA", "MR")] [Property("COVPARAM", "string, CancellationToken")] [Property("AUTHOR", "JungHo Kim, jhyo.kim@samsung.com")] - public void CreateThumbnailAsync_WITH_CANCELLATION_CANCEL() + public async Task CreateThumbnailAsync_WITH_CANCELLATION_CANCEL() { - cts = new CancellationTokenSource(); - var task = _cmd.CreateThumbnailAsync(_cmd.Add(TestConstants.ImageFile).Id, cts.Token); + const int numberOfTasks = 20; - cts.Cancel(); + var taskArray = new Task>[numberOfTasks]; + var ctsArray = new CancellationTokenSource[numberOfTasks]; + + for (int i = 0 ; i < numberOfTasks ; i++) + { + ctsArray[i] = new CancellationTokenSource(); + } + + Func> action = (object i) => + _cmd.CreateThumbnailAsync(_cmd.Add(TestConstants.ImageFile).Id, ctsArray[(int)i].Token); + + for (int i = 0 ; i < numberOfTasks ; i++) + { + taskArray[i] = new Task>(action, i); + } + + for (int i = 0 ; i < numberOfTasks ; i++) + { + taskArray[i].Start(); + ctsArray[i].Cancel(); + } + + Task.WaitAll(taskArray); + + for (int i = 0 ; i < numberOfTasks ; i++) + { + if (taskArray[i].Result.IsCanceled) + { + Assert.Pass($"Task{i} is canceled successfully."); + } + } - Assert.That(task.IsCanceled, Is.True); + Assert.Fail("All Tasks are not canceled"); } #endregion -- 2.7.4