public async void GetAuthToken()
        {
            service.Username = "******";
            service.Password = "******";

            PowerGuideAuthToken actual = await MockLogIn();

            actual.Should().Be(new PowerGuideAuthToken("abcdef"));
        }
Exemplo n.º 2
0
        private async Task <PowerGuideAuthToken> logIn()
        {
            LOGGER.Debug("Logging in to MySolarCity as {0}", username);
            PreLogInData preLogInData = await client.authentication.fetchPreLogInData();

            IDictionary <string, string> credentialResponseParams =
                await client.authentication.submitCredentials(username, password, preLogInData);

            PowerGuideAuthToken authToken = await client.authentication.fetchAuthToken(credentialResponseParams);

            LOGGER.Debug("Logged in to MySolarCity");
            LOGGER.Trace($"MySolarCity auth token: {authToken}");
            return(authToken);
        }
Exemplo n.º 3
0
        public async Task logOut()
        {
            if (_authToken != null)
            {
                try {
                    await client.authentication.logOut();
                } catch (PowerGuideException) {
                    //proceed even if log out fails, because what else can we do?
                }
            }

            _authToken = null;
            username   = null;
            password   = null;
        }
        public async void FetchAuthToken()
        {
            var    response    = A.Fake <HttpResponseMessage>();
            string requestBody = null;

            A.CallTo(() => httpMessageHander.SendAsync(A <HttpRequestMessage> ._)).ReturnsLazily(async call =>
            {
                requestBody = await call.Arguments[0].As <HttpRequestMessage>().Content.ReadAsStringAsync();
                return(response);
            });

            var cookieContainer = new CookieContainer();

            cookieContainer.Add(new Uri("https://mysolarcity.com/"), new Cookie("FedAuth", "hargle"));
            A.CallTo(() => apiClient.Cookies).Returns(cookieContainer);

            var credentialResponse = new Dictionary <string, string>
            {
                ["wa"]      = "wsignin1.0",
                ["wresult"] = "some XML bullshit",
                ["wctx"]    = "rm=0&id=passive&ru=%2f"
            };

            PowerGuideAuthToken actual = await client.FetchAuthToken(credentialResponse);

            actual.FedAuth.Should().Be("hargle");

            A.CallTo(() => httpMessageHander.SendAsync(A <HttpRequestMessage> .That.Matches(message =>
                                                                                            message.Method == HttpMethod.Post &&
                                                                                            message.RequestUri.ToString().Equals("https://mysolarcity.com/")
                                                                                            ))).MustHaveHappened();

            requestBody.Should().Be("wa=wsignin1.0" +
                                    "&wresult=some+XML+bullshit" +
                                    "&wctx=rm%3D0%26id%3Dpassive%26ru%3D%252f");
        }
Exemplo n.º 5
0
 public async Task <PowerGuideAuthToken> getAuthToken()
 {
     return(_authToken ?? (_authToken = await logIn()));
 }