From 670fecb1e01030d3695a9a1a026a7e2c06fec39f Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Fri, 27 Dec 2013 21:34:22 +0100 Subject: [PATCH] respect given_url if no resolved_url is given --- PocketSharp.Tests/GetTests.cs | 14 ++++++++++++++ PocketSharp/Models/PocketItem.cs | 13 +++++++++++-- PocketSharp/Utilities/PocketException.cs | 5 +++-- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/PocketSharp.Tests/GetTests.cs b/PocketSharp.Tests/GetTests.cs index f1b0169..785ac4e 100644 --- a/PocketSharp.Tests/GetTests.cs +++ b/PocketSharp.Tests/GetTests.cs @@ -246,5 +246,19 @@ namespace PocketSharp.Tests Assert.True(items.Count == 1 && items[0].IsDeleted); } + + [Fact] + public async Task AreUncachedItemsProperlyResolved() + { + PocketItem item = await client.Add(new Uri("http://de.ign.com/m/feature/21608/die-20-besten-kurzfilme-des-jahres-2013?bust=1")); + + List items = await client.Get(state: State.all); + + Assert.NotNull(item.Uri); + Assert.NotNull(items[0].Uri); + Assert.Equal(item.Uri, items[0].Uri); + + itemsToDelete.Add(item.ID); + } } } diff --git a/PocketSharp/Models/PocketItem.cs b/PocketSharp/Models/PocketItem.cs index 26a77e5..2a54e8b 100644 --- a/PocketSharp/Models/PocketItem.cs +++ b/PocketSharp/Models/PocketItem.cs @@ -42,6 +42,15 @@ namespace PocketSharp.Models [JsonProperty("normal_url")] private Uri _NormalUri { get; set; } + /// + /// Gets or sets the given URI. + /// + /// + /// The given URI. + /// + [JsonProperty("given_url")] + private Uri _GivenUri { get; set; } + /// /// Gets or sets the resolved URI. /// @@ -60,8 +69,8 @@ namespace PocketSharp.Models [JsonIgnore] public Uri Uri { - get { return _ResolvedUri ?? _NormalUri; } - set { _NormalUri = value; _ResolvedUri = value; } + get { return _ResolvedUri ?? _GivenUri ?? _NormalUri; } + set { _NormalUri = value; _ResolvedUri = value; _GivenUri = value; } } /// diff --git a/PocketSharp/Utilities/PocketException.cs b/PocketSharp/Utilities/PocketException.cs index c87bf0d..24422a3 100644 --- a/PocketSharp/Utilities/PocketException.cs +++ b/PocketSharp/Utilities/PocketException.cs @@ -1,4 +1,5 @@ using System; +using System.Diagnostics; namespace PocketSharp { @@ -36,7 +37,7 @@ namespace PocketSharp /// /// The message that describes the error. public PocketException(string message) - : base(message) { } + : base(message) { Debug.WriteLine(message); } /// @@ -45,6 +46,6 @@ namespace PocketSharp /// The error message that explains the reason for the exception. /// The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. public PocketException(string message, Exception innerException) - : base(message, innerException) { } + : base(message, innerException) { Debug.WriteLine(message); } } }