OSDN Git Service

PostIdのソート順の仕様を変更
authorKimura Youichi <kim.upsilon@bucyou.net>
Tue, 21 Nov 2023 13:35:00 +0000 (22:35 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Tue, 21 Nov 2023 13:35:25 +0000 (22:35 +0900)
OpenTween.Tests/Models/PostIdTest.cs
OpenTween/Models/PostId.cs

index 33f6702..e4a9060 100644 (file)
@@ -60,6 +60,15 @@ namespace OpenTween.Models
         }
 
         [Fact]
+        public void CompareTo_IdLengthTest()
+        {
+            var a = this.CreatePostId("twitter", "200");
+            var b = this.CreatePostId("twitter", "1000");
+            Assert.True(a.CompareTo(b) < 0);
+            Assert.True(b.CompareTo(a) > 0);
+        }
+
+        [Fact]
         public void OperatorGreaterThan_Test()
         {
             var a = this.CreatePostId("twitter", "100");
index da60a81..3cd81d7 100644 (file)
@@ -44,6 +44,11 @@ namespace OpenTween.Models
             if (compareByIdType != 0)
                 return compareByIdType;
 
+            // 辞書順による比較のみだと "20" > "100" となってしまうため文字数による比較も加える
+            var compareByIdLength = this.Id.Length.CompareTo(other.Id.Length);
+            if (compareByIdLength != 0)
+                return compareByIdLength;
+
             return this.Id.CompareTo(other.Id);
         }