public async Task GetCurrentUserInfoTest() { var serverMock = new Mock <IDataServer>(); var server = serverMock.Object; var loggerMock = new Mock <ILogger>(); var logger = loggerMock.Object; var optionsMock = new Mock <ICommentOptions>(); var options = optionsMock.Object; var userStoreManagerMock = new Mock <IUserStoreManager>(); var userStoreManager = userStoreManagerMock.Object; var siteOptions = new TwitchSiteOptions { NeedAutoSubNickname = true }; var browserMock = new Mock <IBrowserProfile>(); var cookies = new List <Cookie> { new Cookie("login", "abc", "/", "twitch.tv"), new Cookie("twilight-user", "{%22authToken%22:%22rkpavglsbv6ovec0qj2l5r5q0mnlm4%22%2C%22displayName%22:%22aokpz%22%2C%22id%22:%22223620888%22%2C%22login%22:%22kv501k%22%2C%22roles%22:{%22isStaff%22:false}%2C%22version%22:2}", "/", "twitch.tv"), }; browserMock.Setup(b => b.GetCookieCollection(It.IsAny <string>())).Returns(cookies); var browser = browserMock.Object; var cp = new TwitchCommentProvider(server, logger, options, siteOptions, userStoreManager); var info = await cp.GetCurrentUserInfo(browser); Assert.AreEqual("aokpz", info.Username); Assert.IsTrue(info.IsLoggedIn); }
public async Task Test() { //テスト案 //ログイン済み、未ログインそれぞれの場合にそれぞれの接続コマンドが送信されるか //サーバから送られてくるコマンドに対する反応は適切か。PINGの時はPONGが返されるか、PRIVMSGだったらCommentReceivedが発生するか var data = TestHelper.GetSampleData("Streams.txt"); var raw = "@badges=subscriber/12,partner/1;color=#FF0000;display-name=harutomaru;emotes=189031:20-31,60-71/588715:33-58/635709:73-82;id=9029a587-81b0-4705-8607-38cba9b762d6;mod=0;room-id=39587048;subscriber=1;tmi-sent-ts=1518062412116;turbo=0;user-id=72777405;user-type= :[email protected] PRIVMSG #mimicchi :@bwscar221 おざまぁぁぁす! mimicchiHage haruto1Harutomarubakayarou mimicchiHage bwscarDead"; var userid = "72777405"; var serverMock = new Mock <IDataServer>(); serverMock.Setup(s => s.GetAsync(It.IsAny <string>(), It.IsAny <Dictionary <string, string> >())).Returns(Task.FromResult(data)); var loggerMock = new Mock <ILogger>(); var optionsMock = new Mock <ICommentOptions>(); var siteOptions = new TwitchSiteOptions { NeedAutoSubNickname = true }; var userStoreMock = new Mock <IUserStoreManager>(); var userMock = new Mock <IUser>(); userMock.SetupGet(u => u.UserId).Returns(userid); userStoreMock.Setup(s => s.GetUser(SiteType.Twitch, userid)).Returns(userMock.Object); var browserProfileMock = new Mock <IBrowserProfile>(); var messageProvider = new MessageProvider(); var commentDataMock = new Mock <ICommentData>(); var commentProvider = new C(serverMock.Object, loggerMock.Object, optionsMock.Object, siteOptions, userStoreMock.Object) { MessageProvider = messageProvider, MetadataProvider = new MetadataProvider(), CommentData = commentDataMock.Object, }; IMessageContext actual = null; commentProvider.MessageReceived += (s, e) => { actual = e; commentProvider.Disconnect(); }; var t = commentProvider.ConnectAsync("", browserProfileMock.Object); messageProvider.SetResult(raw); await t; var comment = actual.Message as ITwitchComment; Assert.AreEqual(TwitchMessageType.Comment, comment.TwitchMessageType); Assert.AreEqual("9029a587-81b0-4705-8607-38cba9b762d6", comment.Id); return; }
private TwitchCommentViewModel CreateCvm(IUser user, string username, string message) { var options = new Mock <ICommentOptions>(); var siteOptions = new TwitchSiteOptions { NeedAutoSubNickname = true }; var commentDataMock = new Mock <ICommentData>(); commentDataMock.SetupGet(c => c.Username).Returns(username); commentDataMock.SetupGet(c => c.Message).Returns(message); var userMock = new Mock <IUser>(); var commentProvider = new Mock <ICommentProvider>(); var cvm = new TwitchCommentViewModel(options.Object, siteOptions, commentDataMock.Object, false, commentProvider.Object, user); return(cvm); }
public async Task 自動コテハン登録が機能するか() { var data = TestHelper.GetSampleData("Streams.txt"); var raw = "@badges=subscriber/12,partner/1;color=#FF0000;display-name=harutomaru;id=9029a587-81b0-4705-8607-38cba9b762d6;mod=0;room-id=39587048;subscriber=1;tmi-sent-ts=1518062412116;turbo=0;user-id=72777405;user-type= :[email protected] PRIVMSG #mimicchi :あいう @コテハン えお"; var userid = "72777405"; var serverMock = new Mock <IDataServer>(); serverMock.Setup(s => s.GetAsync(It.IsAny <string>(), It.IsAny <Dictionary <string, string> >())).Returns(Task.FromResult(data)); var loggerMock = new Mock <ILogger>(); var optionsMock = new Mock <ICommentOptions>(); var siteOptions = new TwitchSiteOptions { NeedAutoSubNickname = true }; var userStoreMock = new Mock <IUserStoreManager>(); var user = new UserTest(userid); userStoreMock.Setup(s => s.GetUser(SiteType.Twitch, userid)).Returns(user); var userStoreManager = userStoreMock.Object; var browserProfileMock = new Mock <IBrowserProfile>(); var messageProvider = new MessageProvider(); var commentDataMock = new Mock <ICommentData>(); var commentProvider = new C(serverMock.Object, loggerMock.Object, optionsMock.Object, siteOptions, userStoreManager) { MessageProvider = messageProvider, MetadataProvider = new MetadataProvider(), CommentData = commentDataMock.Object, }; IMessageContext actual = null; commentProvider.MessageReceived += (s, e) => { actual = e; commentProvider.Disconnect(); }; var t = commentProvider.ConnectAsync("", browserProfileMock.Object); messageProvider.SetResult(raw); await t; Assert.AreEqual("コテハン", user.Nickname); return; }
//protected override ICommentData ParsePrivMsg(Result result) //{ // return CommentData; //} public C(IDataServer server, ILogger logger, ICommentOptions options, TwitchSiteOptions siteOptions, IUserStoreManager userStoreManager) : base(server, logger, options, siteOptions, userStoreManager) { }