public async Task WhenCreateOfflineConnection_WithOfflinePersonId() { // Arrange WebHealthVaultConfiguration configuration = new WebHealthVaultConfiguration { DefaultHealthVaultShellUrl = new Uri("http://www.bing.com"), DefaultHealthVaultUrl = new Uri("http://www.bing.com") }; IServiceLocator serviceLocator = Substitute.For <IServiceLocator>(); serviceLocator.GetInstance <WebHealthVaultConfiguration>().Returns(configuration); IOfflineHealthVaultConnection mokcedOfflineHealthVaultConnection = Substitute.For <OfflineHealthVaultConnection>(serviceLocator); Ioc.Container.Configure(c => c.ExportInstance(mokcedOfflineHealthVaultConnection).As <IOfflineHealthVaultConnection>()); WebHealthVaultFactory factory = new WebHealthVaultFactory(); string offlinePersonId = Guid.NewGuid().ToString(); // Act IOfflineHealthVaultConnection offlineHealthVaultConnection = await factory.CreateOfflineConnectionInternalAsync( offlinePersonId : offlinePersonId); // Assert Assert.AreEqual(offlinePersonId, offlineHealthVaultConnection.OfflinePersonId.ToString()); // Assert that default service instance is created and is set to default shell url from web configuration Assert.AreEqual(configuration.DefaultHealthVaultShellUrl, ((OfflineHealthVaultConnection)offlineHealthVaultConnection).ServiceInstance.ShellUrl); }
public async Task WhenOfflinePersonIdIsNull() { // Arrange WebHealthVaultFactory factory = new WebHealthVaultFactory(); // Act await factory.CreateOfflineConnectionInternalAsync(null); }
private async Task <IThingClient> CreateThingClientAsync() { IOfflineHealthVaultConnection offlineHealthVaultConnection = await WebHealthVaultFactory.CreateOfflineConnectionAsync(OfflinePersonId, InstanceId); IThingClient thingClient = offlineHealthVaultConnection.CreateThingClient(); return(thingClient); }
public async Task WhenUserIdentityHasWebConnectionInfo() { // Arrange var webConnectionInfo = new WebConnectionInfo { ServiceInstanceId = "1", PersonInfo = new PersonInfo(), SessionCredential = new SessionCredential(), UserAuthToken = "some" }; // Mock HealthVaultIdentityProvider IHealthVaultIdentityProvider healthVaultIdentityProvider = Substitute.For <IHealthVaultIdentityProvider>(); healthVaultIdentityProvider.TryGetIdentity().Returns(new HealthVaultIdentity { WebConnectionInfo = webConnectionInfo }); Ioc.Container.Configure(c => c.ExportInstance(healthVaultIdentityProvider).As <IHealthVaultIdentityProvider>()); // Mock HealthVaultConnection WebHealthVaultConfiguration webHealthVaultConfiguration = new WebHealthVaultConfiguration(); webHealthVaultConfiguration.DefaultHealthVaultUrl = new Uri("http://www.bing.com"); webHealthVaultConfiguration.DefaultHealthVaultShellUrl = new Uri("http://www.bing.com"); IServiceLocator serviceLocator = Substitute.For <IServiceLocator>(); serviceLocator.GetInstance <WebHealthVaultConfiguration>().Returns(webHealthVaultConfiguration); serviceLocator.GetInstance <IHealthWebRequestClient>().Returns(Substitute.For <IHealthWebRequestClient>()); serviceLocator .GetInstance <IHealthServiceResponseParser>() .Returns(Substitute.For <IHealthServiceResponseParser>()); WebHealthVaultConnection webHealthVaultConnection = Substitute.For <WebHealthVaultConnection>(serviceLocator); Ioc.Container.Configure(c => c.ExportInstance(webHealthVaultConnection).As <IWebHealthVaultConnection>()); // Mock ServiceInstanceProvider IServiceInstanceProvider serviceInstanceProvider = Substitute.For <IServiceInstanceProvider>(); serviceInstanceProvider .GetHealthServiceInstanceAsync(Arg.Any <string>()) .Returns(Task.FromResult(new HealthServiceInstance())); Ioc.Container.Configure(c => c.ExportInstance(serviceInstanceProvider).As <IServiceInstanceProvider>()); WebHealthVaultFactory factory = new WebHealthVaultFactory(); // Act IWebHealthVaultConnection resultWebHealthVaultConnection = await factory.CreateWebConnectionInternalAsync(); // Assert Assert.AreEqual(webConnectionInfo.UserAuthToken, resultWebHealthVaultConnection.UserAuthToken); }
// GET: HealthVault public async Task <ActionResult> Index() { IWebHealthVaultConnection webHealthVaultConnection = await WebHealthVaultFactory.CreateWebConnectionAsync(); PersonInfo personInfo = await webHealthVaultConnection.GetPersonInfoAsync(); IThingClient thingClient = webHealthVaultConnection.CreateThingClient(); IReadOnlyCollection <Weight> weights = await thingClient.GetThingsAsync <Weight>(personInfo.GetSelfRecord().Id); return(View(weights)); }
public async Task <ActionResult> Index() { var webHealthVaultConnection = await WebHealthVaultFactory.CreateWebConnectionAsync(); await webHealthVaultConnection.AuthenticateAsync(); var personInfo = await webHealthVaultConnection.GetPersonInfoAsync(); var restClient = webHealthVaultConnection.CreateMicrosoftHealthVaultRestApi(personInfo.GetSelfRecord().Id); var plans = await restClient.ActionPlans.GetAsync(); return(View(plans)); }
public static async Task <IHealthVaultConnection> GetConnectionAsync(Guid?personId = null) { IHealthVaultConnection connection; if (personId.HasValue) { connection = await WebHealthVaultFactory.CreateOfflineConnectionAsync(personId.Value.ToString()); } else { connection = await WebHealthVaultFactory.CreateWebConnectionAsync(); } await connection.AuthenticateAsync(); return(connection); }
public async Task <ActionResult> CreateWeight() { IWebHealthVaultConnection webHealthVaultConnection = await WebHealthVaultFactory.CreateWebConnectionAsync(); PersonInfo personInfo = await webHealthVaultConnection.GetPersonInfoAsync(); IThingClient thingClient = webHealthVaultConnection.CreateThingClient(); LocalDateTime nowLocal = SystemClock.Instance.GetCurrentInstant().InZone(DateTimeZoneProviders.Tzdb.GetSystemDefault()).LocalDateTime; await thingClient.CreateNewThingsAsync(personInfo.GetSelfRecord().Id, new List <Weight> { new Weight(new HealthServiceDateTime(nowLocal), new WeightValue(10)) }); return(RedirectToAction("Index", new RouteValueDictionary())); }
public async Task WhenUserIdentityHasNoWebConnectionInfo_ThenExceptionRaised() { // Arrange IHealthVaultIdentityProvider healthVaultIdentityProvider = Substitute.For <IHealthVaultIdentityProvider>(); healthVaultIdentityProvider.TryGetIdentity().Returns(new HealthVaultIdentity()); Ioc.Container.Configure(c => c.ExportInstance(healthVaultIdentityProvider).As <IHealthVaultIdentityProvider>()); IWebHealthVaultConnection webHealthVaultConnection = Substitute.For <IWebHealthVaultConnection>(); Ioc.Container.Configure(c => c.ExportInstance(webHealthVaultConnection).As <IWebHealthVaultConnection>()); WebHealthVaultFactory factory = new WebHealthVaultFactory(); // Act await factory.CreateWebConnectionInternalAsync(); }
public async Task WhenUserPrincipalDoesntExist_ThenAnonymousConnectionCreated() { // Arrange // Mocked identity provider would return a null value for "TryGetIdentity", in which case // an anonymous web connection is created IHealthVaultIdentityProvider healthVaultIdentityProvider = Substitute.For <IHealthVaultIdentityProvider>(); Ioc.Container.Configure(c => c.ExportInstance(healthVaultIdentityProvider).As <IHealthVaultIdentityProvider>()); IWebHealthVaultConnection webHealthVaultConnection = Substitute.For <IWebHealthVaultConnection>(); Ioc.Container.Configure(c => c.ExportInstance(webHealthVaultConnection).As <IWebHealthVaultConnection>()); WebHealthVaultFactory factory = new WebHealthVaultFactory(); // Act IWebHealthVaultConnection resultWebHealthVaultConnection = await factory.CreateWebConnectionInternalAsync(); // Assert Assert.IsNotNull(resultWebHealthVaultConnection); }
public async Task WhenCreateOfflineConnection_WithOfflinePersonIdAndInstanceId() { // Arrange WebHealthVaultConfiguration configuration = new WebHealthVaultConfiguration { DefaultHealthVaultShellUrl = new Uri("http://www.bing.com"), DefaultHealthVaultUrl = new Uri("http://www.bing.com") }; IServiceLocator serviceLocator = Substitute.For <IServiceLocator>(); serviceLocator.GetInstance <WebHealthVaultConfiguration>().Returns(configuration); IOfflineHealthVaultConnection mokcedOfflineHealthVaultConnection = Substitute.For <OfflineHealthVaultConnection>(serviceLocator); Ioc.Container.Configure(c => c.ExportInstance(mokcedOfflineHealthVaultConnection).As <IOfflineHealthVaultConnection>()); WebHealthVaultFactory factory = new WebHealthVaultFactory(); string offlinePersonId = Guid.NewGuid().ToString(); IServiceInstanceProvider serviceInstanceProvider = Substitute.For <IServiceInstanceProvider>(); serviceInstanceProvider.GetHealthServiceInstanceAsync(Arg.Any <string>()) .Returns(new HealthServiceInstance { Name = "Test" }); Ioc.Container.Configure(c => c.ExportInstance(serviceInstanceProvider).As <IServiceInstanceProvider>()); string instanceId = Guid.NewGuid().ToString(); // Act IOfflineHealthVaultConnection offlineHealthVaultConnection = await factory.CreateOfflineConnectionInternalAsync( offlinePersonId : offlinePersonId, instanceId : instanceId); // Assert Assert.AreEqual(offlinePersonId, offlineHealthVaultConnection.OfflinePersonId.ToString()); Assert.AreEqual("Test", ((OfflineHealthVaultConnection)offlineHealthVaultConnection).ServiceInstance.Name); }