diff --git a/CHANGELOG.md b/CHANGELOG.md index c25faba..6bdb868 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +<<<<<<< HEAD +======= +### 4.1.6 (2014-08-28) + +- Fix DateTime conversion issue (from local to UTC) + +>>>>>>> simple ### 4.1.5 (2014-07-27) - Fix StackOverflow bug in PocketItem equality overload (fixes #28) diff --git a/PocketSharp.Tests/GetTests.cs b/PocketSharp.Tests/GetTests.cs index 388e6a1..8029976 100644 --- a/PocketSharp.Tests/GetTests.cs +++ b/PocketSharp.Tests/GetTests.cs @@ -33,23 +33,23 @@ namespace PocketSharp.Tests Assert.True(item.Uri == itemDuplicate.Uri); } - [Fact] - public async Task IsItemJsonPopulated() - { - List items = (await client.Get()).ToList(); - string schemaJson = @"{ - 'description': 'PocketItem', - 'type': 'object' - }"; +// [Fact] +// public async Task IsItemJsonPopulated() +// { +// List items = (await client.Get()).ToList(); +// string schemaJson = @"{ +// 'description': 'PocketItem', +// 'type': 'object' +// }"; - JsonSchema schema = JsonSchema.Parse(schemaJson); - foreach (var pocketItem in items) - { - Assert.True(!string.IsNullOrWhiteSpace(pocketItem.Json)); - var jObject = JObject.Parse(pocketItem.Json); - Assert.True(jObject.IsValid(schema)); - } - } +// JsonSchema schema = JsonSchema.Parse(schemaJson); +// foreach (var pocketItem in items) +// { +// Assert.True(!string.IsNullOrWhiteSpace(pocketItem.Json)); +// var jObject = JObject.Parse(pocketItem.Json); +// Assert.True(jObject.IsValid(schema)); +// } +// } [Fact] public async Task AreFilteredItemsRetrieved() @@ -194,7 +194,7 @@ namespace PocketSharp.Tests [Fact] public async Task IsSinceParameterWorkingOnAddTags() { - DateTime since = DateTime.UtcNow.AddSeconds(-5); + DateTime since = DateTime.Now; IEnumerable items = await client.Get(state: State.all); PocketItem itemToModify = items.First(); @@ -218,7 +218,7 @@ namespace PocketSharp.Tests [Fact] public async Task IsSinceParameterWorkingOnFavoriteAndArchiveModification() { - DateTime since = DateTime.UtcNow.AddSeconds(-5); + DateTime since = DateTime.Now;//1409221736 IEnumerable items = await client.Get(state: State.all); PocketItem itemToModify = items.First(); @@ -237,7 +237,7 @@ namespace PocketSharp.Tests await client.Unfavorite(itemToModify); - since = DateTime.UtcNow.AddMinutes(-1); + since = DateTime.Now; await client.Archive(itemToModify); @@ -249,10 +249,32 @@ namespace PocketSharp.Tests } + [Fact] + public async Task IsUTCSinceParameterWorking() + { + DateTime since = DateTime.UtcNow; + + IEnumerable items = await client.Get(state: State.all); + PocketItem itemToModify = items.First(); + + items = await client.Get(state: State.all, since: since); + + Assert.True(items == null || items.Count() == 0); + + await client.Favorite(itemToModify); + + items = await client.Get(state: State.all, since: since); + + Assert.True(items.Count() > 0); + + await client.Unfavorite(itemToModify); + } + + [Fact] public async Task IsSinceParameterWorkingOnAddAndDelete() { - DateTime since = DateTime.UtcNow.AddSeconds(-5); + DateTime since = DateTime.UtcNow; PocketItem item = await client.Add(new Uri("http://frontendplay.com")); diff --git a/PocketSharp.Tests/PocketSharp.Tests.csproj b/PocketSharp.Tests/PocketSharp.Tests.csproj index af87073..b195952 100644 --- a/PocketSharp.Tests/PocketSharp.Tests.csproj +++ b/PocketSharp.Tests/PocketSharp.Tests.csproj @@ -39,29 +39,30 @@ False - ..\packages\Microsoft.Bcl.Async.1.0.166\lib\net40\Microsoft.Threading.Tasks.dll + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll False - ..\packages\Microsoft.Bcl.Async.1.0.166\lib\net40\Microsoft.Threading.Tasks.Extensions.dll + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll - - ..\packages\Microsoft.Bcl.Async.1.0.166\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll + + False + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll False - ..\packages\Newtonsoft.Json.6.0.2\lib\net45\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.6.0.4\lib\net45\Newtonsoft.Json.dll - + False - ..\packages\Microsoft.Net.Http.2.2.19\lib\net45\System.Net.Http.Extensions.dll + ..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Extensions.dll - + False - ..\packages\Microsoft.Net.Http.2.2.19\lib\net45\System.Net.Http.Primitives.dll + ..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Primitives.dll diff --git a/PocketSharp.Tests/StressTests.cs b/PocketSharp.Tests/StressTests.cs index 30fa7c1..108a54e 100644 --- a/PocketSharp.Tests/StressTests.cs +++ b/PocketSharp.Tests/StressTests.cs @@ -105,13 +105,27 @@ namespace PocketSharp.Tests string[] tag; Random rnd = new Random(); - foreach (string url in urls.Skip(offset).Take(count)) + var items = urls.Skip(offset).Take(count) + .Select((value, idx) => new { Value = value, Index = idx }) + .GroupBy(item => item.Index / 100, item => item.Value) + .Cast>(); + + foreach (IEnumerable urlGroup in items) { - r = rnd.Next(tags.Length); - r2 = rnd.Next(tags.Length); - tag = new string[] { tags[r], tags[r2] }; - await client.Add(new Uri("http://" + url), tag); + await Task.WhenAll(urlGroup.Select(url => + { + r = rnd.Next(tags.Length); + r2 = rnd.Next(tags.Length); + tag = new string[] { tags[r], tags[r2] }; + return client.Add(new Uri("http://" + url), tag); + })); } } + + //[Fact] + //public async Task Fillll() + //{ + // await FillAccount(11000, 89999); + //} } } \ No newline at end of file diff --git a/PocketSharp.Tests/app.config b/PocketSharp.Tests/app.config index d98abff..4e4d248 100644 --- a/PocketSharp.Tests/app.config +++ b/PocketSharp.Tests/app.config @@ -4,7 +4,7 @@ - + diff --git a/PocketSharp.Tests/packages.config b/PocketSharp.Tests/packages.config index d7c8af3..903ce39 100644 --- a/PocketSharp.Tests/packages.config +++ b/PocketSharp.Tests/packages.config @@ -1,9 +1,9 @@  - - + + - - + + \ No newline at end of file diff --git a/PocketSharp/Components/Get.cs b/PocketSharp/Components/Get.cs index 8e049a2..4058425 100644 --- a/PocketSharp/Components/Get.cs +++ b/PocketSharp/Components/Get.cs @@ -53,7 +53,7 @@ namespace PocketSharp DetailType = DetailType.complete, Search = search, Domain = domain, - Since = since, + Since = since.HasValue ? ((DateTime)since).ToUniversalTime() : since, Count = count, Offset = offset }; diff --git a/PocketSharp/IPocketClient.cs b/PocketSharp/IPocketClient.cs index 67c7f05..5bc1d48 100644 --- a/PocketSharp/IPocketClient.cs +++ b/PocketSharp/IPocketClient.cs @@ -435,7 +435,7 @@ namespace PocketSharp /// Task RenameTag(PocketItem item, string oldTag, string newTag, CancellationToken cancellationToken = default(CancellationToken)); #endregion - + #region statistics methods /// /// Statistics from the user account. diff --git a/PocketSharp/PocketClient.cs b/PocketSharp/PocketClient.cs index 8cf7f5c..ab8c87e 100644 --- a/PocketSharp/PocketClient.cs +++ b/PocketSharp/PocketClient.cs @@ -338,6 +338,11 @@ namespace PocketSharp /// internal async Task Send(IEnumerable actionParameters, CancellationToken cancellationToken) { + foreach (PocketAction action in actionParameters) + { + action.Time = action.Time.HasValue ? ((DateTime)action.Time).ToUniversalTime() : action.Time; + } + Dictionary parameters = new Dictionary() {{ "actions", JsonConvert.SerializeObject(actionParameters.Select(action => action.Convert())) }}; diff --git a/PocketSharp/PocketSharp.csproj b/PocketSharp/PocketSharp.csproj index bdaa3e9..1375218 100644 --- a/PocketSharp/PocketSharp.csproj +++ b/PocketSharp/PocketSharp.csproj @@ -36,7 +36,7 @@ false false true - 10f8a946 + 6edaee97 true @@ -57,7 +57,6 @@ - @@ -99,20 +98,20 @@ - ..\packages\Newtonsoft.Json.6.0.2\lib\portable-net40+sl5+wp80+win8+monotouch+monoandroid\Newtonsoft.Json.dll + ..\packages\Newtonsoft.Json.6.0.4\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll - ..\packages\PropertyChanged.Fody.1.48.0.0\Lib\portable-net4+sl4+wp7+win8+MonoAndroid16+MonoTouch40\PropertyChanged.dll + ..\packages\PropertyChanged.Fody.1.48.3\Lib\portable-net4+sl4+wp8+win8+wpa81+MonoAndroid16+MonoTouch40\PropertyChanged.dll False - ..\packages\Microsoft.Net.Http.2.2.19\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.dll + ..\packages\Microsoft.Net.Http.2.2.28\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.dll - ..\packages\Microsoft.Net.Http.2.2.19\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Extensions.dll + ..\packages\Microsoft.Net.Http.2.2.28\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Extensions.dll - ..\packages\Microsoft.Net.Http.2.2.19\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Primitives.dll + ..\packages\Microsoft.Net.Http.2.2.28\lib\portable-net40+sl4+win8+wp71+wpa81\System.Net.Http.Primitives.dll @@ -137,14 +136,14 @@ This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + - +