public void LoadTest_1000Records() { var stopwatch = new Stopwatch(); stopwatch.Start(); const string baseUrl = "http://localhost:8888/"; const string url = baseUrl + "api/server/test/loaddata"; using (WebApp.Start <Startup>(baseUrl)) { for (var i = 0; i < 1000; i++) { var serverLoadEntry = new ServerLoadEntry { CpuLoad = i, RamLoad = i }; var content = new ObjectContent <ServerLoadEntry>(serverLoadEntry, new JsonMediaTypeFormatter(), "application/json"); var handler = new HttpClientHandler { UseDefaultCredentials = true }; using (var httpClient = new HttpClient(handler, true)) { httpClient.PostAsync(url, content); } } } Console.WriteLine(stopwatch.Elapsed); }
public void ServerController_Post_SavesNewServerLoadDataEntry() { var expectedRecordedDate = DateTime.Now; Clock.Freeze(expectedRecordedDate); var serverLoadData = new ServerLoadEntry { CpuLoad = 1.00d, RamLoad = 2.00d }; var t = _controller.Post(ServerName, serverLoadData).Result; Assert.That(_serverLoadRepository.ServerRecords.Count(), Is.EqualTo(1)); var savedServerRecords = _serverLoadRepository.ServerRecords.Single(); Assert.That(savedServerRecords.Key, Is.EqualTo(ServerName)); var serverLoadDataRecords = savedServerRecords.Value; Assert.That(serverLoadDataRecords.Count, Is.EqualTo(1)); var serverLoadDataRecord = serverLoadDataRecords.Single(); Assert.That(serverLoadDataRecord.CpuLoad, Is.EqualTo(1.00d)); Assert.That(serverLoadDataRecord.RamLoad, Is.EqualTo(2.00d)); Assert.That(serverLoadDataRecord.RecordedDate, Is.EqualTo(expectedRecordedDate)); }
public void ServerController_Post_InvalidServerNameReturns400(string serverName) { var serverLoadData = new ServerLoadEntry(); var response = _controller.Post(serverName, serverLoadData).Result; Assert.That((int)response.StatusCode, Is.EqualTo(400)); }
public void ServerController_Post_Returns200OnSuccess() { var serverLoadData = new ServerLoadEntry(); var response = _controller.Post(ServerName, serverLoadData).Result; Assert.That((int)response.StatusCode, Is.EqualTo(200)); }
public async Task <HttpResponseMessage> Post(string serverName, [FromBody] ServerLoadEntry serverLoadEntry) { if (string.IsNullOrWhiteSpace(serverName)) { return(new HttpResponseMessage(HttpStatusCode.BadRequest)); } await Task.Run(() => _serverLoadRepository.Record(serverName, serverLoadEntry)); return(new HttpResponseMessage(HttpStatusCode.OK)); }
public void Record(string serverName, ServerLoadEntry serverLoadEntry) { ServerRecords.AddOrUpdate(serverName, s => new BlockingCollection <ServerLoadData> { new ServerLoadData(serverLoadEntry) }, (s, list) => { list.Add(new ServerLoadData(serverLoadEntry)); return(list); }); }
public void ServerController_Post_AppendsLoadDataEntry() { var expectedRecordedDate = DateTime.Now; Clock.Freeze(expectedRecordedDate); _serverLoadRepository.ServerRecords.TryAdd(ServerName, new BlockingCollection <ServerLoadData> { new ServerLoadData { CpuLoad = 100d, RamLoad = 200d, RecordedDate = expectedRecordedDate } }); var serverLoadData = new ServerLoadEntry { CpuLoad = 1.00d, RamLoad = 2.00d }; var t = _controller.Post(ServerName, serverLoadData).Result; Assert.That(_serverLoadRepository.ServerRecords.Count(), Is.EqualTo(1)); var savedServerRecords = _serverLoadRepository.ServerRecords.Single(); Assert.That(savedServerRecords.Key, Is.EqualTo(ServerName)); var serverLoadDataRecords = savedServerRecords.Value.ToList(); Assert.That(serverLoadDataRecords.Count, Is.EqualTo(2)); Assert.That(serverLoadDataRecords[0].CpuLoad, Is.EqualTo(100d)); Assert.That(serverLoadDataRecords[0].RamLoad, Is.EqualTo(200d)); Assert.That(serverLoadDataRecords[0].RecordedDate, Is.EqualTo(expectedRecordedDate)); Assert.That(serverLoadDataRecords[1].CpuLoad, Is.EqualTo(1.00d)); Assert.That(serverLoadDataRecords[1].RamLoad, Is.EqualTo(2.00d)); Assert.That(serverLoadDataRecords[1].RecordedDate, Is.EqualTo(expectedRecordedDate)); }
public ServerLoadData(ServerLoadEntry serverLoadEntry) : this(serverLoadEntry.CpuLoad, serverLoadEntry.RamLoad) { }