public async Task UpdateGroupPlayer_ExistingAdmin() { var mayur = await Login(); var matt = await Login("matt", "matt"); using (var client = new HttpClient { BaseAddress = new Uri(ServerUrl) }) { client.AcceptJson().AddSessionHeader(mayur.Id); var currentSeed = Guid.NewGuid(); var form = new GroupFrom { Name = $"Test.{currentSeed}", Type = GroupVisibility.Invisible, Players = new List<Guid> { mayur.Player.Id, matt.Player.Id } }; // Create Group with valid Players var groupResponse = await client.PostAsJsonAsync($"/api/groups", form); Assert.Equal(HttpStatusCode.Created, groupResponse.StatusCode); var group = await groupResponse.Content.ReadAsJsonAsync<Group>(); Assert.IsType(typeof(Group), group); Assert.Equal(mayur.Player.Id, group.AdminId); var updateForm = new GroupFrom(); // Update Group Players with Same Admin groupResponse = await client.PutAsJsonAsync($"/api/groups/{group.Id}/players/{mayur.Player.Id}/admin", updateForm); Assert.Equal(HttpStatusCode.BadRequest, groupResponse.StatusCode); var content = await groupResponse.Content.ReadAsJsonAsync<ApiError>(); Assert.Equal($"You are already Admin of this Group.", content.Error); } }
public async Task DisableGroup() { var mayur = await Login(); var matt = await Login("matt", "matt"); using (var client = new HttpClient { BaseAddress = new Uri(ServerUrl) }) { client.AcceptJson().AddSessionHeader(mayur.Id); var currentSeed = Guid.NewGuid(); var form = new GroupFrom { Name = $"Test.{currentSeed}", Type = GroupVisibility.Invisible, Players = new List<Guid> { mayur.Player.Id, matt.Player.Id } }; // Create Group with valid Players var groupResponse = await client.PostAsJsonAsync($"/api/groups", form); Assert.Equal(HttpStatusCode.Created, groupResponse.StatusCode); var group = await groupResponse.Content.ReadAsJsonAsync<Group>(); Assert.IsType(typeof(Group), group); Assert.Equal(mayur.Player.Id, group.AdminId); // Get Group with valid id groupResponse = await client.DeleteAsync($"/api/groups/{group.Id}"); Assert.Equal(HttpStatusCode.OK, groupResponse.StatusCode); var response = await groupResponse.Content.ReadAsJsonAsync<Group>(); Assert.IsType(typeof(Group), response); Assert.Equal(group.Id, response.Id); Assert.False(response.IsEnabled); } }
public async Task UpdateGroupPlayer_RemoveExistingPlayer() { var mayur = await Login(); var matt = await Login("matt", "matt"); using (var client = new HttpClient { BaseAddress = new Uri(ServerUrl) }) { client.AcceptJson().AddSessionHeader(mayur.Id); var currentSeed = Guid.NewGuid(); var form = new GroupFrom { Name = $"Test.{currentSeed}", Type = GroupVisibility.Invisible, Players = new List<Guid> { mayur.Player.Id, matt.Player.Id } }; // Create Group with valid Players var groupResponse = await client.PostAsJsonAsync($"/api/groups", form); Assert.Equal(HttpStatusCode.Created, groupResponse.StatusCode); var group = await groupResponse.Content.ReadAsJsonAsync<Group>(); Assert.IsType(typeof(Group), group); Assert.Equal(mayur.Player.Id, group.AdminId); var updateForm = new GroupFrom(); // Update Group Players with Remove Existing Player groupResponse = await client.PutAsJsonAsync($"/api/groups/{group.Id}/players/{matt.Player.Id}/remove", updateForm); Assert.Equal(HttpStatusCode.OK, groupResponse.StatusCode); var response = await groupResponse.Content.ReadAsJsonAsync<Group>(); Assert.IsType(typeof(Group), response); Assert.Equal(group.Id, response.Id); Assert.Equal($"Test.{currentSeed}", response.Username); Assert.Equal(1, response.Players.Count); } }
public async Task UpdateGroupPlayer_WithInvalidGroup() { var session = await Login(); using (var client = new HttpClient { BaseAddress = new Uri(ServerUrl) }) { client.AcceptJson().AddSessionHeader(session.Id); var form = new GroupFrom(); // Update Group Players with Invalid Group Id var invalidId = Guid.NewGuid(); var groupResponse = await client.PutAsJsonAsync($"/api/groups/{invalidId}/players/{invalidId}", form); Assert.Equal(HttpStatusCode.NotFound, groupResponse.StatusCode); var content = await groupResponse.Content.ReadAsJsonAsync<ApiError>(); Assert.Equal("No Group found.", content.Error); } }
public async Task CreateGroup_WithInvalidPlayers() { var session = await Login(); using (var client = new HttpClient { BaseAddress = new Uri(ServerUrl) }) { client.AcceptJson().AddSessionHeader(session.Id); var currentSeed = Guid.NewGuid(); var invalidPlayer = Guid.NewGuid(); var form = new GroupFrom { Name = $"Test.{currentSeed}", Players = new List<Guid> { session.Player.Id, invalidPlayer } }; // Create Group with Invalid Players var groupResponse = await client.PostAsJsonAsync($"/api/groups", form); Assert.Equal(HttpStatusCode.NotFound, groupResponse.StatusCode); var content = await groupResponse.Content.ReadAsJsonAsync<ApiError>(); Assert.Equal($"No Player with Id {invalidPlayer} exists.", content.Error); } }
public async Task CreateGroup_WithNoPlayer() { var session = await Login(); using (var client = new HttpClient { BaseAddress = new Uri(ServerUrl) }) { client.AcceptJson().AddSessionHeader(session.Id); var currentSeed = Guid.NewGuid(); var form = new GroupFrom { Name = $"Test.{currentSeed}", Players = new List<Guid>() }; // Create Group with No Player var groupResponse = await client.PostAsJsonAsync($"/api/groups", form); Assert.Equal(HttpStatusCode.BadRequest, groupResponse.StatusCode); var content = await groupResponse.Content.ReadAsJsonAsync<ApiError>(); Assert.Equal("Group requires minimum 1 Player.", content.Error); } }
public async Task CreateGroup_WithExistingName() { var session = await Login(); using (var client = new HttpClient { BaseAddress = new Uri(ServerUrl) }) { client.AcceptJson().AddSessionHeader(session.Id); var form = new GroupFrom { Name = "rage" }; // Create Group with existing Name var groupResponse = await client.PostAsJsonAsync($"/api/groups", form); Assert.Equal(HttpStatusCode.BadRequest, groupResponse.StatusCode); var content = await groupResponse.Content.ReadAsJsonAsync<ApiError>(); Assert.Equal("Group with this name already exists.", content.Error); } }