public override void ExecuteCmdlet() { using (var client = CreateClient()) { var request = new GatewayClusterAddPrincipalRequest { PrincipalObjectId = PrincipalObjectId, AllowedDataSourceTypes = AllowedDataSourceTypes, Role = Role }; var result = client.Gateways.AddUsersToGatewayCluster(GatewayClusterId, request, this.Scope == PowerBIUserScope.Individual).Result; Logger.WriteObject(result, true); } }
public async Task AddOnPremisesDataGatewayClusterUserCanBeSerialized() { // Arrange var client = Utilities.GetTestClient(""); var request = new GatewayClusterAddPrincipalRequest() { PrincipalObjectId = Guid.NewGuid(), AllowedDataSourceTypes = new DatasourceType[] { DatasourceType.Sql }, Role = "the role" }; // Act var result = await client.AddUsersToGatewayCluster(Guid.NewGuid(), request, true); // Assert result.IsSuccessStatusCode.Should().Be(true); }
public void AddOnPremisesDataGatewayClusterUserReturnsExpectedResults() { // Arrange var allowedDatasourceTypes = new List <DatasourceType>() { DatasourceType.Sql }; var gatewayClusterId = Guid.NewGuid(); var request = new GatewayClusterAddPrincipalRequest() { PrincipalObjectId = Guid.NewGuid(), AllowedDataSourceTypes = allowedDatasourceTypes, Role = "the role" }; var expectedResponse = new HttpResponseMessage(); var client = new Mock <IPowerBIApiClient>(); client.Setup(x => x.Gateways .AddUsersToGatewayCluster(gatewayClusterId, It.IsAny <GatewayClusterAddPrincipalRequest>(), true)) .ReturnsAsync(expectedResponse); var initFactory = new TestPowerBICmdletInitFactory(client.Object); var cmdlet = new AddOnPremisesDataGatewayClusterUser(initFactory) { GatewayClusterId = gatewayClusterId, PrincipalObjectId = request.PrincipalObjectId, AllowedDataSourceTypes = allowedDatasourceTypes, Role = request.Role }; // Act cmdlet.InvokePowerBICmdlet(); // Assert TestUtilities.AssertExpectedUnitTestResults(expectedResponse, client, initFactory); }
public async Task <HttpResponseMessage> AddUsersToGatewayCluster(Guid gatewayClusterId, GatewayClusterAddPrincipalRequest addPrincipalRequest, bool asIndividual) { var url = Invariant($"{GetODataUrlStart(asIndividual)}/gatewayclusters({gatewayClusterId})/permissions"); var httpContent = SerializeObject(addPrincipalRequest); var response = await HttpClientInstance.PostAsync(url, httpContent); response.EnsureSuccessStatusCode(); return(response); }