public async void GetMetadata_InternalServerErrorStatusCode_ThrowsException() { // Arrange var httpResponseMessage = new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent("") }; var httpService = new Mock <IHttpService>(); httpService .Setup(m => m.GetAsync(It.IsAny <string>())) .ReturnsAsync(httpResponseMessage); var metadataClient = new MetadataClient(httpService.Object); Exception exception = null; try { // Act await metadataClient.GetMetadata(It.IsAny <string>()); } catch (FailedToGetResourceException e) { exception = e; } // Assert Assert.NotNull(exception); }
public void GetCustomProjectMetadata() { var client = MetadataClient.Create(); var value = client.GetCustomProjectMetadata("my_project_key1"); Assert.Equal("my_project_value1", value); }
public async void MarkMetadata_ToBeDeletedMetadataModel_ThrowsException() { // Arrange var httpResponseMessage = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(MetadataModelDataMocks.MockToBeDeletedMetadataModelJson) }; var httpService = new Mock <IHttpService>(); httpService .Setup(m => m.GetAsync(It.IsAny <string>())) .ReturnsAsync(httpResponseMessage); var metadataClient = new MetadataClient(httpService.Object); Exception exception = null; try { // Act await metadataClient.MarkMetadata(It.IsAny <string>()); } catch (ResourceAlreadyMarkedException e) { exception = e; } // Assert Assert.NotNull(exception); }
public void Init() { var partnerClient = new PartnerClient(); _loginResult = partnerClient.Login(Username, Password).Result; _metadataClient = new MetadataClient(_loginResult.MetadataServerUrl, _loginResult.SessionId); }
public void GetCustomInstanceMetadata() { var client = MetadataClient.Create(); var value = client.GetCustomInstanceMetadata("my_instance_key1"); Assert.Equal("my_instance_value1", value); }
private static Instance GetMetadata() { MetadataClient client = MetadataClient.Create(); var instance = client.GetInstanceMetadata(); return(instance); }
public void GetMaintenanceStatus() { var client = MetadataClient.Create(); var status = client.GetMaintenanceStatus(); Assert.Equal(MaintenanceStatus.None, status); }
public async void UnmarkMetadata_MarkedMetadataModel_NoExceptionThrown() { // Arrange var dependantResourceModel = new DependantResourceModel( ResourceTypeEnum.Metadata, "c9de8a5e-1ab1-431f-a759-f44d7eef4e19" ) { PreviousState = MetadataModel.FinishedState }; var httpService = new HttpService(new HttpClient()); var metadataClient = new MetadataClient( httpService ); Exception exception = null; try { // Act await metadataClient.UnmarkMetadata(dependantResourceModel); } catch (Exception e) { exception = e; } // Assert Assert.Null(exception); }
public async Task MaintenanceStatusChanged() { var client = MetadataClient.Create(); var waitHandle = new ManualResetEventSlim(false); int eventCount = 0; client.MaintenanceStatusChanged += (s, e) => { eventCount++; waitHandle.Set(); }; try { await _fixture.UpdateMetadataAsync("instance/maintenance-event", "MIGRATE_ON_HOST_MAINTENANCE"); waitHandle.Wait(TimeSpan.FromSeconds(10)); Assert.Equal(1, eventCount); Assert.Equal(MaintenanceStatus.Migrate, client.GetMaintenanceStatus()); } finally { await _fixture.UpdateMetadataAsync("instance/maintenance-event", "NONE"); } }
public async Task InstanceMetadataChanged_HookTwice() { const string newValue = "foo"; string key = _fixture.GenerateCustomKey(); var client = MetadataClient.Create(); var waitHandle1 = new ManualResetEventSlim(false); var waitHandle2 = new ManualResetEventSlim(false); int eventCount = 0; Instance instance1 = null; Instance instance2 = null; client.InstanceMetadataChanged += (s, e) => { instance1 = e.NewMetadata; Interlocked.Increment(ref eventCount); waitHandle1.Set(); }; client.InstanceMetadataChanged += (s, e) => { instance2 = e.NewMetadata; Interlocked.Increment(ref eventCount); waitHandle2.Set(); }; await _fixture.UpdateMetadataAsync($"instance/attributes/{key}", newValue); waitHandle1.Wait(TimeSpan.FromSeconds(10)); waitHandle2.Wait(TimeSpan.FromSeconds(1)); Assert.Equal(2, eventCount); // Ensure the result string is only parsed once and (indirectly) that we only performed a // single handing get on the server. Assert.Same(instance1, instance2); }
public async Task ProjectMetadataChanged() { const string newValue = "foo"; string key = _fixture.GenerateCustomKey(); var client = MetadataClient.Create(); var waitHandle = new ManualResetEventSlim(false); int eventCount = 0; client.ProjectMetadataChanged += (s, e) => { Assert.Equal(newValue, e.NewMetadata.CommonInstanceMetadata.Items.FirstOrDefault(i => i.Key == key)?.Value); eventCount++; waitHandle.Set(); }; await Task.Delay(TimeSpan.FromSeconds(1)); await _fixture.UpdateMetadataAsync($"project/attributes/{key}", newValue); waitHandle.Wait(TimeSpan.FromSeconds(10)); Assert.Equal(1, eventCount); Assert.Equal(newValue, await client.GetCustomProjectMetadataAsync(key)); }
public void Test() { SearchedGame result = new MetadataClient().GetGameMetadata("Battlefield 1") .Result; Assert.IsTrue(true); }
public void WaitForChangeTimeout() { var client = MetadataClient.Create(); var initialTags = client.WaitForChange("instance/tags", timeout: TimeSpan.FromMilliseconds(1)); var initialAttributes = client.WaitForChange("instance/attributes", timeout: TimeSpan.FromMilliseconds(1)); // Wait for change on a value key var sw = Stopwatch.StartNew(); var result = client.WaitForChange("instance/tags", timeout: TimeSpan.FromSeconds(7)); sw.Stop(); Assert.Equal(initialTags.Content, result.Content); Assert.Equal(initialTags.ETag, result.ETag); Assert.NotNull(result.ETag); Assert.True(sw.Elapsed.TotalSeconds >= 7); // Wait for change on a directory key sw = Stopwatch.StartNew(); result = client.WaitForChange("instance/attributes", timeout: TimeSpan.FromSeconds(5)); sw.Stop(); Assert.Equal(initialAttributes.Content, result.Content); Assert.Equal(initialAttributes.ETag, result.ETag); Assert.NotNull(result.ETag); Assert.True(sw.Elapsed.TotalSeconds >= 5); }
public async void UnmarkMetadata_InternalServerErrorStatusCode_ThrowsException() { // Arrange var httpResponseMessage = new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent("Some error!") }; var httpService = new Mock <IHttpService>(); httpService .Setup(m => m.PutAsync(It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync(httpResponseMessage); var metadataClient = new MetadataClient(httpService.Object); Exception exception = null; try { // Act await metadataClient.UnmarkMetadata(DependantResourceDataMocks.MockDependantResourceModel()); } catch (FailedToUpdateResourceException e) { exception = e; } // Assert Assert.NotNull(exception); }
public void GetAccessToken() { var client = MetadataClient.Create(); var tokenResponse = client.GetAccessToken(); Assert.Equal("0123456789ABCDEF", tokenResponse.AccessToken); Assert.Equal(3000, tokenResponse.ExpiresInSeconds.Value); Assert.Equal("Bearer", tokenResponse.TokenType); }
public void GetProjectMetadata() { var client = MetadataClient.Create(); var project = client.GetProjectMetadata(); Assert.True(project.CommonInstanceMetadata.Items.Count >= 1); Assert.Equal("my_project_value1", project.CommonInstanceMetadata.Items.FirstOrDefault(i => i.Key == "my_project_key1")?.Value); Assert.Equal(12345ul, project.Id.Value); Assert.Equal("fake-project", project.Name); }
public void GetInstanceMetadata() { // Snippet: GetInstanceMetadata MetadataClient client = MetadataClient.Create(); Instance instance = client.GetInstanceMetadata(); Console.Write(instance.Zone); // End snippet Assert.Equal(instance.Zone, "projects/12345/zones/us-central1-f"); }
private void simpleAction1_Execute(object sender, SimpleActionExecuteEventArgs e) { var process = MetadataClient.LoadProcess(this.ObjectSpace, "Demo"); var Result = process.Execute(this.ObjectSpace, this.Application); if (Result.Success == false) { throw Result.Exception; } }
public void GetCustomInstanceMetadata() { // Snippet: GetCustomInstanceMetadata MetadataClient client = MetadataClient.Create(); string customValue = client.GetCustomInstanceMetadata("my_instance_key1"); Console.WriteLine(customValue); // End snippet Assert.Equal("my_instance_value1", customValue); }
public async Task WaitForChange() { const string newValue = "foo"; string key = _fixture.GenerateCustomKey(); await _fixture.UpdateMetadataAsync($"instance/attributes/{key}", "initial value"); var task = Task.Run(async() => { await Task.Delay(TimeSpan.FromSeconds(2)); await _fixture.UpdateMetadataAsync($"instance/attributes/{key}", newValue); }); // Snippet: WaitForChange MetadataClient client = MetadataClient.Create(); // Get the original metadata and its ETag so we know when the metadata changes. MetadataResult initialResult = client.GetMetadata("instance/attributes"); Console.WriteLine("Initial Metadata:"); JObject initialMetadata = JObject.Parse(initialResult.Content); foreach (JProperty property in initialMetadata.Properties()) { Console.WriteLine(property.Name + " = " + property.Value); } string lastETag = initialResult.ETag; MetadataResult changeResult; while (true) { // Wait in 30 second blocks until the value actually changes. changeResult = client.WaitForChange("instance/attributes", lastETag, TimeSpan.FromSeconds(30)); if (changeResult.ETag != lastETag) { Console.WriteLine("Changed Metadata:"); JObject currentMetadata = JObject.Parse(changeResult.Content); foreach (JProperty property in currentMetadata.Properties()) { Console.WriteLine(property.Name + " = " + property.Value); } break; } } // End snippet dynamic obj = JsonConvert.DeserializeObject(changeResult.Content); Assert.Equal(newValue, obj[key].Value); await task; }
public void GetMaintenanceStatus() { // Snippet: GetMaintenanceStatus MetadataClient client = MetadataClient.Create(); MaintenanceStatus status = client.GetMaintenanceStatus(); if (status == MaintenanceStatus.Migrate) { // Backup data } // End snippet Assert.Equal(MaintenanceStatus.None, status); }
public void GetMetadata() { // Snippet: GetMetadata MetadataClient client = MetadataClient.Create(); MetadataResult result = client.GetMetadata("instance/attributes"); JObject initialMetadata = JObject.Parse(result.Content); foreach (JProperty property in initialMetadata.Properties()) { Console.WriteLine(property.Name + " = " + property.Value); } // End snippet }
public async void GetMetadataForProject_ValidProjectId_ReturnsMetadataModelList() { // Arrange var projectId = "623be379-ed40-49f3-bdd8-416f8cd0faa6"; var httpService = new HttpService(new HttpClient()); var metadataClient = new MetadataClient( httpService ); // Act var result = await metadataClient.GetMetadataForProject(projectId); // Assert Assert.NotEmpty(result); }
public async void MarkMetadata_UnmarkedMetadataModel_ReturnsDependantResourceModel() { // Arrange var metadataId = "45db3205-83be-42a1-af14-6a03df9d9536"; var httpService = new HttpService(new HttpClient()); var metadataClient = new MetadataClient( httpService ); // Act var result = await metadataClient.MarkMetadata(metadataId); // Assert Assert.NotNull(result); }
public async void GetMetadata_ValidMetadataId_ReturnsMetadataModel() { // Arrange var metadataId = "4439722e-a6d0-4f7a-9d33-0cc5a2a66da0"; var httpService = new HttpService(new HttpClient()); var metadataClient = new MetadataClient( httpService ); // Act var result = await metadataClient.GetMetadata(metadataId); // Assert Assert.NotNull(result); }
public void WaitForChange_Validations() { var client = MetadataClient.Create(); Assert.Throws <ArgumentException>(() => client.WaitForChange("a b")); Assert.Throws <ArgumentException>(() => client.WaitForChange("a?b")); Assert.Throws <ArgumentException>(() => client.WaitForChange("http://www.google.com")); Assert.Throws <ArgumentException>(() => client.WaitForChange("instance", lastETag: "bad-etag")); Assert.Throws <ArgumentException>(() => client.WaitForChange("instance", timeout: TimeSpan.FromSeconds(-1))); Assert.ThrowsAsync <ArgumentException>(() => client.WaitForChangeAsync("a b")); Assert.ThrowsAsync <ArgumentException>(() => client.WaitForChangeAsync("a?b")); Assert.ThrowsAsync <ArgumentException>(() => client.WaitForChangeAsync("http://www.google.com")); Assert.ThrowsAsync <ArgumentException>(() => client.WaitForChangeAsync("instance", lastETag: "bad-etag")); Assert.ThrowsAsync <ArgumentException>(() => client.WaitForChangeAsync("instance", timeout: TimeSpan.FromSeconds(-1))); }
public SampleAppModule() { InitializeComponent(); BaseObject.OidInitializationMode = OidInitializationMode.AfterConstruction; string ModelName = System.Configuration.ConfigurationManager.AppSettings["ExtendedModelName"]; MetadataClient = new MetadataClient(@"Integrated Security=SSPI;Pooling=false;Data Source=(localdb)\mssqllocaldb;Initial Catalog=XpoExtender", ModelName); types = this.MetadataClient.GetDynamicTypes(); this.AdditionalExportedTypes.AddRange(types); //TODO add process example //this.AdditionalExportedTypes.Add(typeof(Process)); }
public void GetCustomProjectMetadata_Validations() { var client = MetadataClient.Create(); Assert.Throws <ArgumentException>(() => client.GetCustomProjectMetadata("")); Assert.Throws <ArgumentException>(() => client.GetCustomProjectMetadata("a b")); Assert.Throws <ArgumentException>(() => client.GetCustomProjectMetadata("a^b")); Assert.Throws <ArgumentException>(() => client.GetCustomProjectMetadata( "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF")); Assert.ThrowsAsync <ArgumentException>(() => client.GetCustomProjectMetadataAsync("")); Assert.ThrowsAsync <ArgumentException>(() => client.GetCustomProjectMetadataAsync("a b")); Assert.ThrowsAsync <ArgumentException>(() => client.GetCustomProjectMetadataAsync("a^b")); Assert.ThrowsAsync <ArgumentException>(() => client.GetCustomProjectMetadataAsync( "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF")); }
public async Task WaitForChange() { const string newValue = "foo"; string key = _fixture.GenerateCustomKey(); await _fixture.UpdateMetadataAsync($"instance/attributes/{key}", "initial value"); var task = Task.Run(async() => { await Task.Delay(TimeSpan.FromSeconds(2)); await _fixture.UpdateMetadataAsync($"instance/attributes/{key}", newValue); }); // TODO: This pattern to get the original ETag seems messy. Maybe add something to get an ETag. // Snippet: WaitForChange MetadataClient client = MetadataClient.Create(); // Get the original ETag so we know when the metadata changes. string lastETag = client.WaitForChange("instance/attributes", timeout: TimeSpan.FromMilliseconds(1)).ETag; WaitForChangeResult result; while (true) { // Wait in 30 second blocks until the value actually changes. result = client.WaitForChange("instance/attributes", lastETag, TimeSpan.FromSeconds(30)); if (result.ETag != lastETag) { JObject currentCustomMetadata = JObject.Parse(result.Content); foreach (JProperty customMetadata in currentCustomMetadata.Properties()) { Console.WriteLine(customMetadata.Name + " = " + customMetadata.Value); } break; } } // End snippet dynamic obj = JsonConvert.DeserializeObject(result.Content); Assert.Equal(newValue, obj[key].Value); await task; }
public async void GetMetadataForProject_OkStatusCode_ReturnsMarkSessionModelList() { // Arrange var httpResponseMessage = new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(MarkSessionModelDataMocks.MockMarkSessionModelListJson) }; var httpService = new Mock <IHttpService>(); httpService .Setup(m => m.GetAsync(It.IsAny <string>())) .ReturnsAsync(httpResponseMessage); var metadataClient = new MetadataClient(httpService.Object); // Act var result = await metadataClient.GetMetadataForProject(It.IsAny <string>()); // Assert Assert.NotEmpty(result); }