public static void Initialize() { if (Directory.Exists(BaseSettings.StorageFolder)) { Directory.Delete(BaseSettings.StorageFolder, true); } if (Directory.Exists(ThumbnailFileHandlingTests.t1RootFolder)) { Directory.Delete(ThumbnailFileHandlingTests.t1RootFolder, true); } BaseSettings.SubFolder = String.Empty; ThumbnailFileHandlingTests.thumbNailFallbackImage1TargetFilePath = Path.Combine(BaseSettings.ThumbnailFallbackImageFolder, "image1.png"); ThumbnailFileHandlingTests.thumbNailFallbackFileExistedImage12TargetFilePath = Path.Combine(BaseSettings.ThumbnailFallbackImageFolder, "image12.png"); MainWindowViewModel mainWindowViewModel = new MainWindowViewModel(BaseSettings.UserSuffix, null, out _, out ThumbnailFileHandlingTests.templateList, out _); ThumbnailFileHandlingTests.uploadListViewModel = (UploadListViewModel)mainWindowViewModel.CurrentViewModel; mainWindowViewModel.TabNo = 1; ThumbnailFileHandlingTests.templateViewModel = (TemplateViewModel)mainWindowViewModel.CurrentViewModel; Directory.CreateDirectory(ThumbnailFileHandlingTests.t1RootFolder); Directory.CreateDirectory(Path.Combine(ThumbnailFileHandlingTests.t1RootFolder, "videos")); File.Copy(Path.Combine(TestContext.CurrentContext.TestDirectory, "TestAssets", "video1.mkv"), ThumbnailFileHandlingTests.t1RootVideo1FilePath); ThumbnailFileHandlingTests.t1 = new Template("T1", null, TemplateMode.FolderBased, ThumbnailFileHandlingTests.t1RootFolder, null, ThumbnailFileHandlingTests.templateList); ThumbnailFileHandlingTests.t2 = new Template("T2", null, TemplateMode.FolderBased, null, null, ThumbnailFileHandlingTests.templateList); ThumbnailFileHandlingTests.t3 = new Template("T3", null, TemplateMode.FolderBased, null, null, ThumbnailFileHandlingTests.templateList); ThumbnailFileHandlingTests.templateViewModel.AddTemplate(t1); ThumbnailFileHandlingTests.templateViewModel.AddTemplate(t2); ThumbnailFileHandlingTests.templateViewModel.AddTemplate(t3); }
private void CUpload_Dropped(object sender, DragEventArgs e) { base.OnDrop(e); UploadControl uploadControlToMove = (UploadControl)e.Data.GetData("UploadControl"); UploadControl uploadControlAtTargetPosition = (UploadControl)sender; UploadListViewModel uploadListViewModel = (UploadListViewModel)this.DataContext; uploadListViewModel.ReOrder(((UploadViewModel)uploadControlToMove.DataContext).Upload, ((UploadViewModel)uploadControlAtTargetPosition.DataContext).Upload); e.Handled = true; }
private void Image_Drop(object sender, DragEventArgs e) { UploadListViewModel uploadListViewModel = (UploadListViewModel)((MainWindowViewModel)this.DataContext).CurrentViewModel; string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); List <Upload> uploads = new List <Upload>(); foreach (string file in files) { uploads.Add(new Upload(file)); } uploadListViewModel.AddUploads(uploads); }
public static void ReferencesAreEqual() { Guid uploadWithTemplateGuid = Guid.Parse("e1957955-c88b-4185-90f5-ce1c9fbfe08d"); Guid uploadWithoutTemplateGuid = Guid.Parse("0f179547-8981-4509-b167-b84d1fdbc2e6"); UploadList uploadList; TemplateList templateList; PlaylistList playlistList; MainWindowViewModel mainWindowViewModel = new MainWindowViewModel(BaseSettings.UserSuffix, BaseSettings.SubFolder, out uploadList, out templateList, out playlistList); UploadListViewModel uploadListViewModel = (UploadListViewModel)mainWindowViewModel.CurrentViewModel; mainWindowViewModel.TabNo = 1; TemplateViewModel templateViewModel = (TemplateViewModel)mainWindowViewModel.CurrentViewModel; mainWindowViewModel.TabNo = 2; PlaylistViewModel playlistViewModel = (PlaylistViewModel)mainWindowViewModel.CurrentViewModel; Assert.IsTrue(uploadList.UploadCount == 2); Assert.IsTrue(templateList.TemplateCount == 1); Upload uploadWithTemplate = uploadList.GetUpload(upload => upload.Guid == uploadWithTemplateGuid); Upload uploadWithoutTemplate = uploadList.GetUpload(upload => upload.Guid == uploadWithoutTemplateGuid); Template template = templateList.GetTemplate(0); Playlist playlist = playlistList.GetPlaylist(0); Assert.IsTrue(template.Uploads.Count == 1); Assert.IsTrue(template.Uploads[0] == uploadWithTemplate); Assert.IsTrue(uploadListViewModel.ObservableUploadViewModels.Count() == 2); Assert.IsTrue(uploadListViewModel.ObservableUploadViewModels.GetUploadByGuid(uploadWithTemplateGuid).Upload == uploadWithTemplate); Assert.IsTrue(uploadListViewModel.ObservableUploadViewModels.GetUploadByGuid(uploadWithoutTemplateGuid).Upload == uploadWithoutTemplate); Assert.IsTrue(uploadListViewModel.ObservableTemplateViewModelsInclAllNone[2].Template == template); Assert.IsTrue(uploadListViewModel.ObservableTemplateViewModelsInclAllNone[0].Template == uploadListViewModel.DeleteSelectedTemplate.Template); Assert.IsTrue(uploadListViewModel.ObservableTemplateViewModelsInclAllNone[0] == uploadListViewModel.DeleteSelectedTemplate); Assert.IsTrue(uploadListViewModel.StatusesInclAll[5] == uploadListViewModel.DeleteSelectedUploadStatus); Assert.IsTrue(templateViewModel.Template == template); Assert.IsTrue(templateViewModel.ObservableTemplateViewModels[0].Template == template); Assert.IsTrue(templateViewModel.ObservablePlaylistViewModels[0].Playlist == playlist); Assert.IsTrue(templateViewModel.ObservableTemplateViewModels[0] == templateViewModel.SelectedTemplate); Assert.IsTrue(templateViewModel.SelectedTemplate.Template == template); Assert.IsTrue(templateViewModel.ObservablePlaylistViewModels[0] == templateViewModel.SelectedPlaylist); Assert.IsTrue(playlistViewModel.Playlist == playlist); Assert.IsTrue(playlistViewModel.ObservablePlaylistViewModels[0].Playlist == playlist); Assert.IsTrue(playlistViewModel.ObservablePlaylistViewModels[0] == playlistViewModel.SelectedPlaylist); }
public static void CleanUp() { ThumbnailFileHandlingTests.templateViewModel = null; ThumbnailFileHandlingTests.uploadListViewModel = null; if (Directory.Exists(BaseSettings.StorageFolder)) { Directory.Delete(BaseSettings.StorageFolder, true); } if (Directory.Exists(ThumbnailFileHandlingTests.t1RootFolder)) { Directory.Delete(ThumbnailFileHandlingTests.t1RootFolder, true); } }
public static void RemoveUploadFinishedWithTemplate() { string uploadGuid = "e1957955-c88b-4185-90f5-ce1c9fbfe08d"; UploadList uploadList; TemplateList templateList; PlaylistList playlistList; MainWindowViewModel mainWindowViewModel = new MainWindowViewModel(BaseSettings.UserSuffix, BaseSettings.SubFolder, out uploadList, out templateList, out playlistList); UploadListViewModel uploadListViewModel = (UploadListViewModel)mainWindowViewModel.CurrentViewModel; uploadListViewModel.DeleteCommand.Execute(uploadGuid); Assert.IsTrue(uploadList.UploadCount == 1); Upload upload = uploadList.GetUpload(0); Assert.IsTrue(upload.Guid != Guid.Parse(uploadGuid)); Template template = templateList.GetTemplate(0); Assert.IsTrue(template.Uploads.Count == 1); Assert.IsTrue(template.Uploads[0].Guid == Guid.Parse(uploadGuid)); JArray jArray = (JArray)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(BaseSettings.StorageFolder, "uploads.json"))); Assert.IsTrue(jArray.Count == 2); bool found = false; bool foundAgain = false; int uploadsCount = 0; foreach (JObject jsonUpload in jArray.SelectTokens("$.[*]")) { uploadsCount++; string guid = jsonUpload["guid"].Value <string>(); if (guid == uploadGuid) { if (found) { foundAgain = true; } found = true; } } Assert.IsTrue(uploadsCount == 2); Assert.IsTrue(found); Assert.IsTrue(!foundAgain); jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(BaseSettings.StorageFolder, "uploadlist.json"))))["uploads"]; Assert.IsTrue(jArray.Count == 1); found = false; uploadsCount = 0; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { uploadsCount++; string jsonGuid = guid.Value <string>(); if (jsonGuid == uploadGuid) { found = true; } } Assert.IsTrue(uploadsCount == 1); Assert.IsTrue(!found); jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(BaseSettings.StorageFolder, "templatelist.json"))))["templates"]; Assert.IsTrue(jArray.Count == 1); found = false; int templatesCount = 0; uploadsCount = 0; foreach (JObject jsonTemplate in jArray.SelectTokens("$.[*]")) { templatesCount++; JToken uploads = jsonTemplate["uploads"]; foreach (JToken jsonUploadGuid in uploads.SelectTokens("$.[*]")) { uploadsCount++; string guid = jsonUploadGuid.Value <string>(); if (guid == uploadGuid) { found = true; } } } Assert.IsTrue(templatesCount == 1); Assert.IsTrue(uploadsCount == 1); Assert.IsTrue(found); jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(BaseSettings.StorageFolder, "playlistlist.json"))))["playlists"]; Assert.IsTrue(jArray.Count == 1); found = false; int playlistsCount = 0; foreach (JObject jsonplaylist in jArray.SelectTokens("$.[*]")) { playlistsCount++; string playlistId = jsonplaylist["playlistId"].Value <string>(); if (playlistId == BasicTests.testPlaylistId) { found = true; } } Assert.IsTrue(playlistsCount == 1); Assert.IsTrue(found); }
public static void Add2UploadsWithAndWithoutTemplateMatch() { UploadList uploadList; TemplateList templateList; PlaylistList playlistList; MainWindowViewModel mainWindowViewModel = new MainWindowViewModel(BaseSettings.UserSuffix, BaseSettings.SubFolder, out uploadList, out templateList, out playlistList); UploadListViewModel uploadListViewModel = (UploadListViewModel)mainWindowViewModel.CurrentViewModel; List <Upload> uploads = new List <Upload>(); Upload uploadWithoutTemplateMatch = new Upload(BasicTests.video2TargetFilePath); uploads.Add(uploadWithoutTemplateMatch); Upload uploadWithTemplateMatch = new Upload(BasicTests.video1TargetFilePath); uploads.Add(uploadWithTemplateMatch); uploadListViewModel.AddUploads(uploads); Assert.IsTrue(uploadWithoutTemplateMatch.Template == null); Assert.IsTrue(uploadWithoutTemplateMatch.Description == null); Assert.IsTrue(Path.GetFullPath(uploadWithoutTemplateMatch.ImageFilePath) == Path.GetFullPath(BasicTests.defaultTemplateRenderingImageFilePath)); Assert.IsTrue(uploadWithoutTemplateMatch.Playlist == null); Assert.IsTrue(uploadWithoutTemplateMatch.Tags.Count == 0); Assert.IsTrue(uploadWithoutTemplateMatch.ThumbnailFilePath == null); Assert.IsTrue(uploadWithoutTemplateMatch.Title == "video2"); Assert.IsTrue(uploadWithoutTemplateMatch.YtTitle == "video2"); Assert.IsTrue(uploadWithoutTemplateMatch.Visibility == Visibility.Private); Assert.IsTrue(uploadWithTemplateMatch.Template == templateList.GetTemplate(0)); Assert.IsTrue(uploadWithTemplateMatch.Description == BasicTests.testTemplateDescription); Assert.IsTrue(Path.GetFullPath(uploadWithTemplateMatch.ImageFilePath) == Path.GetFullPath(BasicTests.defaultTemplateRenderingImageFilePath)); Assert.IsTrue(uploadWithTemplateMatch.Playlist == playlistList.GetPlaylist(0)); Assert.IsTrue(uploadWithTemplateMatch.Tags.Count == 2); Assert.IsTrue(uploadWithTemplateMatch.Tags[0] == BasicTests.testTemplateTag1); Assert.IsTrue(uploadWithTemplateMatch.Tags[1] == BasicTests.testTemplateTag2); Assert.IsTrue(uploadWithTemplateMatch.ThumbnailFilePath == null); //todo: add video with # placeholder Assert.IsTrue(uploadWithTemplateMatch.Title == BasicTests.testTemplateTitle); Assert.IsTrue(uploadWithTemplateMatch.YtTitle == BasicTests.testTemplateTitle); Assert.IsTrue(uploadWithTemplateMatch.Visibility == Visibility.Private); uploadList = null; templateList = null; playlistList = null; mainWindowViewModel = null; Assert.IsTrue(File.Exists(Path.Combine(BaseSettings.StorageFolder, "uploads.json"))); Assert.IsTrue(File.Exists(Path.Combine(BaseSettings.StorageFolder, "uploadlist.json"))); JArray jArray = (JArray)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(BaseSettings.StorageFolder, "uploads.json"))); Assert.IsTrue(jArray.Count == 2); bool foundUploadWithoutTemplateMatch = false; bool foundUploadWithTemplateMatch = false; int uploadsCount = 0; string uploadWithoutTemplateMatchGuid = null; string uploadWithTemplateMatchGuid = null; foreach (JObject jsonUpload in jArray.SelectTokens("$.[*]")) { uploadsCount++; string filePath = jsonUpload["filePath"].Value <string>(); string templateGuid = jsonUpload["template"].Value <string>(); string playlist = jsonUpload["playlist"].Value <string>(); int tagCount = ((JArray)jsonUpload["tags"]).Count; string thumbnailFilePath = jsonUpload["thumbnailFilePath"].Value <string>(); string title = jsonUpload["title"].Value <string>(); string visibility = jsonUpload["visibility"].Value <string>(); if (filePath == BasicTests.video2TargetFilePath) { uploadWithoutTemplateMatchGuid = jsonUpload["guid"].Value <string>(); foundUploadWithoutTemplateMatch = true; Assert.IsTrue(templateGuid == null); Assert.IsTrue(playlist == null); Assert.IsTrue(tagCount == 0); Assert.IsTrue(thumbnailFilePath == null); Assert.IsTrue(title == "video2"); Assert.IsTrue(visibility == BasicTests.privateVisibility); } if (filePath == BasicTests.video1TargetFilePath) { uploadWithTemplateMatchGuid = jsonUpload["guid"].Value <string>(); foundUploadWithTemplateMatch = true; string tag1 = ((JArray)jsonUpload["tags"])[0].Value <string>(); string tag2 = ((JArray)jsonUpload["tags"])[1].Value <string>(); Assert.IsTrue(templateGuid == BasicTests.testTemplateGuid); Assert.IsTrue(playlist == BasicTests.testPlaylistId); Assert.IsTrue(tagCount == 2); Assert.IsTrue(tag1 == BasicTests.testTemplateTag1); Assert.IsTrue(tag2 == BasicTests.testTemplateTag2); Assert.IsTrue(thumbnailFilePath == null); Assert.IsTrue(title == BasicTests.testTemplateTitle); Assert.IsTrue(visibility == BasicTests.privateVisibility); } } Assert.IsTrue(uploadsCount == 2); Assert.IsTrue(foundUploadWithoutTemplateMatch); Assert.IsTrue(foundUploadWithTemplateMatch); jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(BaseSettings.StorageFolder, "uploadlist.json"))))["uploads"]; Assert.IsTrue(jArray.Count == 2); foundUploadWithoutTemplateMatch = false; foundUploadWithTemplateMatch = false; uploadsCount = 0; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { uploadsCount++; string jsonGuid = guid.Value <string>(); if (jsonGuid == uploadWithoutTemplateMatchGuid) { foundUploadWithoutTemplateMatch = true; } if (jsonGuid == uploadWithTemplateMatchGuid) { foundUploadWithTemplateMatch = true; } } Assert.IsTrue(uploadsCount == 2); Assert.IsTrue(foundUploadWithoutTemplateMatch); Assert.IsTrue(foundUploadWithTemplateMatch); }
public static void AddFirstUpload() { UploadList uploadList; TemplateList templateList; PlaylistList playlistList; MainWindowViewModel mainWindowViewModel = new MainWindowViewModel(BaseSettings.UserSuffix, BaseSettings.SubFolder, out uploadList, out templateList, out playlistList); UploadListViewModel uploadListViewModel = (UploadListViewModel)mainWindowViewModel.CurrentViewModel; List <Upload> uploads = new List <Upload>(); uploads.Add(new Upload(BasicTests.video1TargetFilePath)); uploadListViewModel.AddUploads(uploads); Assert.IsTrue(uploadList.UploadCount == 1); Assert.IsTrue(uploadList.GetUpload(0).FilePath == BasicTests.video1TargetFilePath); Assert.IsTrue(templateList.TemplateCount == 0); Assert.IsTrue(playlistList.PlaylistCount == 0); uploadList = null; templateList = null; playlistList = null; mainWindowViewModel = null; Assert.IsTrue(File.Exists(Path.Combine(BaseSettings.StorageFolder, "uploads.json"))); Assert.IsTrue(File.Exists(Path.Combine(BaseSettings.StorageFolder, "uploadlist.json"))); Assert.IsTrue(!File.Exists(Path.Combine(BaseSettings.StorageFolder, "templatelist.json"))); Assert.IsTrue(!File.Exists(Path.Combine(BaseSettings.StorageFolder, "playlistlist.json"))); JArray jArray = (JArray)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(BaseSettings.StorageFolder, "uploads.json"))); Assert.IsTrue(jArray.Count == 1); bool found = false; int uploadsCount = 0; string newUploadGuid = null; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { uploadsCount++; string filePath = upload["filePath"].Value <string>(); if (filePath == BasicTests.video1TargetFilePath) { newUploadGuid = upload["guid"].Value <string>(); found = true; } } Assert.IsTrue(uploadsCount == 1); Assert.IsTrue(found); jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(BaseSettings.StorageFolder, "uploadlist.json"))))["uploads"]; Assert.IsTrue(jArray.Count == 1); found = false; uploadsCount = 0; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { uploadsCount++; string jsonGuid = guid.Value <string>(); if (jsonGuid == newUploadGuid) { found = true; } } Assert.IsTrue(uploadsCount == 1); Assert.IsTrue(found); }
public static void RemoveFinishedAllTemplates() { string uploadVideo5GuidWithoutTemplate = "c4af55c4-10e4-4676-9b66-a5d9b7d94afe"; string uploadVideo6GuidWithTemplate789 = "ff328893-5e6c-4e00-b3d2-7dce42e474e7"; string uploadVideo2GuidWithTemplate456 = "4be32408-92c0-4d48-8a27-5d98305c79cd"; string template789Guid = "e2188eed-589d-4233-862c-bc2380cbaf01"; string template456Guid = "19f37916-68e6-4425-af12-23af87b513c7"; MainWindowViewModel mainWindowViewModel = new MainWindowViewModel(BaseSettings.UserSuffix, BaseSettings.SubFolder, out _, out _, out _); Dictionary <string, int> templateUploadsCount = new Dictionary <string, int>(); JArray jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); templateUploadsCount.Add((string)((JValue)template["guid"]).Value, uploadsJArray.Count); } UploadListViewModel uploadListViewModel = (UploadListViewModel)mainWindowViewModel.CurrentViewModel; uploadListViewModel.DeleteUploadsCommand.Execute(true); uploadListViewModel = null; mainWindowViewModel = null; //only uploads with assigned template and upload status finished shall remain left in uploads.json after finished uploads are removed jArray = (JArray)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploads.json"))); Assert.IsTrue(jArray.Count == 9); bool found = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo5GuidWithoutTemplate) { found = true; } } Assert.IsTrue(!found); found = false; bool foundAgain = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo6GuidWithTemplate789) { if (found) { foundAgain = true; } found = true; string templateGuid = upload["template"].Value <string>(); Assert.IsTrue(templateGuid == template789Guid); } } Assert.IsTrue(!foundAgain); Assert.IsTrue(found); found = false; foundAgain = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo2GuidWithTemplate456) { if (found) { foundAgain = true; } found = true; string templateGuid = upload["template"].Value <string>(); Assert.IsTrue(templateGuid == template456Guid); } } Assert.IsTrue(!foundAgain); Assert.IsTrue(found); //all finished uploads shall be removed from uploadlist.json after finished uploads are removed jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploadlist.json"))))["uploads"]; Assert.IsTrue(jArray.Count == 7); found = false; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { if ((string)guid.Value == uploadVideo5GuidWithoutTemplate) { found = true; } } Assert.IsTrue(!found); found = false; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { if ((string)guid.Value == uploadVideo6GuidWithTemplate789) { found = true; } } Assert.IsTrue(!found); found = false; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { if ((string)guid.Value == uploadVideo2GuidWithTemplate456) { found = true; } } Assert.IsTrue(!found); //uploads with assigned template shall remain left in template's uploads in templatelist.json after finished uploads are removed jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; Assert.IsTrue(jArray.Count == 6); //after removal upload count in each template should be the same foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); Assert.IsTrue(templateUploadsCount[(string)((JValue)template["guid"]).Value] == uploadsJArray.Count); } bool foundInWrongTemplate = false; found = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo5GuidWithoutTemplate) { found = true; } } } Assert.IsTrue(!found); found = false; foundAgain = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo6GuidWithTemplate789) { if (found) { foundAgain = true; } found = true; if ((string)((JValue)template["guid"]).Value != template789Guid) { foundInWrongTemplate = true; } } } } Assert.IsTrue(!foundAgain); Assert.IsTrue(found); Assert.IsTrue(!foundInWrongTemplate); found = false; foundAgain = false; foundInWrongTemplate = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo2GuidWithTemplate456) { if (found) { foundAgain = true; } found = true; if ((string)((JValue)template["guid"]).Value != template456Guid) { foundInWrongTemplate = true; } } } } Assert.IsTrue(!foundAgain); Assert.IsTrue(found); Assert.IsTrue(!foundInWrongTemplate); }
public static void RemoveAllWithOneTemplate() { string template456Guid = "19f37916-68e6-4425-af12-23af87b513c7"; string uploadVideo1GuidReadyForUpload = "da2ede66-e9f9-415a-8fe0-007b8a168d36"; string uploadVideo2GuidFinished = "4be32408-92c0-4d48-8a27-5d98305c79cd"; MainWindowViewModel mainWindowViewModel = new MainWindowViewModel(BaseSettings.UserSuffix, BaseSettings.SubFolder, out _, out _, out _); Dictionary <string, int> templateUploadsCount = new Dictionary <string, int>(); JArray jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); templateUploadsCount.Add((string)((JValue)template["guid"]).Value, uploadsJArray.Count); } UploadListViewModel uploadListViewModel = (UploadListViewModel)mainWindowViewModel.CurrentViewModel; uploadListViewModel.DeleteSelectedUploadStatus = uploadListViewModel.StatusesInclAll[0]; uploadListViewModel.DeleteSelectedTemplate = uploadListViewModel.ObservableTemplateViewModelsInclAllNone.First(vm => vm.Guid == template456Guid); uploadListViewModel.DeleteUploadsCommand.Execute(true); uploadListViewModel = null; mainWindowViewModel = null; //only uploads with assigned template and upload status finished shall remain left in uploads.json after finished uploads are removed jArray = (JArray)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploads.json"))); Assert.IsTrue(jArray.Count == 9); bool found = false; bool foundAgain = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo2GuidFinished) { if (found) { foundAgain = true; } found = true; string templateGuid = upload["template"].Value <string>(); Assert.IsTrue(templateGuid == template456Guid); } } Assert.IsTrue(!foundAgain); Assert.IsTrue(found); found = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo1GuidReadyForUpload) { found = true; } } Assert.IsTrue(!found); //all uploads from template shall be removed from uploadlist.json jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploadlist.json"))))["uploads"]; Assert.IsTrue(jArray.Count == 8); found = false; foundAgain = false; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { if ((string)guid.Value == uploadVideo2GuidFinished) { if (found) { foundAgain = true; } found = true; } } Assert.IsTrue(!foundAgain); Assert.IsTrue(!found); found = false; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { if ((string)guid.Value == uploadVideo1GuidReadyForUpload) { found = true; } } Assert.IsTrue(!found); //uploads with assigned template shall remain left in template's uploads in templatelist.json jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; Assert.IsTrue(jArray.Count == 6); //after removal upload count in each template should be the same foreach (JObject template in jArray.SelectTokens("$.[*]")) { string templateGuid = (string)((JValue)template["guid"]).Value; JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); if (templateGuid == template456Guid) { Assert.IsTrue(templateUploadsCount[templateGuid] == uploadsJArray.Count + 1); } else { Assert.IsTrue(templateUploadsCount[templateGuid] == uploadsJArray.Count); } } bool foundInWrongTemplate = false; found = false; foundAgain = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo2GuidFinished) { if (found) { foundAgain = true; } found = true; if ((string)((JValue)template["guid"]).Value != template456Guid) { foundInWrongTemplate = true; } } } } Assert.IsTrue(!foundAgain); Assert.IsTrue(found); Assert.IsTrue(!foundInWrongTemplate); found = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo1GuidReadyForUpload) { found = true; } } } Assert.IsTrue(!found); }
public static void RemoveReadyForUploadAllTemplates() { string uploadVideo1Guid = "da2ede66-e9f9-415a-8fe0-007b8a168d36"; string uploadVideo4Guid = "e9d3be6a-c987-4b63-be32-e075a7e8a129"; string uploadVideo7Guid = "9dcd58c4-ef2a-427a-8629-44a812404611"; string uploadVideo8Guid = "cb3ac8aa-4297-4d3c-9d09-4de6743a84e3"; string uploadVideo9Guid = "aee98f41-c765-4bc7-91cd-a1ee40388bad"; string template567video4video7Guid = "7f258a2d-171e-4cf0-8ba6-89966929b742"; string template234video8Guid = "2f80c321-2261-4726-a764-3870ac9340a5"; string template456video1Guid = "19f37916-68e6-4425-af12-23af87b513c7"; MainWindowViewModel mainWindowViewModel = new MainWindowViewModel(BaseSettings.UserSuffix, BaseSettings.SubFolder, out _, out _, out _); Dictionary <string, int> templateUploadsCount = new Dictionary <string, int>(); JArray jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); templateUploadsCount.Add((string)((JValue)template["guid"]).Value, uploadsJArray.Count); } UploadListViewModel uploadListViewModel = (UploadListViewModel)mainWindowViewModel.CurrentViewModel; uploadListViewModel.DeleteSelectedUploadStatus = uploadListViewModel.StatusesInclAll[1]; uploadListViewModel.DeleteUploadsCommand.Execute(true); uploadListViewModel = null; mainWindowViewModel = null; //all uploads ready to uplaod shall be removed jArray = (JArray)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploads.json"))); Assert.IsTrue(jArray.Count == 5); bool found = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo1Guid) { found = true; } } Assert.IsTrue(!found); found = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo4Guid) { found = true; } } Assert.IsTrue(!found); found = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo7Guid) { found = true; } } Assert.IsTrue(!found); found = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo8Guid) { found = true; } } Assert.IsTrue(!found); found = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo9Guid) { found = true; } } Assert.IsTrue(!found); //all ready to upload uploads shall be removed from uploadlist.json jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploadlist.json"))))["uploads"]; Assert.IsTrue(jArray.Count == 5); found = false; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { if ((string)guid.Value == uploadVideo1Guid) { found = true; } } Assert.IsTrue(!found); found = false; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { if ((string)guid.Value == uploadVideo4Guid) { found = true; } } Assert.IsTrue(!found); found = false; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { if ((string)guid.Value == uploadVideo7Guid) { found = true; } } Assert.IsTrue(!found); found = false; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { if ((string)guid.Value == uploadVideo8Guid) { found = true; } } Assert.IsTrue(!found); found = false; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { if ((string)guid.Value == uploadVideo9Guid) { found = true; } } Assert.IsTrue(!found); //uploads with assigned template shall be removed in template's uploads in templatelist.json jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; Assert.IsTrue(jArray.Count == 6); //after removal upload count in each template should be the same foreach (JObject template in jArray.SelectTokens("$.[*]")) { string templateGuid = (string)((JValue)template["guid"]).Value; JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); if (templateGuid == template234video8Guid || templateGuid == template456video1Guid) { Assert.IsTrue(templateUploadsCount[templateGuid] == uploadsJArray.Count + 1); } else if (templateGuid == template567video4video7Guid) { Assert.IsTrue(templateUploadsCount[templateGuid] == uploadsJArray.Count + 2); } else { Assert.IsTrue(templateUploadsCount[templateGuid] == uploadsJArray.Count); } } found = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo1Guid) { found = true; } } } Assert.IsTrue(!found); found = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo4Guid) { found = true; } } } Assert.IsTrue(!found); found = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo7Guid) { found = true; } } } Assert.IsTrue(!found); found = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo8Guid) { found = true; } } } Assert.IsTrue(!found); found = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo9Guid) { found = true; } } } Assert.IsTrue(!found); }
public static void RemovePausedWithTemplate() { string template234FilterGuid = "2f80c321-2261-4726-a764-3870ac9340a5"; string uploadVideo3Guid = "e0acc743-0c49-4dd7-ba4a-093b6686e43b"; MainWindowViewModel mainWindowViewModel = new MainWindowViewModel(BaseSettings.UserSuffix, BaseSettings.SubFolder, out _, out _, out _); Dictionary <string, int> templateUploadsCount = new Dictionary <string, int>(); JArray jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); templateUploadsCount.Add((string)((JValue)template["guid"]).Value, uploadsJArray.Count); } UploadListViewModel uploadListViewModel = (UploadListViewModel)mainWindowViewModel.CurrentViewModel; uploadListViewModel.DeleteSelectedUploadStatus = uploadListViewModel.StatusesInclAll[2]; uploadListViewModel.DeleteSelectedTemplate = uploadListViewModel.ObservableTemplateViewModelsInclAllNone.First(vm => vm.Guid == template234FilterGuid); uploadListViewModel.DeleteUploadsCommand.Execute(true); uploadListViewModel = null; mainWindowViewModel = null; //only uploads with assigned template and upload status finished shall remain left in uploads.json after finished uploads are removed jArray = (JArray)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploads.json"))); Assert.IsTrue(jArray.Count == 9); bool found = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo3Guid) { found = true; } } Assert.IsTrue(!found); //all finished uploads shall be removed from uploadlist.json after finished uploads are removed jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploadlist.json"))))["uploads"]; Assert.IsTrue(jArray.Count == 9); found = false; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { if ((string)guid.Value == uploadVideo3Guid) { found = true; } } Assert.IsTrue(!found); //uploads with assigned template shall remain left in template's uploads in templatelist.json after finished uploads are removed jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; Assert.IsTrue(jArray.Count == 6); //after removal upload count in template 234 should be one less and on other templates the same foreach (JObject template in jArray.SelectTokens("$.[*]")) { string templateGuid = (string)((JValue)template["guid"]).Value; JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); if (templateGuid == template234FilterGuid) { Assert.IsTrue(templateUploadsCount[templateGuid] == uploadsJArray.Count + 1); } else { Assert.IsTrue(templateUploadsCount[templateGuid] == uploadsJArray.Count); } } found = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo3Guid) { found = true; } } } Assert.IsTrue(!found); }
public static void RemoveFinishedWithoutTemplate() { string uploadVideo5Guid = "c4af55c4-10e4-4676-9b66-a5d9b7d94afe"; MainWindowViewModel mainWindowViewModel = new MainWindowViewModel(BaseSettings.UserSuffix, BaseSettings.SubFolder, out _, out _, out _); Dictionary <string, int> templateUploadsCount = new Dictionary <string, int>(); JArray jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); templateUploadsCount.Add((string)((JValue)template["guid"]).Value, uploadsJArray.Count); } UploadListViewModel uploadListViewModel = (UploadListViewModel)mainWindowViewModel.CurrentViewModel; uploadListViewModel.DeleteSelectedTemplate = uploadListViewModel.ObservableTemplateViewModelsInclAllNone.First(vm => vm.Template.Name == "None"); uploadListViewModel.DeleteUploadsCommand.Execute(true); uploadListViewModel = null; mainWindowViewModel = null; //only uploads with assigned template and upload status finished shall remain left in uploads.json after finished uploads are removed jArray = (JArray)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploads.json"))); Assert.IsTrue(jArray.Count == 9); bool found = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo5Guid) { found = true; } } Assert.IsTrue(!found); //all finished uploads shall be removed from uploadlist.json after finished uploads are removed jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploadlist.json"))))["uploads"]; Assert.IsTrue(jArray.Count == 9); found = false; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { if ((string)guid.Value == uploadVideo5Guid) { found = true; } } Assert.IsTrue(!found); //uploads with assigned template shall remain left in template's uploads in templatelist.json after finished uploads are removed jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; Assert.IsTrue(jArray.Count == 6); //after removal upload count in each template should be the same foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); Assert.IsTrue(templateUploadsCount[(string)((JValue)template["guid"]).Value] == uploadsJArray.Count); } found = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo5Guid) { found = true; } } } Assert.IsTrue(!found); }
public static void RemoveFinishedOneTemplate() { string template789FilterGuid = "e2188eed-589d-4233-862c-bc2380cbaf01"; string uploadVideo6Guid = "ff328893-5e6c-4e00-b3d2-7dce42e474e7"; MainWindowViewModel mainWindowViewModel = new MainWindowViewModel(BaseSettings.UserSuffix, BaseSettings.SubFolder, out _, out _, out _); Dictionary <string, int> templateUploadsCount = new Dictionary <string, int>(); JArray jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); templateUploadsCount.Add((string)((JValue)template["guid"]).Value, uploadsJArray.Count); } UploadListViewModel uploadListViewModel = (UploadListViewModel)mainWindowViewModel.CurrentViewModel; uploadListViewModel.DeleteSelectedTemplate = uploadListViewModel.ObservableTemplateViewModelsInclAllNone.First(vm => vm.Guid == template789FilterGuid); uploadListViewModel.DeleteUploadsCommand.Execute(true); uploadListViewModel = null; mainWindowViewModel = null; //only uploads with assigned template and upload status finished shall remain left in uploads.json after finished uploads are removed jArray = (JArray)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploads.json"))); Assert.IsTrue(jArray.Count == 10); bool found = false; bool foundAgain = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo6Guid) { if (found) { foundAgain = true; } found = true; string templateGuid = upload["template"].Value <string>(); Assert.IsTrue(templateGuid == template789FilterGuid); } } Assert.IsTrue(!foundAgain); Assert.IsTrue(found); //all finished uploads shall be removed from uploadlist.json after finished uploads are removed jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploadlist.json"))))["uploads"]; Assert.IsTrue(jArray.Count == 9); found = false; foundAgain = false; foreach (JValue guid in jArray.SelectTokens("$.[*]")) { if ((string)guid.Value == uploadVideo6Guid) { if (found) { foundAgain = true; } found = true; } } Assert.IsTrue(!foundAgain); Assert.IsTrue(!found); //uploads with assigned template shall remain left in template's uploads in templatelist.json after finished uploads are removed jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; Assert.IsTrue(jArray.Count == 6); //after removal upload count in each template should be the same foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); Assert.IsTrue(templateUploadsCount[(string)((JValue)template["guid"]).Value] == uploadsJArray.Count); } bool foundInWrongTemplate = false; found = false; foundAgain = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo6Guid) { if (found) { foundAgain = true; } found = true; if ((string)((JValue)template["guid"]).Value != template789FilterGuid) { foundInWrongTemplate = true; } } } } Assert.IsTrue(!foundAgain); Assert.IsTrue(found); Assert.IsTrue(!foundInWrongTemplate); }
public static void RemoveAll() { string uploadVideo1Guid = "da2ede66-e9f9-415a-8fe0-007b8a168d36"; string uploadVideo2GuidFinished = "4be32408-92c0-4d48-8a27-5d98305c79cd"; string uploadVideo4Guid = "e9d3be6a-c987-4b63-be32-e075a7e8a129"; string uploadVideo5GuidFinished = "c4af55c4-10e4-4676-9b66-a5d9b7d94afe"; string uploadVideo6GuidFinished = "ff328893-5e6c-4e00-b3d2-7dce42e474e7"; string uploadVideo7Guid = "9dcd58c4-ef2a-427a-8629-44a812404611"; string uploadVideo8Guid = "cb3ac8aa-4297-4d3c-9d09-4de6743a84e3"; string uploadVideo9Guid = "aee98f41-c765-4bc7-91cd-a1ee40388bad"; string template789GuidVideo6 = "e2188eed-589d-4233-862c-bc2380cbaf01"; string template456GuidVideo2 = "19f37916-68e6-4425-af12-23af87b513c7"; MainWindowViewModel mainWindowViewModel = new MainWindowViewModel(BaseSettings.UserSuffix, BaseSettings.SubFolder, out _, out _, out _); Dictionary <string, int> templateUploadsCount = new Dictionary <string, int>(); JArray jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); templateUploadsCount.Add((string)((JValue)template["guid"]).Value, uploadsJArray.Count); } UploadListViewModel uploadListViewModel = (UploadListViewModel)mainWindowViewModel.CurrentViewModel; uploadListViewModel.DeleteSelectedUploadStatus = uploadListViewModel.StatusesInclAll[0]; uploadListViewModel.DeleteSelectedTemplate = uploadListViewModel.ObservableTemplateViewModelsInclAllNone.First(vm => vm.Template.Name == "All"); uploadListViewModel.DeleteUploadsCommand.Execute(true); uploadListViewModel = null; mainWindowViewModel = null; //all uploads not finished shall be removed jArray = (JArray)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploads.json"))); Assert.IsTrue(jArray.Count == 2); bool found = false; bool foundAgain = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo2GuidFinished) { if (found) { foundAgain = true; } found = true; string templateGuid = upload["template"].Value <string>(); Assert.IsTrue(templateGuid == template456GuidVideo2); } } Assert.IsTrue(!foundAgain); Assert.IsTrue(found); found = false; foundAgain = false; foreach (JObject upload in jArray.SelectTokens("$.[*]")) { string guid = upload["guid"].Value <string>(); if (guid == uploadVideo6GuidFinished) { if (found) { foundAgain = true; } found = true; string templateGuid = upload["template"].Value <string>(); Assert.IsTrue(templateGuid == template789GuidVideo6); } } Assert.IsTrue(!foundAgain); Assert.IsTrue(found); //all ready to upload uploads shall be removed from uploadlist.json jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "uploadlist.json"))))["uploads"]; Assert.IsTrue(jArray.Count == 0); //uploads with assigned template shall be removed in template's uploads in templatelist.json jArray = (JArray)((JObject)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(Settings.SettingsInstance.StorageFolder, "templatelist.json"))))["templates"]; Assert.IsTrue(jArray.Count == 6); //after removal upload count in each template should be 0 except finished uploads foreach (JObject template in jArray.SelectTokens("$.[*]")) { string templateGuid = (string)((JValue)template["guid"]).Value; JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); if (templateGuid == template456GuidVideo2 || templateGuid == template789GuidVideo6) { Assert.IsTrue(uploadsJArray.Count == 1); } else { Assert.IsTrue(uploadsJArray.Count == 0); } } bool foundInWrongTemplate = false; found = false; foundAgain = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo2GuidFinished) { if (found) { foundAgain = true; } found = true; if ((string)((JValue)template["guid"]).Value != template456GuidVideo2) { foundInWrongTemplate = true; } } } } Assert.IsTrue(!foundAgain); Assert.IsTrue(found); Assert.IsTrue(!foundInWrongTemplate); found = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo5GuidFinished) { found = true; } } } Assert.IsTrue(!found); foundInWrongTemplate = false; found = false; foundAgain = false; foreach (JObject template in jArray.SelectTokens("$.[*]")) { JArray uploadsJArray = (JArray)template.SelectToken("$.uploads"); foreach (JValue uploadGuid in uploadsJArray.SelectTokens("$.[*]")) { if ((string)uploadGuid.Value == uploadVideo6GuidFinished) { if (found) { foundAgain = false; } found = true; if ((string)((JValue)template["guid"]).Value != template789GuidVideo6) { foundInWrongTemplate = true; } } } } Assert.IsTrue(!foundAgain); Assert.IsTrue(found); Assert.IsTrue(!foundInWrongTemplate); }