public async Task DeleteTeam() { CSEntryChange cs = CSEntryChange.Create(); cs.ObjectType = "team"; cs.ObjectModificationType = ObjectModificationType.Add; cs.CreateAttributeAdd("displayName", "mytestteam"); cs.CreateAttributeAdd("owner", UnitTestControl.Users.GetRange(0, 1).Select(t => t.Id).ToList <object>()); string teamid = await TeamTests.SubmitCSEntryChange(cs); cs = CSEntryChange.Create(); cs.ObjectType = "team"; cs.ObjectModificationType = ObjectModificationType.Delete; cs.AnchorAttributes.Add(AnchorAttribute.Create("id", teamid)); await TeamTests.SubmitCSEntryChange(cs); try { var team = await GraphHelperGroups.GetGroup(UnitTestControl.Client, teamid, CancellationToken.None); Assert.Fail("The team was not deleted"); } catch (ServiceException ex) { if (ex.StatusCode != System.Net.HttpStatusCode.NotFound) { Assert.Fail("The team was not deleted"); } } }
private static async Task <string> CreateAndValidateTeam(string displayName, List <string> members = null, List <string> owners = null) { CSEntryChange cs = CSEntryChange.Create(); cs.ObjectType = "team"; cs.ObjectModificationType = ObjectModificationType.Add; cs.CreateAttributeAdd("displayName", displayName); if (members != null && members.Count > 0) { cs.CreateAttributeAdd("member", members.ToList <object>()); } if (owners != null && owners.Count > 0) { cs.CreateAttributeAdd("owner", owners.ToList <object>()); } string teamid = await SubmitCSEntryChange(cs); if (members != null) { var actualMembers = (await GraphHelperGroups.GetGroupMembers(UnitTestControl.Client, teamid, CancellationToken.None)).Select(t => t.Id).ToList(); CollectionAssert.AreEquivalent(members, actualMembers); } if (owners != null) { var actualOwners = (await GraphHelperGroups.GetGroupOwners(UnitTestControl.Client, teamid, CancellationToken.None)).Select(t => t.Id).ToList(); CollectionAssert.AreEquivalent(owners, actualOwners); } return(teamid); }
public async Task ReplaceTeamOwners() { List <string> members = UnitTestControl.Users.Take(1).Select(t => t.Id).ToList(); List <string> owners = UnitTestControl.Users.GetRange(1, 100).Select(t => t.Id).ToList(); string teamid = await GroupTests.CreateAndValidateTeam("mytestteam", members, owners); var cs = CSEntryChange.Create(); cs.ObjectType = "team"; cs.ObjectModificationType = ObjectModificationType.Update; cs.AnchorAttributes.Add(AnchorAttribute.Create("id", teamid)); var ownersToDelete = owners; var ownersToAdd = UnitTestControl.Users.GetRange(101, 100).Select(t => t.Id).ToList(); cs.CreateAttributeUpdate("owner", ownersToAdd.ToList <object>(), ownersToDelete.ToList <object>()); var teamResult = await teamExportProvider.PutCSEntryChangeAsync(cs); Assert.IsTrue(teamResult.ErrorCode == MAExportError.Success); var actual = (await GraphHelperGroups.GetGroupOwners(UnitTestControl.Client, teamid, CancellationToken.None)).Select(t => t.Id).ToList(); CollectionAssert.AreEquivalent(ownersToAdd, actual); }
public async Task CreateTeamTestDeniedPermissions() { string mailNickname = $"ut-{Guid.NewGuid()}"; CSEntryChange cs = CSEntryChange.Create(); cs.ObjectType = "team"; cs.ObjectModificationType = ObjectModificationType.Add; cs.CreateAttributeAdd("displayName", "mytestteam"); cs.CreateAttributeAdd("description", "my description"); cs.CreateAttributeAdd("mailNickname", mailNickname); cs.CreateAttributeAdd("owner", UnitTestControl.Users.GetRange(0, 1).Select(t => t.Id).ToList <object>()); cs.CreateAttributeAdd("memberSettings_allowCreateUpdateChannels", false); cs.CreateAttributeAdd("memberSettings_allowDeleteChannels", false); cs.CreateAttributeAdd("memberSettings_allowAddRemoveApps", false); cs.CreateAttributeAdd("memberSettings_allowCreateUpdateRemoveTabs", false); cs.CreateAttributeAdd("memberSettings_allowCreateUpdateRemoveConnectors", false); cs.CreateAttributeAdd("guestSettings_allowCreateUpdateChannels", false); cs.CreateAttributeAdd("guestSettings_allowDeleteChannels", false); cs.CreateAttributeAdd("messagingSettings_allowUserEditMessages", false); cs.CreateAttributeAdd("messagingSettings_allowUserDeleteMessages", false); cs.CreateAttributeAdd("messagingSettings_allowOwnerDeleteMessages", false); cs.CreateAttributeAdd("messagingSettings_allowTeamMentions", false); cs.CreateAttributeAdd("messagingSettings_allowChannelMentions", false); cs.CreateAttributeAdd("funSettings_allowGiphy", false); cs.CreateAttributeAdd("funSettings_giphyContentRating", "Moderate"); cs.CreateAttributeAdd("funSettings_allowStickersAndMemes", false); cs.CreateAttributeAdd("funSettings_allowCustomMemes", false); cs.CreateAttributeAdd("visibility", "Public"); string teamid = await TeamTests.SubmitCSEntryChange(cs); var team = await GraphHelperTeams.GetTeam(UnitTestControl.BetaClient, teamid, CancellationToken.None); var group = await GraphHelperGroups.GetGroup(UnitTestControl.Client, teamid, CancellationToken.None); Assert.AreEqual("mytestteam", group.DisplayName); Assert.AreEqual("my description", group.Description); Assert.AreEqual(mailNickname, group.MailNickname); Assert.AreEqual("Public", group.Visibility, true); Assert.AreEqual(false, team.MemberSettings.AllowCreateUpdateChannels); Assert.AreEqual(false, team.MemberSettings.AllowDeleteChannels); Assert.AreEqual(false, team.MemberSettings.AllowAddRemoveApps); Assert.AreEqual(false, team.MemberSettings.AllowCreateUpdateRemoveTabs); Assert.AreEqual(false, team.MemberSettings.AllowCreateUpdateRemoveConnectors); Assert.AreEqual(false, team.GuestSettings.AllowCreateUpdateChannels); Assert.AreEqual(false, team.GuestSettings.AllowDeleteChannels); Assert.AreEqual(false, team.MessagingSettings.AllowUserEditMessages); Assert.AreEqual(false, team.MessagingSettings.AllowUserDeleteMessages); Assert.AreEqual(false, team.MessagingSettings.AllowOwnerDeleteMessages); Assert.AreEqual(false, team.MessagingSettings.AllowTeamMentions); Assert.AreEqual(false, team.MessagingSettings.AllowChannelMentions); Assert.AreEqual(false, team.FunSettings.AllowGiphy); Assert.AreEqual(GiphyRatingType.Moderate, team.FunSettings.GiphyContentRating); Assert.AreEqual(false, team.FunSettings.AllowStickersAndMemes); Assert.AreEqual(false, team.FunSettings.AllowCustomMemes); }
public async Task CreatePrivateChannelTest() { string teamid = await CreateTeamWithMembers(10, 10); List <DirectoryObject> owners = await GraphHelperGroups.GetGroupOwners(UnitTestControl.Client, teamid, CancellationToken.None); await Task.Delay(TimeSpan.FromDays(1)); string ownerid = owners.First().Id; owners.RemoveAt(0); List <string> ownerIds = owners.Select(t => t.Id).ToList(); CSEntryChange channel = CSEntryChange.Create(); channel.ObjectType = "privateChannel"; channel.ObjectModificationType = ObjectModificationType.Add; channel.CreateAttributeAdd("team", teamid); channel.CreateAttributeAdd("displayName", "my test channel"); channel.CreateAttributeAdd("description", "my description"); channel.CreateAttributeAdd("isFavoriteByDefault", true); channel.CreateAttributeAdd("owner", ownerid); channel.CreateAttributeAdd("member", ownerIds.ToList <object>()); CSEntryChangeResult channelResult = await channelExportProvider.PutCSEntryChangeAsync(channel); string channelid = channelResult.GetAnchorValueOrDefault <string>("id"); Assert.IsTrue(channelResult.ErrorCode == MAExportError.Success); Beta.Channel newChannel = await GetChannelFromTeam(teamid, channelid); Assert.AreEqual("my test channel", newChannel.DisplayName); Assert.AreEqual("my description", newChannel.Description); Assert.AreEqual(Beta.ChannelMembershipType.Private, newChannel.MembershipType); var members = await GraphHelperTeams.GetChannelMembers(UnitTestControl.BetaClient, teamid, channelid, CancellationToken.None); Assert.IsTrue(members.Any(t => t.Id == ownerid && (t.Roles?.Contains("owner") ?? false))); CollectionAssert.AreEquivalent(ownerIds, members.Where(t => t.Roles == null).Select(t => t.Id).ToList()); // 2020-05-15 This currently doesn't come in with a GET request // https://github.com/microsoftgraph/microsoft-graph-docs/issues/6792 //Assert.AreEqual(true, newChannel.IsFavoriteByDefault); }
public async Task UpdateGroupAttributes() { string displayName1 = "displayName 1"; string description1 = "description 1"; string mailNickname1 = $"ut-{Guid.NewGuid()}"; string displayName2 = "displayName 2"; string description2 = "description 2"; string mailNickname2 = $"ut-{Guid.NewGuid()}"; CSEntryChange cs = CSEntryChange.Create(); cs.ObjectType = "team"; cs.ObjectModificationType = ObjectModificationType.Add; cs.CreateAttributeAdd("displayName", displayName1); cs.CreateAttributeAdd("description", description1); cs.CreateAttributeAdd("mailNickname", mailNickname1); cs.CreateAttributeAdd("owner", UnitTestControl.Users.GetRange(0, 1).Select(t => t.Id).ToList <object>()); string teamid = await SubmitCSEntryChange(cs); await Task.Delay(TimeSpan.FromSeconds(30)); var team = await GraphHelperGroups.GetGroup(UnitTestControl.Client, teamid, CancellationToken.None); Assert.AreEqual(displayName1, team.DisplayName); Assert.AreEqual(description1, team.Description); Assert.AreEqual(mailNickname1, team.MailNickname); cs = CSEntryChange.Create(); cs.ObjectType = "team"; cs.AnchorAttributes.Add(AnchorAttribute.Create("id", teamid)); cs.ObjectModificationType = ObjectModificationType.Update; cs.CreateAttributeReplace("displayName", displayName2); cs.CreateAttributeReplace("description", description2); cs.CreateAttributeReplace("mailNickname", mailNickname2); await SubmitCSEntryChange(cs); team = await GraphHelperGroups.GetGroup(UnitTestControl.Client, teamid, CancellationToken.None); Assert.AreEqual(displayName2, team.DisplayName); Assert.AreEqual(description2, team.Description); Assert.AreEqual(mailNickname2, team.MailNickname); }
public static async Task Cleanup() { List <Exception> exceptions = new List <Exception>(); foreach (string teamid in teamsToDelete) { try { await GraphHelperGroups.DeleteGroup(UnitTestControl.Client, teamid, context.Token); } catch (Exception ex) { exceptions.Add(ex); } } if (exceptions.Count > 0) { throw new AggregateException("One or more groups could not be cleaned up", exceptions); } }
public async Task CreateTeamTestUpdatePermissions() { CSEntryChange cs = CSEntryChange.Create(); cs.ObjectType = "team"; cs.ObjectModificationType = ObjectModificationType.Add; cs.CreateAttributeAdd("displayName", "mytestteam"); cs.CreateAttributeAdd("owner", UnitTestControl.Users.GetRange(0, 1).Select(t => t.Id).ToList <object>()); cs.CreateAttributeAdd("memberSettings_allowCreateUpdateChannels", false); cs.CreateAttributeAdd("memberSettings_allowDeleteChannels", false); cs.CreateAttributeAdd("memberSettings_allowAddRemoveApps", false); cs.CreateAttributeAdd("memberSettings_allowCreateUpdateRemoveTabs", false); cs.CreateAttributeAdd("memberSettings_allowCreateUpdateRemoveConnectors", false); cs.CreateAttributeAdd("guestSettings_allowCreateUpdateChannels", false); cs.CreateAttributeAdd("guestSettings_allowDeleteChannels", false); cs.CreateAttributeAdd("messagingSettings_allowUserEditMessages", false); cs.CreateAttributeAdd("messagingSettings_allowUserDeleteMessages", false); cs.CreateAttributeAdd("messagingSettings_allowOwnerDeleteMessages", false); cs.CreateAttributeAdd("messagingSettings_allowTeamMentions", false); cs.CreateAttributeAdd("messagingSettings_allowChannelMentions", false); cs.CreateAttributeAdd("funSettings_allowGiphy", false); cs.CreateAttributeAdd("funSettings_giphyContentRating", "Moderate"); cs.CreateAttributeAdd("funSettings_allowStickersAndMemes", false); cs.CreateAttributeAdd("funSettings_allowCustomMemes", false); string teamid = await TeamTests.SubmitCSEntryChange(cs); var team = await GraphHelperTeams.GetTeam(UnitTestControl.BetaClient, teamid, CancellationToken.None); var group = await GraphHelperGroups.GetGroup(UnitTestControl.Client, teamid, CancellationToken.None); Assert.AreEqual("mytestteam", group.DisplayName); Assert.AreEqual(false, team.MemberSettings.AllowCreateUpdateChannels); Assert.AreEqual(false, team.MemberSettings.AllowDeleteChannels); Assert.AreEqual(false, team.MemberSettings.AllowAddRemoveApps); Assert.AreEqual(false, team.MemberSettings.AllowCreateUpdateRemoveTabs); Assert.AreEqual(false, team.MemberSettings.AllowCreateUpdateRemoveConnectors); Assert.AreEqual(false, team.GuestSettings.AllowCreateUpdateChannels); Assert.AreEqual(false, team.GuestSettings.AllowDeleteChannels); Assert.AreEqual(false, team.MessagingSettings.AllowUserEditMessages); Assert.AreEqual(false, team.MessagingSettings.AllowUserDeleteMessages); Assert.AreEqual(false, team.MessagingSettings.AllowOwnerDeleteMessages); Assert.AreEqual(false, team.MessagingSettings.AllowTeamMentions); Assert.AreEqual(false, team.MessagingSettings.AllowChannelMentions); Assert.AreEqual(false, team.FunSettings.AllowGiphy); Assert.AreEqual(GiphyRatingType.Moderate, team.FunSettings.GiphyContentRating); Assert.AreEqual(false, team.FunSettings.AllowStickersAndMemes); Assert.AreEqual(false, team.FunSettings.AllowCustomMemes); cs = CSEntryChange.Create(); cs.ObjectType = "team"; cs.ObjectModificationType = ObjectModificationType.Update; cs.AnchorAttributes.Add(AnchorAttribute.Create("id", teamid)); cs.CreateAttributeReplace("memberSettings_allowCreateUpdateChannels", true); cs.CreateAttributeReplace("memberSettings_allowDeleteChannels", true); cs.CreateAttributeReplace("memberSettings_allowAddRemoveApps", true); cs.CreateAttributeReplace("memberSettings_allowCreateUpdateRemoveTabs", true); cs.CreateAttributeReplace("memberSettings_allowCreateUpdateRemoveConnectors", true); cs.CreateAttributeReplace("guestSettings_allowCreateUpdateChannels", true); cs.CreateAttributeReplace("guestSettings_allowDeleteChannels", true); cs.CreateAttributeReplace("messagingSettings_allowUserEditMessages", true); cs.CreateAttributeReplace("messagingSettings_allowUserDeleteMessages", true); cs.CreateAttributeReplace("messagingSettings_allowOwnerDeleteMessages", true); cs.CreateAttributeReplace("messagingSettings_allowTeamMentions", true); cs.CreateAttributeReplace("messagingSettings_allowChannelMentions", true); cs.CreateAttributeReplace("funSettings_allowGiphy", true); cs.CreateAttributeReplace("funSettings_giphyContentRating", "Strict"); cs.CreateAttributeReplace("funSettings_allowStickersAndMemes", true); cs.CreateAttributeReplace("funSettings_allowCustomMemes", true); await TeamTests.SubmitCSEntryChange(cs); team = await GraphHelperTeams.GetTeam(UnitTestControl.BetaClient, teamid, CancellationToken.None); Assert.AreEqual(true, team.MemberSettings.AllowCreateUpdateChannels); Assert.AreEqual(true, team.MemberSettings.AllowDeleteChannels); Assert.AreEqual(true, team.MemberSettings.AllowAddRemoveApps); Assert.AreEqual(true, team.MemberSettings.AllowCreateUpdateRemoveTabs); Assert.AreEqual(true, team.MemberSettings.AllowCreateUpdateRemoveConnectors); Assert.AreEqual(true, team.GuestSettings.AllowCreateUpdateChannels); Assert.AreEqual(true, team.GuestSettings.AllowDeleteChannels); Assert.AreEqual(true, team.MessagingSettings.AllowUserEditMessages); Assert.AreEqual(true, team.MessagingSettings.AllowUserDeleteMessages); Assert.AreEqual(true, team.MessagingSettings.AllowOwnerDeleteMessages); Assert.AreEqual(true, team.MessagingSettings.AllowTeamMentions); Assert.AreEqual(true, team.MessagingSettings.AllowChannelMentions); Assert.AreEqual(true, team.FunSettings.AllowGiphy); Assert.AreEqual(GiphyRatingType.Strict, team.FunSettings.GiphyContentRating); Assert.AreEqual(true, team.FunSettings.AllowStickersAndMemes); Assert.AreEqual(true, team.FunSettings.AllowCustomMemes); }