Skip to content

Commit

Permalink
TweenMain.RefreshTimelineメソッドに対するテストコードを追加
Browse files Browse the repository at this point in the history
  • Loading branch information
upsilon committed Jan 11, 2024
1 parent 229ce89 commit f5c2a59
Show file tree
Hide file tree
Showing 4 changed files with 140 additions and 1 deletion.
82 changes: 82 additions & 0 deletions OpenTween.Tests/Models/TabModelTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -673,6 +673,88 @@ public void OnFilterModified_DetachedTest()
Assert.False(tab.FilterModified);
}

[Fact]
public void IndexOf_SingleFoundTest()
{
var tab = new PublicSearchTabModel("search");

tab.AddPostQueue(new()
{
StatusId = new TwitterStatusId("100"),
CreatedAtForSorting = new(2023, 1, 1, 0, 0, 0),
TextFromApi = "aaa",
});
tab.SetSortMode(ComparerMode.Id, SortOrder.Ascending);
tab.AddSubmit();

Assert.Equal(0, tab.IndexOf(new TwitterStatusId("100")));
}

[Fact]
public void IndexOf_SingleNotFoundTest()
{
var tab = new PublicSearchTabModel("search");

tab.AddPostQueue(new()
{
StatusId = new TwitterStatusId("100"),
CreatedAtForSorting = new(2023, 1, 1, 0, 0, 0),
TextFromApi = "aaa",
});
tab.SetSortMode(ComparerMode.Id, SortOrder.Ascending);
tab.AddSubmit();

Assert.Equal(-1, tab.IndexOf(new TwitterStatusId("200")));
}

[Fact]
public void IndexOf_MultipleFoundTest()
{
var tab = new PublicSearchTabModel("search");

tab.AddPostQueue(new()
{
StatusId = new TwitterStatusId("100"),
CreatedAtForSorting = new(2023, 1, 1, 0, 0, 0),
TextFromApi = "aaa",
});
tab.AddPostQueue(new()
{
StatusId = new TwitterStatusId("200"),
CreatedAtForSorting = new(2023, 1, 1, 0, 0, 1),
TextFromApi = "bbb",
});
tab.SetSortMode(ComparerMode.Id, SortOrder.Ascending);
tab.AddSubmit();

var actual = tab.IndexOf(new[] { new TwitterStatusId("200"), new TwitterStatusId("100") });
Assert.Equal(new[] { 1, 0 }, actual);
}

[Fact]
public void IndexOf_MultiplePartiallyFoundTest()
{
var tab = new PublicSearchTabModel("search");

tab.AddPostQueue(new()
{
StatusId = new TwitterStatusId("100"),
CreatedAtForSorting = new(2023, 1, 1, 0, 0, 0),
TextFromApi = "aaa",
});
tab.AddPostQueue(new()
{
StatusId = new TwitterStatusId("200"),
CreatedAtForSorting = new(2023, 1, 1, 0, 0, 1),
TextFromApi = "bbb",
});
tab.SetSortMode(ComparerMode.Id, SortOrder.Ascending);
tab.AddSubmit();

var actual = tab.IndexOf(new[] { new TwitterStatusId("100"), new TwitterStatusId("999") });
Assert.Equal(new[] { 0, -1 }, actual);
}

[Fact]
public void SearchPostsAll_Test()
{
Expand Down
21 changes: 21 additions & 0 deletions OpenTween.Tests/Models/TwitterPostFactoryTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,27 @@ public void CreateFromDirectMessageEvent_SenderTest()
Assert.True(post.IsMe);
}

[Fact]
public void GetReceivedHashtags_Test()
{
var factory = new TwitterPostFactory(this.CreateTabinfo());
var status = this.CreateStatus();
status.FullText = "hoge #OpenTween";
status.Entities.Hashtags = new[]
{
new TwitterEntityHashtag
{
Indices = new[] { 5, 15 },
Text = "OpenTween",
},
};

_ = factory.CreateFromStatus(status, selfUserId: 20000L, followerIds: EmptyIdSet);

Assert.Equal(new[] { "#OpenTween" }, factory.GetReceivedHashtags());
Assert.Empty(factory.GetReceivedHashtags());
}

[Fact]
public void CreateFromStatus_MediaAltTest()
{
Expand Down
36 changes: 36 additions & 0 deletions OpenTween.Tests/TweenMainTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
Expand Down Expand Up @@ -55,6 +56,11 @@ private void UsingTweenMain(Action<TweenMain, TestContext> func)
using var iconAssets = new IconAssetsManager();
var thumbnailGenerator = new ThumbnailGenerator(new(autoupdate: false));

// TabInformation.GetInstance() で取得できるようにする
var field = typeof(TabInformations).GetField("Instance",
BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.SetField);
field.SetValue(null, tabinfo);

using var tweenMain = new TweenMain(settings, tabinfo, twitter, imageCache, iconAssets, thumbnailGenerator);
var context = new TestContext(settings, tabinfo);

Expand Down Expand Up @@ -174,6 +180,36 @@ public void AddNewTab_PublicSearchTabTest()
});
}

[WinFormsFact]
public void RefreshTimeline_Test()
{
this.UsingTweenMain((tweenMain, context) =>
{
var tabPage = tweenMain.ListTab.TabPages[0];
Assert.Equal("Recent", tabPage.Text);

var listView = (DetailsListView)tabPage.Controls[0];
Assert.Equal(0, listView.VirtualListSize);

var post = new PostClass
{
StatusId = new TwitterStatusId("100"),
Text = "hoge",
UserId = 111L,
ScreenName = "opentween",
CreatedAt = new(2024, 1, 1, 0, 0, 0),
};
context.TabInfo.AddPost(post);
context.TabInfo.DistributePosts();
tweenMain.RefreshTimeline();

Assert.Equal(1, listView.VirtualListSize);

var listItem = listView.Items[0];
Assert.Equal("opentween", listItem.SubItems[4].Text);
});
}

[WinFormsFact]
public void FormatStatusText_NewLineTest()
{
Expand Down
2 changes: 1 addition & 1 deletion OpenTween/Tween.cs
Original file line number Diff line number Diff line change
Expand Up @@ -811,7 +811,7 @@ internal void MarkSettingAtIdModified()
_ = this.saveConfigDebouncer.Call();
}

private void RefreshTimeline()
internal void RefreshTimeline()
{
var curListView = this.CurrentListView;

Expand Down

0 comments on commit f5c2a59

Please sign in to comment.