OSDN Git Service

MicrosoftTranslatorApi.RefreshAccessTokenAt をDateTimeUtc構造体に変更
authorKimura Youichi <kim.upsilon@bucyou.net>
Mon, 7 May 2018 02:40:39 +0000 (11:40 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Wed, 9 May 2018 01:23:40 +0000 (10:23 +0900)
OpenTween.Tests/Api/MicrosoftTranslatorApiTest.cs
OpenTween/Api/MicrosoftTranslatorApi.cs

index 9097b8b..ea77c51 100644 (file)
@@ -88,7 +88,7 @@ namespace OpenTween.Api
             Assert.Equal("1234abcd", translateApi.AccessToken);
 
             // 期待値との差が 3 秒以内であるか
-            var expectedExpiresAt = DateTime.Now + TimeSpan.FromSeconds(1000 - 30);
+            var expectedExpiresAt = DateTimeUtc.Now + TimeSpan.FromSeconds(1000 - 30);
             Assert.True((translateApi.RefreshAccessTokenAt - expectedExpiresAt).Duration() < TimeSpan.FromSeconds(3));
         }
 
@@ -99,7 +99,7 @@ namespace OpenTween.Api
 
             var translateApi = mock.Object;
             translateApi.AccessToken = "1234abcd";
-            translateApi.RefreshAccessTokenAt = DateTime.Now + TimeSpan.FromMinutes(3);
+            translateApi.RefreshAccessTokenAt = DateTimeUtc.Now + TimeSpan.FromMinutes(3);
 
             await translateApi.UpdateAccessTokenIfExpired()
                 .ConfigureAwait(false);
@@ -117,7 +117,7 @@ namespace OpenTween.Api
 
             var translateApi = mock.Object;
             translateApi.AccessToken = "1234abcd";
-            translateApi.RefreshAccessTokenAt = DateTime.Now - TimeSpan.FromMinutes(3);
+            translateApi.RefreshAccessTokenAt = DateTimeUtc.Now - TimeSpan.FromMinutes(3);
 
             await translateApi.UpdateAccessTokenIfExpired()
                 .ConfigureAwait(false);
@@ -125,7 +125,7 @@ namespace OpenTween.Api
             Assert.Equal("5678efgh", translateApi.AccessToken);
 
             // 期待値との差が 3 秒以内であるか
-            var expectedExpiresAt = DateTime.Now + TimeSpan.FromSeconds(1000 - 30);
+            var expectedExpiresAt = DateTimeUtc.Now + TimeSpan.FromSeconds(1000 - 30);
             Assert.True((translateApi.RefreshAccessTokenAt - expectedExpiresAt).Duration() < TimeSpan.FromSeconds(3));
         }
 
index ae62b69..a81094d 100644 (file)
@@ -39,7 +39,7 @@ namespace OpenTween.Api
         public static readonly Uri TranslateEndpoint = new Uri("https://api.microsofttranslator.com/v2/Http.svc/Translate");
 
         public string AccessToken { get; internal set; }
-        public DateTime RefreshAccessTokenAt { get; internal set; }
+        public DateTimeUtc RefreshAccessTokenAt { get; internal set; }
 
         private HttpClient Http => this.localHttpClient ?? Networking.Http;
         private readonly HttpClient localHttpClient;
@@ -84,7 +84,7 @@ namespace OpenTween.Api
 
         public async Task UpdateAccessTokenIfExpired()
         {
-            if (this.AccessToken != null && this.RefreshAccessTokenAt > DateTime.Now)
+            if (this.AccessToken != null && this.RefreshAccessTokenAt > DateTimeUtc.Now)
                 return;
 
             var (accessToken, expiresIn) = await this.GetAccessTokenAsync()
@@ -93,7 +93,7 @@ namespace OpenTween.Api
             this.AccessToken = accessToken;
 
             // アクセストークンの実際の有効期限より 30 秒早めに失効として扱う
-            this.RefreshAccessTokenAt = DateTime.Now + expiresIn - TimeSpan.FromSeconds(30);
+            this.RefreshAccessTokenAt = DateTimeUtc.Now + expiresIn - TimeSpan.FromSeconds(30);
         }
 
         internal virtual async Task<(string AccessToken, TimeSpan ExpiresIn)> GetAccessTokenAsync()