public async Task WhenTokenAndInstanceId()
        {
            // Arrange
            IServiceLocator serviceLocator = Substitute.For <IServiceLocator>();

            WebHealthVaultConfiguration webHealthVaultConfiguration = Substitute.For <WebHealthVaultConfiguration>();
            ICookieDataManager          cookieDataManager           = Substitute.For <ICookieDataManager>();

            serviceLocator.GetInstance <WebHealthVaultConfiguration>().Returns(webHealthVaultConfiguration);
            serviceLocator.GetInstance <ICookieDataManager>().Returns(cookieDataManager);

            WebHealthVaultConnection webHealthVaultConnection = Substitute.For <WebHealthVaultConnection>(serviceLocator);

            Ioc.Container.Configure(c => c.ExportInstance(webHealthVaultConnection).As <IWebHealthVaultConnection>());

            IPersonClient mockedPersonClient = Substitute.For <IPersonClient>();

            mockedPersonClient.GetPersonInfoAsync().Returns(Task.FromResult(new PersonInfo()));

            Ioc.Container.Configure(c => c.ExportInstance(mockedPersonClient).As <IPersonClient>());

            // Act
            IWebConnectionInfoProvider webConnectionInfoProvider = new WebConnectionInfoProvider(serviceLocator);
            WebConnectionInfo          webConnectionInfo         = await webConnectionInfoProvider.CreateWebConnectionInfoAsync("someToken", "1");

            // Assert
            Assert.AreEqual("someToken", webConnectionInfo.UserAuthToken);
        }
        public void WhenLoadedFromCookie()
        {
            // Arrange
            IServiceLocator serviceLocator = Substitute.For <IServiceLocator>();

            // mock configuration
            MockConfiguration(serviceLocator);

            // mock request
            HttpContextBase httpContext    = Substitute.For <HttpContextBase>();
            var             requestWrapper = MockHttpRequestWithCookie();

            httpContext.Request.Returns(requestWrapper);

            // mock cookie data manager to send dummy webconnection info
            var webConnectionInfo = MockCookieDataManager(serviceLocator);

            IWebConnectionInfoProvider webConnectionInfoProvider = new WebConnectionInfoProvider(serviceLocator);

            // Act
            WebConnectionInfo result = webConnectionInfoProvider.TryLoad(httpContext);

            // Assert
            Assert.AreEqual(webConnectionInfo.UserAuthToken, result.UserAuthToken);
        }
        public void WhenCookieNotPresent()
        {
            // Arrange
            IServiceLocator serviceLocator = Substitute.For <IServiceLocator>();

            // mock configuration
            MockConfiguration(serviceLocator);

            // mock request
            HttpContextBase httpContext    = Substitute.For <HttpContextBase>();
            var             requestWrapper = MockHttpRequestWithCookie("Some");

            httpContext.Request.Returns(requestWrapper);

            IWebConnectionInfoProvider webConnectionInfoProvider = new WebConnectionInfoProvider(serviceLocator);

            // Act
            WebConnectionInfo result = webConnectionInfoProvider.TryLoad(httpContext);

            // Assert
            Assert.IsNull(result);
        }