public async Task Update_Workspace() { var workspaceName = "workspace-2"; var httpClient = new TestHttpClient() { Handler = (entry) => { TestHttpClient.SendResponse("Workspace/UpdateWorkspace", entry); } }; var config = new TfeConfig("faketoken", httpClient); var client = new TfeClient(config); var request = new WorkspacesRequest(); request.Data.Attributes.Name = workspaceName; var result = await client.Workspace.UpdateAsync("organizationName", request); Assert.NotNull(result); Assert.Equal(workspaceName, result.Data.Attributes.Name); Assert.Equal("skierkowski/terraform-test-proj", result.Data.Attributes.VcsRepo.Identifier); Assert.Equal("ot-hmAyP66qk2AMVdbJ", result.Data.Attributes.VcsRepo.OauthTokenId); }
public async Task GetWorkspaceById() { var organizationName = configuration["organizationName"]; var httpClient = new HttpClient(); var config = new TfeConfig(configuration["organizationToken"], httpClient); var client = new TfeClient(config); var request = new WorkspacesRequest(); var workspaceName = $"test-{Guid.NewGuid().ToString()}"; request.Data.Attributes.Name = workspaceName; var createResult = await client.Workspace.CreateAsync(organizationName, request); Assert.NotNull(createResult); Assert.Equal(workspaceName, createResult.Data.Attributes.Name); var showResult = await client.Workspace.GetAsync(createResult.Data.Id); Assert.NotNull(showResult); Assert.Equal(workspaceName, showResult.Data.Attributes.Name); Assert.Equal(createResult.Data.Id, showResult.Data.Id); Assert.Equal("workspaces", showResult.Data.Type); }
public async Task Create_OAuthClient() { var organizationName = "my-organization"; var httpClient = new TestHttpClient() { Handler = (entry) => { TestHttpClient.SendResponse("OAuthClient/CreateOAuthClient", entry); } }; var config = new TfeConfig("faketoken", httpClient); var client = new TfeClient(config); var request = new OAuthClientsRequest(); request.Data.Attributes.ServiceProvider = "github"; request.Data.Attributes.HttpUrl = new Uri("https://github.com"); request.Data.Attributes.ApiUrl = new Uri("https://api.github.com"); request.Data.Attributes.OAuthTokenString = "4306823352f0009d0ed81f1b654ac17a"; var result = await client.OAuthClient.CreateAsync(organizationName, request); Assert.NotNull(result); Assert.Equal(organizationName, result.Data.Relationships.Organization.Data.Id); Assert.Equal(request.Data.Attributes.ServiceProvider, result.Data.Attributes.ServiceProvider); Assert.Equal(request.Data.Attributes.HttpUrl, result.Data.Attributes.HttpUrl); Assert.Equal(request.Data.Attributes.ApiUrl, result.Data.Attributes.ApiUrl); Assert.Equal("/api/v2/oauth-tokens/ot-KaeqH4cy72VPXFQT", result.Data.Relationships.OAuthTokens.Links.Related); }
public async Task ApplyRun() { var httpClient = new HttpClient(); var config = new TfeConfig(configuration["teamToken"], httpClient); var client = new TfeClient(config); var runId = IntegrationContext.RunId; var ready = false; while (!ready) { await Task.Delay(5000); var run = await client.Run.GetAsync(runId); ready = run.Data.Attributes.Status == "planned"; } var request = new CommentRequest(); request.Comment = "Triggered by Integration test"; await client.Run.ApplyAsync(runId, null); }
public async Task ListSshKey() { var organizationName = configuration["organizationName"]; var httpClient = new HttpClient(); var config = new TfeConfig(configuration["teamToken"], httpClient); var client = new TfeClient(config); var request = new SshKeyRequest(); var keyName = Guid.NewGuid().ToString(); request.Data.Attributes.Name = keyName; request.Data.Attributes.Value = "-----BEGIN RSA PRIVATE KEY-----\nProc-Type: 4,ENCRYPTED\nDEK-Info: DES-EDE3-CBC,AAE00111B021AF6B\n\nda5xh91eoDrnn78JUMjZs3nr+hdp/TBEDSbuJcJJbmF6C7Jrqr5lJiS/dLAcqrfc\nBP6MzBaxwTzvqhvflI2EGqPyhIXsOI1UsBqOWWj2WeFPqvbm40sTFuPX0yt/1fH4\nOtlcWHl8nJea3DUQahgimEoYeSfHar6u1quFi778eVR96/3emqe34mKsNa/iLEVi\nyOi/Uww+gjPJRlUHmE9fy6Rcg8x9ixsO03R1hu7CIx41xxNhgQhDrkH7f4VQceGT\nWyh3IyyzHRnhIJ5QxgKCZGsQzIOol2qQ2P/H8nGo9Ksv6i4GEFdF3Ia6v6yyFKRw\n39GDR+ugH8yBY33uQ1NmCxO4KHn/B61XL6sRFjd5UXTSYB5yickBrTAHLROM16xv\nP5+Sc1t1OpIyvnaNJ7wyR81Ja56MQmviH3R+28VvBN10iqeHaaBWv/B63cV57Dag\nyY3n58ZxH7PaxEZBANCpuBKXHnRmlrZo2QrVxp2q9QidsYi/LpgXX/TA42llglqB\n8js9jjG3XO8FRr4Eik05p0vH7Z7EeHXj+mlRBk1H8zCcap0qHeZweYCnhEfL34rf\nBD30nZDjfhqvtpN8TuY1pNZCNADZflmE1HJAqT3ekMrkVs4o23kGfKactnbxS3WA\nSqvPufZQEdPOWyyxGB5Lnmx2l6uFqI2eiPksiZ7UhOgZIag3gKjWbIELmQg1c707\nX9pXNccwS5njC9UbrteTNBidLZK2hSy0h9jvczzIfm7u6X+D4XP/dQlQZOuwCrWw\nuaV0aSrqiPUiPae4loDIBqQSIXeESUFLIDJcEByy4NJRhsNXRkCVkTLN80yy6Snw\nyjFrHh1iDe/mnbs/Ixl2P57dlHhymEV2+1Chzsxif9oM/Y5vdhyaffTmFaNC0lh+\nlmpWJIUyXM6B/IU7I4c0pFYAFDLHLOpb28sAN9IVFFbv9JXm/9+cGYMWANbrjyuh\nTpErr6D4S8y/t4OpMoDadjON2AO+XQkvIoMYS/RLwU9Y1TZx5oH3bLswAyVZLwKu\nOJFkc1sVht1zb4kK639vjA4E3Hnw40Gj59JynGwZLz2ge2bfqsrdtQ2nSXaPI0LF\n4NH2nBxUKZNuYsuBbgMTCP8l2Fca8oHB3gPZVqlhEuV/Bd7TJwGpMXspgCVqwZGz\noQL5JsA87QmktqnnWSCfZAuIKzsy/QPmgf3xgEZODGKJcHM/oEuResRmeb4vbxiK\nXYvJRo8ESVNWIJrBvsTBiLYPG7XBk5MMHGKPGdkc/T7LSKGbqNEl0HJSUzG+x01i\nNVOw7gYZcUhJIIN6ojCbKv0LJsqQwjN3jUxqBhldRu9XXa+Nng6nXs3B9FUvFof4\nvXf8omfdgKekCx2uIc9aE1Y4uSI43TxOatU71uo2UV12z5Sd4NFWk+SyRK2muNZT\noz0kzxFl2wvH/p//MueGqAIxeJA9or2maefY4VvCnlIQvsA6FWk+6sAXywD78TSf\nWA9xHdBhzYnlm+1g4nlNP4dwz/SRb+2sWZm+IwbfOBlubLJDTRyrusxigZyRB+RN\nGEQCr99gNsBoDtn4rQmY/E7Wm3Br1/jlI5PHdl9rIFHjw8SIn/6Faw==\n-----END RSA PRIVATE KEY-----"; var result = await client.SshKey.CreateAsync(organizationName, request); Assert.NotNull(result); Assert.Equal(keyName, result.Data.Attributes.Name); var showResult = await client.SshKey.ListAsync(organizationName); Assert.NotNull(showResult); Assert.Equal(result.Data.Id, showResult.Data[0].Id); }
public async Task CreateWorkspaceWithVCS() { var organizationName = configuration["organizationName"]; var httpClient = new HttpClient(); var config = new TfeConfig(configuration["organizationToken"], httpClient); var client = new TfeClient(config); var request = new WorkspacesRequest(); var workspaceName = $"test-{Guid.NewGuid().ToString()}"; request.Data.Attributes.Name = workspaceName; request.Data.Attributes.VcsRepo = new RequestVcsRepo(); request.Data.Attributes.VcsRepo.Identifier = configuration["repo"]; request.Data.Attributes.VcsRepo.OauthTokenId = IntegrationContext.OAuthTokenId; request.Data.Attributes.VcsRepo.Branch = ""; request.Data.Attributes.VcsRepo.DefaultBranch = true; var result = await client.Workspace.CreateAsync(organizationName, request); Assert.NotNull(result); Assert.Equal(workspaceName, result.Data.Attributes.Name); IntegrationContext.WorkspaceId = result.Data.Id; }
public async Task Assign_SSH_Key_To_Workspace() { var workspaceId = "ws-SihZTyXKfNXUWuUa"; var httpClient = new TestHttpClient() { Handler = (entry) => { TestHttpClient.SendResponse("Workspace/AssignSSHKeyToWorkspace", entry); } }; var config = new TfeConfig("faketoken", httpClient); var client = new TfeClient(config); var request = new AssignSsshKeyRequest(); request.Data.Attributes.Id = "sshkey-GxrePWre1Ezug7aM"; var result = await client.Workspace.AssignSshKeyAsync(workspaceId, request); Assert.NotNull(result); Assert.Equal(workspaceId, result.Data.Id); Assert.Equal(request.Data.Attributes.Id, result.Data.Relationships.SshKey.Data.Id); }
public async Task Create_Workspace_Without_VCS() { var workspaceName = "workspace-1"; var httpClient = new TestHttpClient() { Handler = (entry) => { TestHttpClient.SendResponse("Workspace/CreateWorkspaceWithoutVCS", entry); } }; var config = new TfeConfig("faketoken", httpClient); var client = new TfeClient(config); var request = new WorkspacesRequest(); request.Data.Attributes.Name = workspaceName; var result = await client.Workspace.CreateAsync("organizationName", request); Assert.NotNull(result); Assert.Equal(workspaceName, result.Data.Attributes.Name); }
public async Task List_Workspace() { var workspaceName = "workspace-2"; var httpClient = new TestHttpClient() { Handler = (entry) => { TestHttpClient.SendResponse("Workspace/ListWorkspace", entry); } }; var config = new TfeConfig("faketoken", httpClient); var client = new TfeClient(config); var result = await client.Workspace.ListAsync("organizationName"); Assert.NotNull(result); Assert.Equal(3, result.Data.Count()); Assert.Equal(workspaceName, result.Data[0].Attributes.Name); Workspaces.Relationships relationships = result.Data[2].Relationships; Relationship latestRun = relationships.LatestRun; Assert.Equal("run-1234567890abcdef", latestRun.RelationshipData.Id); Assert.Equal("runs", latestRun.RelationshipData.Type); Assert.Equal("/api/v2/runs/run-1234567890abcdef", latestRun.Links.Related); Relationship currentStateVersion = relationships.CurrentStateVersion; Assert.Equal("sv-1234567890abcdef", currentStateVersion.RelationshipData.Id); Assert.Equal("state-versions", currentStateVersion.RelationshipData.Type); Assert.Equal("/api/v2/workspaces/ws-1234567890abcdef/current-state-version", currentStateVersion.Links.Related); Relationship currentConfigurationVersion = relationships.CurrentConfigurationVersion; Assert.Equal("cv-1234567890abcdef", currentConfigurationVersion.RelationshipData.Id); Assert.Equal("configuration-versions", currentConfigurationVersion.RelationshipData.Type); Assert.Equal("/api/v2/configuration-versions/cv-1234567890abcdef", currentConfigurationVersion.Links.Related); Relationship currentRun = relationships.CurrentRun; Assert.Equal("run-1234567890abcdef", currentRun.RelationshipData.Id); Assert.Equal("runs", currentRun.RelationshipData.Type); Assert.Equal("/api/v2/runs/run-1234567890abcdef", currentRun.Links.Related); Relationship agentPool = relationships.AgentPool; Assert.Null(agentPool.RelationshipData); Assert.Null(agentPool.Links); Relationship readme = relationships.Readme; Assert.Equal("12345", readme.RelationshipData.Id); Assert.Equal("workspace-readme", readme.RelationshipData.Type); Assert.Null(agentPool.Links); }
private TfeClient GetTestClient(string testFile) { var httpClient = new TestHttpClient() { Handler = (entry) => { TestHttpClient.SendResponse(testFile, entry); } }; var config = new TfeConfig("faketoken", httpClient); return(new TfeClient(config)); }
/// <summary> /// TfeClient /// </summary> /// <param name="config"></param> public TfeClient(TfeConfig config) { this.client = config.HttpClient; Apply = new Apply(client); Organization = new Organization(client); SshKey = new SshKey(client); Run = new Run(client); Workspace = new Workspace(client); WorkspaceVariable = new WorkspaceVariable(client); OAuthClient = new OAuthClient(client); StateVersion = new StateVersion(client); StateVersionOutput = new StateVersionOutput(client); }
/// <summary> /// SetupTestWorkspace /// </summary> /// <returns></returns> private async Task <(TfeClient, WorkspaceResponse)> SetupTestWorkspace() { var httpClient = new HttpClient(); var config = new TfeConfig(configuration["organizationToken"], httpClient); var client = new TfeClient(config); var organizationName = configuration["organizationName"]; var workspaceRequest = new WorkspacesRequest(); var workspaceName = $"test-{Guid.NewGuid().ToString()}"; workspaceRequest.Data.Attributes.Name = workspaceName; var workspace = await client.Workspace.CreateAsync(organizationName, workspaceRequest); return(client, workspace); }
public async Task AssignSshKeyToWorkSpace() { var organizationName = configuration["organizationName"]; var httpClient = new HttpClient(); var config = new TfeConfig(configuration["teamToken"], httpClient); var client = new TfeClient(config); var request = new AssignSsshKeyRequest(); request.Data.Attributes.Id = IntegrationContext.SshKeyId; var result = await client.Workspace.AssignSshKeyAsync(IntegrationContext.WorkspaceId, request); Assert.NotNull(result); Assert.Equal(IntegrationContext.SshKeyId, result.Data.Relationships.SshKey.Data.Id); }
public async Task Get_OAuthToken() { var httpClient = new TestHttpClient() { Handler = (entry) => { TestHttpClient.SendResponse("OAuthToken/GetOAuthToken", entry); } }; var oauthTokenId = "ot-29t7xkUKiNC2XasL"; var config = new TfeConfig("faketoken", httpClient); var client = new TfeClient(config); var result = await client.OAuthToken.GetAsync(oauthTokenId); Assert.NotNull(result); Assert.Equal(oauthTokenId, result.Data.Id); }
public async Task CreateWorkspaceVariables() { var organizationName = configuration["organizationName"]; var httpClient = new HttpClient(); var config = new TfeConfig(configuration["teamToken"], httpClient); var client = new TfeClient(config); await CreateWorkspaceVariable("your_name", "cmendibl3", "your name", false, client); await CreateWorkspaceVariable("tfe_org_name", organizationName, "tfe_org_name", false, client); await CreateWorkspaceVariable("tfe_host", "app.terraform.io", "tfe_host", false, client); await CreateWorkspaceVariable("tfe_workspace_name", "test-workspace-github", "tfe_workspace_name", false, client); await CreateWorkspaceVariable("ARM_CLIENT_ID", configuration["ARM_CLIENT_ID"], "ARM_CLIENT_ID", true, client); await CreateWorkspaceVariable("ARM_CLIENT_SECRET", configuration["ARM_CLIENT_SECRET"], "ARM_CLIENT_SECRET", true, client); await CreateWorkspaceVariable("ARM_SUBSCRIPTION_ID", configuration["ARM_SUBSCRIPTION_ID"], "ARM_SUBSCRIPTION_ID", true, client); await CreateWorkspaceVariable("ARM_TENANT_ID", configuration["ARM_TENANT_ID"], "ARM_TENANT_ID", true, client); }
public async Task Get_OAuthClient() { var oauthClientId = "oc-XKFwG6ggfA9n7t1K"; var httpClient = new TestHttpClient() { Handler = (entry) => { TestHttpClient.SendResponse("OAuthClient/GetOAuthClient", entry); } }; var config = new TfeConfig("faketoken", httpClient); var client = new TfeClient(config); var result = await client.OAuthClient.GetAsync(oauthClientId); Assert.NotNull(result); Assert.Equal(oauthClientId, result.Data.Id); }
public async Task CreateRun() { var organizationName = configuration["organizationName"]; var httpClient = new HttpClient(); var config = new TfeConfig(configuration["teamToken"], httpClient); var client = new TfeClient(config); var request = new RunsRequest(); request.Data.Attributes.IsDestroy = false; request.Data.Attributes.Message = "Triggered by Integration Test"; request.Data.Relationships.Workspace.Data.Type = "workspaces"; request.Data.Relationships.Workspace.Data.Id = IntegrationContext.WorkspaceId; var result = await client.Run.CreateAsync(request); Assert.NotNull(result); IntegrationContext.RunId = result.Data.Id; }
public async Task CreateOAuthClient() { var organizationName = configuration["organizationName"]; var httpClient = new HttpClient(); var config = new TfeConfig(configuration["teamToken"], httpClient); var client = new TfeClient(config); var request = new OAuthClientsRequest(); request.Data.Attributes.ServiceProvider = "github"; request.Data.Attributes.HttpUrl = new Uri("https://github.com"); request.Data.Attributes.ApiUrl = new Uri("https://api.github.com"); request.Data.Attributes.OAuthTokenString = configuration["gitToken"]; var result = await client.OAuthClient.CreateAsync(organizationName, request); Assert.NotNull(result); IntegrationContext.OAuthTokenId = result.Data.Relationships.OAuthTokens.Data[0].Id; }
public async Task Get_Workspace() { var workspaceId = "ws-mD5bmJ8ry3uTzuHi"; var httpClient = new TestHttpClient() { Handler = (entry) => { TestHttpClient.SendResponse("Workspace/GetWorkspace", entry); } }; var config = new TfeConfig("faketoken", httpClient); var client = new TfeClient(config); var result = await client.Workspace.GetAsync(workspaceId); Assert.NotNull(result); Assert.Equal(workspaceId, result.Data.Id); }
public async Task List_OAuthClient() { var httpClient = new TestHttpClient() { Handler = (entry) => { TestHttpClient.SendResponse("OAuthClient/ListOAuthClient", entry); } }; var config = new TfeConfig("faketoken", httpClient); var client = new TfeClient(config); var organizationName = "my-organization"; var result = await client.OAuthClient.ListAsync(organizationName); Assert.NotNull(result); Assert.Single(result.Data); Assert.Equal("oc-XKFwG6ggfA9n7t1K", result.Data[0].Id); Assert.Equal(organizationName, result.Data[0].Relationships.Organization.Data.Id); }
public async Task List_OAuthToken() { var httpClient = new TestHttpClient() { Handler = (entry) => { TestHttpClient.SendResponse("OAuthToken/ListOAuthTokens", entry); } }; var config = new TfeConfig("faketoken", httpClient); var client = new TfeClient(config); var oauthclientid = "oc-GhHqb5rkeK19mLB8"; var result = await client.OAuthToken.ListAsync(oauthclientid); Assert.NotNull(result); Assert.Single(result.Data); Assert.Equal("ot-hmAyP66qk2AMVdbJ", result.Data[0].Id); Assert.Equal(oauthclientid, result.Data[0].Relationships.OAuthClient.OauthClientData.Id); }