public IEnumerator GetAccessCodeFromTokenAsync_WebResponseSuccess_ReturnsToken() { LearningLayersOidcProvider lloidc = new LearningLayersOidcProvider(); IRestConnector restConnector = A.Fake <IRestConnector>(); A.CallTo(() => restConnector.PostAsync(A <string> .Ignored, A <string> .Ignored)) .Returns(Task.FromResult(new WebResponse <string>("json string", null, 200))); lloidc.RestConnector = restConnector; lloidc.ClientData = A.Fake <ClientData>(); LearningLayersAuthorizationFlowAnswer answer = new LearningLayersAuthorizationFlowAnswer(); answer.access_token = "myAccessToken"; IJsonSerializer serializer = A.Fake <IJsonSerializer>(); A.CallTo(() => serializer.FromJson <LearningLayersAuthorizationFlowAnswer>(A <string> .Ignored)) .Returns(answer); lloidc.JsonSerializer = serializer; Task <string> task = lloidc.GetAccessTokenFromCodeAsync("", ""); yield return(AsyncTest.WaitForTask(task)); string res = task.Result; Assert.AreEqual(answer.access_token, res); }
public IEnumerator GetAccessCodeFromTokenAsync_WebResponseFailed_ReturnsEmptyToken() { LearningLayersOidcProvider lloidc = new LearningLayersOidcProvider(); IRestConnector restConnector = A.Fake <IRestConnector>(); A.CallTo(() => restConnector.PostAsync(A <string> .Ignored, A <string> .Ignored)) .Returns(Task.FromResult(new WebResponse <string>("my error", 400))); lloidc.RestConnector = restConnector; lloidc.ClientData = A.Fake <ClientData>(); lloidc.JsonSerializer = A.Fake <IJsonSerializer>(); LogAssert.Expect(LogType.Error, new Regex(@"\w*my error\w*")); Task <string> task = lloidc.GetAccessTokenFromCodeAsync("", ""); yield return(AsyncTest.WaitForTask(task)); string res = task.Result; Assert.IsEmpty(res); }