Example #1
0
        public async Task ReturnUserInfoIfValidDataReturnedFromApi()
        {
            // Arrange
            // Mock Dependencies
            ILineHttpClient fakeLineHttpClient = A.Fake <ILineHttpClient>();

            //Initialize
            ILineMessagingClient realLineMessagingClient = new LineMessagingClient(fakeLineHttpClient);

            //Mock Data
            string fakeResponseData = @"{
                ""displayName"" : ""user"",
                ""userId"" : ""test"",
                ""pictureUrl"" : ""img"",
                ""statusMessage"" : ""busy"",
            }";

            byte[] fakeResponse = Encoding.ASCII.GetBytes(fakeResponseData);
            A.CallTo(() => fakeLineHttpClient.GetProfileAsync("test")).Returns(Task.FromResult(fakeResponse));

            // Act
            var testResult = await realLineMessagingClient.GetUserInfoAsync("test");

            // Assert
            A.CallTo(() => fakeLineHttpClient.GetProfileAsync("test")).MustHaveHappened();
            Assert.Equal("user", testResult.displayName);
            Assert.Equal("test", testResult.userId);
            Assert.Equal("img", testResult.pictureUrl);
            Assert.Equal("busy", testResult.statusMessage);
        }
Example #2
0
        public async Task <LineUserInfo> GetUserInfoAsync(string userId)
        {
            var data = await lineHttpClient.GetProfileAsync(userId).ConfigureAwait(false);

            return(JsonConvert.DeserializeObject <LineUserInfo>(Encoding.UTF8.GetString(data)));
        }