public async Task Handle_GetAppAccessTokenCommand_AccessTokenExisted() { //Arrange var expected = new AppAccessToken() { access_token = "789012", expires_in = 7200, time_stamp = DateTime.Now }; var db = new List <AppAccessToken>() { expected }; context.SetupGet(c => c.AppAccessTokens).Returns(Mocking.GetMockDbSet(db)); var command = new GetAppAccessTokenCommand(); var handler = createHandler(); //Act var result = await handler.Handle(command); //Assert context.VerifyAll(); Assert.True(Jsonning.EqualsOrThrows(expected, result)); Assert.Same(expected, db.FirstOrDefault()); }
public async Task Get_UserInfoController() { //Arrange var code = "123"; var expected = new UserInfo(); var controller = createController(); mediator.Setup(m => m.Send(It.IsAny <GetUserAccessTokenCommand>(), It.IsAny <CancellationToken>())) .Returns <GetUserAccessTokenCommand, CancellationToken>((command, token) => { Assert.Equal(code, command.Code); return(Task.FromResult(new UserAccessToken() { access_token = "access token", openid = "open id" })); }); mediator.Setup(m => m.Send(It.IsAny <GetUserInfoCommand>(), It.IsAny <CancellationToken>())) .Returns <GetUserInfoCommand, CancellationToken>((command, token) => { Assert.Equal("access token", command.AccessToken); Assert.Equal("open id", command.OpenId); return(Task.FromResult(expected)); }); //Act var result = await controller.Get(code) as OkObjectResult; //Assert Assert.True(Jsonning.EqualsOrThrows(expected, result.Value)); }
public async Task GetAppAccessTokenAsync_WeChatCommunicator() { //Arrange var appid = "wxf1759596e3365d3e"; var secret = "50d58aee48c9e5cb8a593b93cc182547"; var access_token = "123456"; var expires_in = 7200; var expected = new AppAccessToken() { access_token = access_token, expires_in = expires_in, time_stamp = new DateTime(2017, 1, 1) }; var service = createService(); http.Setup(h => h.GetAsync($"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={secret}")) .Returns(Task.FromResult(JsonConvert.SerializeObject(new { access_token = access_token, expires_in = expires_in }))); provider.Setup(p => p.GetNow()).Returns(new DateTime(2017, 1, 1)); config["AppId"] = appid; config["Secret"] = secret; //Act var actual = await service.GetAppAccessTokenAsync(); //Assert http.VerifyAll(); provider.VerifyAll(); Assert.True(Jsonning.EqualsOrThrows(expected, actual)); }
public async Task GetUserInfoAsync_WeChatCommunicator() { //Arrange var accessToken = "access token"; var openId = "open id"; var expected = new UserInfo(); var service = createService(); http.Setup(h => h.GetAsync <UserInfo>($"https://api.weixin.qq.com/sns/userinfo?access_token={accessToken}&openid={openId}&lang=zh_CN")) .Returns(Task.FromResult(expected)); //Act var actual = await service.GetUserInfoAsync(accessToken, openId); //Assert http.VerifyAll(); Assert.True(Jsonning.EqualsOrThrows(expected, actual)); }
public async Task Handle_GetUserAccessTokenCommand_OpenIdOfUserAccessTokenExisted() { //Arrange var expected = new UserAccessToken() { openid = "321", access_token = "1", expires_in = "1", refresh_token = "1", scope = "1" }; var db = new List <UserAccessToken> { new UserAccessToken { openid = "321", access_token = "2", expires_in = "2", refresh_token = "2", scope = "2" } }; communicator.Setup(c => c.GetUserAccessTokenAsync("123")) .Returns(Task.FromResult(expected)); context.SetupGet(c => c.UserAccessTokens).Returns(Mocking.GetMockDbSet(db)); context.Setup(c => c.SaveAsync()).Returns(Task.CompletedTask); var command = new GetUserAccessTokenCommand(code: "123"); var handler = createHandler(); //Act var result = await handler.Handle(command); //Assert communicator.VerifyAll(); context.VerifyAll(); Assert.True(Jsonning.EqualsOrThrows(expected, result)); Assert.NotSame(expected, db.FirstOrDefault()); Assert.Equal(expected.access_token, db.FirstOrDefault().access_token); Assert.Equal(expected.expires_in, db.FirstOrDefault().expires_in); Assert.Equal(expected.refresh_token, db.FirstOrDefault().refresh_token); Assert.Equal(expected.scope, db.FirstOrDefault().scope); }
public async Task Handle_GetUserInfoCommand() { //Arrange var expected = new UserInfo(); var db = new List <UserInfo>(); communicator.Setup(c => c.GetUserInfoAsync("token", "openid")) .Returns(Task.FromResult(expected)); var command = new GetUserInfoCommand(accessToken: "token", openId: "openid"); var handler = createHandler(); //Act var result = await handler.Handle(command); //Assert communicator.VerifyAll(); Assert.True(Jsonning.EqualsOrThrows(expected, result)); }
public async Task GetUserAccessTokenAsync_WeChatCommunicator() { //Arrange var expected = new UserAccessToken(); var appid = "wxf1759596e3365d3e"; var code = "123456"; var secret = "50d58aee48c9e5cb8a593b93cc182547"; var service = createService(); http.Setup(h => h.GetAsync <UserAccessToken>($"https://api.weixin.qq.com/sns/oauth2/access_token?appid={appid}&secret={secret}&code={code}&grant_type=authorization_code")) .Returns(Task.FromResult(expected)); config["AppId"] = appid; config["Secret"] = secret; //Act var actual = await service.GetUserAccessTokenAsync(code); //Assert http.VerifyAll(); Assert.True(Jsonning.EqualsOrThrows(expected, actual)); }
public async Task Handle_GetAppAccessTokenCommand_AccessTokenNotExisted() { //Arrange var expected = new AppAccessToken(); var db = new List <AppAccessToken>(); communicator.Setup(c => c.GetAppAccessTokenAsync()) .Returns(Task.FromResult(expected)); context.SetupGet(c => c.AppAccessTokens).Returns(Mocking.GetMockDbSet(db)); context.Setup(c => c.SaveAsync()).Returns(Task.CompletedTask); var command = new GetAppAccessTokenCommand(); var handler = createHandler(); //Act var result = await handler.Handle(command); //Assert communicator.VerifyAll(); context.VerifyAll(); Assert.True(Jsonning.EqualsOrThrows(expected, result)); Assert.Same(expected, db.FirstOrDefault()); }
public async Task Handle_GetAppAccessTokenCommand_AccessTokenOutDated() { //Arrange var expected = new AppAccessToken() { access_token = "789012", expires_in = 7200, time_stamp = DateTime.Now }; var db = new List <AppAccessToken>() { new AppAccessToken { access_token = "123456", expires_in = 7200, time_stamp = DateTime.Now.AddHours(-3) } }; communicator.Setup(c => c.GetAppAccessTokenAsync()) .Returns(Task.FromResult(expected)); context.SetupGet(c => c.AppAccessTokens).Returns(Mocking.GetMockDbSet(db)); context.Setup(c => c.SaveAsync()).Returns(Task.CompletedTask); var command = new GetAppAccessTokenCommand(); var handler = createHandler(); //Act var result = await handler.Handle(command); //Assert communicator.VerifyAll(); context.VerifyAll(); Assert.True(Jsonning.EqualsOrThrows(expected, result)); Assert.Equal(expected.access_token, db.FirstOrDefault().access_token); Assert.Equal(expected.expires_in, db.FirstOrDefault().expires_in); Assert.Equal(expected.time_stamp, db.FirstOrDefault().time_stamp); }