public void PostServerHeartBeat_WithDifferentIp_GivesForbidden() { var endPoint = new IPEndPoint(100, 1); using (var preContext = MockDataContext.GetContext()) { preContext.Servers.Add(new GameServer { Name = "A", Address = endPoint.Address.ToString(), QueryPort = endPoint.Port, GamePort = 200, RoundStatus = "starting", RoundStartTime = DateTime.Now, Game = "SS3D", LastUpdate = DateTime.Now - TimeSpan.FromMinutes(2) }); preContext.SaveChanges(); } using var context = MockDataContext.GetContext(); // Test var controller = new ServersController(context, ConstructChallengeRespondingMock(), logger); MockControllerConnection(controller, new IPAddress(200)); // Actual Test var response = controller.PostHeartBeatUpdate(endPoint.ToString()); Assert.IsType <ForbidResult>(response); }
public void PostServerHeartBeat_WithBadForm_GivesBadRequest() { var endPoint = new IPEndPoint(100, 1); using (var preContext = MockDataContext.GetContext()) { preContext.Servers.Add(new GameServer { Name = "A", Address = endPoint.Address.ToString(), QueryPort = endPoint.Port, GamePort = 200, RoundStatus = "starting", RoundStartTime = DateTime.Now, Game = "SS3D", LastUpdate = DateTime.Now - TimeSpan.FromMinutes(2) }); preContext.SaveChanges(); } using var context = MockDataContext.GetContext(); var controller = new ServersController(context, ConstructChallengeRespondingMock(), logger); MockControllerConnection(controller, endPoint.Address); var response = controller.PostHeartBeatUpdate("fsafsfa"); Assert.Equal(StatusCodes.Status400BadRequest, (response as IStatusCodeActionResult).StatusCode); }
public void PostServerHeartBeat_WithNonExistant_GivesNotFound() { var endPoint = new IPEndPoint(100, 1); using var context = MockDataContext.GetContext(); var controller = new ServersController(context, ConstructChallengeRespondingMock(), logger); MockControllerConnection(controller, endPoint.Address); // Note: This assumes the resource format var response = controller.PostHeartBeatUpdate(endPoint.ToString()); Assert.Equal(StatusCodes.Status404NotFound, (response as IStatusCodeActionResult).StatusCode); }
public void PostServerHeartBeat_WithExisting_UpdatesTime() { // SETUP var endPoint = new IPEndPoint(100, 1); using (var preContext = MockDataContext.GetContext()) { preContext.Servers.Add(new GameServer { Name = "A", Address = endPoint.Address.ToString(), QueryPort = endPoint.Port, GamePort = 100, RoundStatus = "starting", RoundStartTime = DateTime.Now, Game = "SS3D", LastUpdate = DateTime.Now - TimeSpan.FromMinutes(2) }); preContext.SaveChanges(); } using var context = MockDataContext.GetContext(); var controller = new ServersController(context, ConstructChallengeRespondingMock(), logger); MockControllerConnection(controller, endPoint.Address); // ACTUAL TEST // Use same IP as was originally given var response = controller.PostHeartBeatUpdate(endPoint.ToString()); // Should be successful Assert.Equal(StatusCodes.Status200OK, (response as IStatusCodeActionResult).StatusCode); // Get the server using (var postContext = MockDataContext.GetContext()) { var onlyServer = Assert.Single(postContext.Servers); // Check that the LastUpdate has changed Assert.True(onlyServer.LastUpdate > DateTime.Now - TimeSpan.FromSeconds(10)); } }