From 69588a95eec7f04817bc4582a8cf6011e475069e Mon Sep 17 00:00:00 2001 From: pkanavos Date: Fri, 27 Apr 2012 00:00:37 +0300 Subject: [PATCH] Fix for missing directories --- trunk/Pithos.Client.WPF.Test/NodeTest.cs | 47 ++++++++++++ .../Pithos.Client.WPF.Test.csproj | 4 + .../FileProperties/ConflictsView.xaml | 14 +++- .../FileProperties/ConflictsViewModel.cs | 18 ++++- .../Preferences/PreferencesViewModel.cs | 3 + .../SelectiveSynch/SelectiveSynchViewModel.cs | 6 +- .../Utils/EnumerableExtensions.cs | 81 ++++++++++++++++---- trunk/Pithos.Core/Agents/StatusAgent.cs | 10 ++- trunk/Pithos.Network/CloudFilesClient.cs | 8 +- 9 files changed, 159 insertions(+), 32 deletions(-) diff --git a/trunk/Pithos.Client.WPF.Test/NodeTest.cs b/trunk/Pithos.Client.WPF.Test/NodeTest.cs index db834fc..e37d87a 100644 --- a/trunk/Pithos.Client.WPF.Test/NodeTest.cs +++ b/trunk/Pithos.Client.WPF.Test/NodeTest.cs @@ -3,7 +3,9 @@ using System.Collections.Generic; using System.Linq; using System.Text; using NUnit.Framework; +using Pithos.Client.WPF.SelectiveSynch; using Pithos.Client.WPF.Utils; +using Pithos.Interfaces; namespace Pithos.Client.WPF.Test { @@ -120,6 +122,51 @@ namespace Pithos.Client.WPF.Test }; Assert.That(source.ToTree(s=>s.Item1,s=>s.Item2).First().Equals(target), Is.True); + } [Test] + + public void TestObjectInfoToTree() + { + var target = new DirectoryRecord{ DisplayName= "Root", + Directories = + { + new DirectoryRecord{DisplayName = "Root/DisplayName1", + Directories = + { + new DirectoryRecord{DisplayName="Root/DisplayName1/File2"}, + new DirectoryRecord{DisplayName="Root/DisplayName1/DisplayName11", + Directories= + { + new DirectoryRecord{DisplayName="Root/DisplayName1/DisplayName11/DisplayName111", + Directories= + { + new DirectoryRecord{DisplayName="Root/DisplayName1/DisplayName11/DisplayName111/File1"} + }} + } + }, + } + }, + } + }; + var account = "someaccount"; + var container = "Root"; + var source= new[] + { + new ObjectInfo{Account=account,Container=container,Name="Path1",Content_Type="application/directory"}, + new ObjectInfo{Account=account,Container=container,Name="Path1/Path11",Content_Type="application/folder"}, + new ObjectInfo{Account=account,Container=container,Name="Path1/Path11/Path111"}, + new ObjectInfo{Account=account,Container=container,Name="Path1/Path11/Path111/File1",Content_Type="application/octet-stream"}, + new ObjectInfo{Account=account,Container=container,Name="Path1/File2"}, + new ObjectInfo{Account=account,Container=container,Name="Path2/File2"}, + new ObjectInfo{Account=account,Container=container,Name="Path2/Path21/File2"}, + new ObjectInfo{Account=account,Container=container,Name="File02"}, + new ObjectInfo{Account=account,Container=container,Name="File03"} + }; + + var tree = source.ToTree(); + var allNodes = (from DirectoryRecord root in tree + from DirectoryRecord record in root + select record).ToList(); + Assert.That(allNodes.Count,Is.EqualTo(5)); } } } diff --git a/trunk/Pithos.Client.WPF.Test/Pithos.Client.WPF.Test.csproj b/trunk/Pithos.Client.WPF.Test/Pithos.Client.WPF.Test.csproj index 1639c2a..b241911 100644 --- a/trunk/Pithos.Client.WPF.Test/Pithos.Client.WPF.Test.csproj +++ b/trunk/Pithos.Client.WPF.Test/Pithos.Client.WPF.Test.csproj @@ -61,6 +61,10 @@ {4D9406A3-50ED-4672-BB97-A0B3EA4946FE} Pithos.Client.WPF + + {7EEFF32F-CCF8-436A-9E0B-F40434C09AF4} + Pithos.Interfaces +