/// <summary> /// Test the creation of the rotation list, a side effect of rental request record creation. /// </summary> public async Task TestRotationListNonDumpTruck() { string initialName = "InitialName"; // create a temporary region. var request = new HttpRequestMessage(HttpMethod.Post, "/api/regions"); Region region = new Region(); region.Name = initialName; request.Content = new StringContent(region.ToJson(), Encoding.UTF8, "application/json"); var response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // parse as JSON. string jsonString = await response.Content.ReadAsStringAsync(); region = JsonConvert.DeserializeObject <Region>(jsonString); request = new HttpRequestMessage(HttpMethod.Post, "/api/districts"); // create a new District District district = new District(); district.Id = 0; district.Name = initialName; district.Region = region; jsonString = district.ToJson(); request.Content = new StringContent(jsonString, Encoding.UTF8, "application/json"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // parse as JSON. jsonString = await response.Content.ReadAsStringAsync(); district = JsonConvert.DeserializeObject <District>(jsonString); // create a new Service Area request = new HttpRequestMessage(HttpMethod.Post, "/api/serviceareas"); ServiceArea serviceArea = new ServiceArea(); serviceArea.Id = 0; serviceArea.Name = initialName; serviceArea.District = district; jsonString = serviceArea.ToJson(); request.Content = new StringContent(jsonString, Encoding.UTF8, "application/json"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // parse as JSON. jsonString = await response.Content.ReadAsStringAsync(); serviceArea = JsonConvert.DeserializeObject <ServiceArea>(jsonString); // create a new Local Area request = new HttpRequestMessage(HttpMethod.Post, "/api/localAreas"); LocalArea localArea = new LocalArea(); localArea.Id = 0; localArea.LocalAreaNumber = 1234; localArea.ServiceArea = serviceArea; jsonString = localArea.ToJson(); request.Content = new StringContent(jsonString, Encoding.UTF8, "application/json"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // parse as JSON. jsonString = await response.Content.ReadAsStringAsync(); localArea = JsonConvert.DeserializeObject <LocalArea>(jsonString); // create a new Equipment Type request = new HttpRequestMessage(HttpMethod.Post, "/api/equipmentTypes"); // create a new equipment type EquipmentType equipmentType = new EquipmentType(); equipmentType.Id = 0; equipmentType.Name = initialName; equipmentType.IsDumpTruck = false; equipmentType.NumberOfBlocks = 2; jsonString = equipmentType.ToJson(); request.Content = new StringContent(jsonString, Encoding.UTF8, "application/json"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // parse as JSON. jsonString = await response.Content.ReadAsStringAsync(); equipmentType = JsonConvert.DeserializeObject <EquipmentType>(jsonString); request = new HttpRequestMessage(HttpMethod.Post, "/api/districtEquipmentTypes"); // create a new District Equipment Type DistrictEquipmentType districtEquipmentType = new DistrictEquipmentType(); districtEquipmentType.Id = 0; districtEquipmentType.DistrictEquipmentName = initialName; districtEquipmentType.District = district; districtEquipmentType.EquipmentType = equipmentType; jsonString = districtEquipmentType.ToJson(); request.Content = new StringContent(jsonString, Encoding.UTF8, "application/json"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // parse as JSON. jsonString = await response.Content.ReadAsStringAsync(); districtEquipmentType = JsonConvert.DeserializeObject <DistrictEquipmentType>(jsonString); // create equipment. int numberEquipment = 75; Equipment[] testEquipment = new Equipment[numberEquipment]; int blockCount = 0; int currentBlock = 1; for (int i = 0; i < numberEquipment; i++) { testEquipment[i] = new Equipment(); testEquipment[i].LocalArea = localArea; testEquipment[i].DistrictEquipmentType = districtEquipmentType; testEquipment[i].Seniority = (numberEquipment - i + 1) * 1.05F; testEquipment[i].IsSeniorityOverridden = true; testEquipment[i].BlockNumber = currentBlock; testEquipment[i] = CreateEquipment(testEquipment[i]); ++blockCount; if (blockCount >= 10 && currentBlock < 2) { currentBlock++; blockCount = 0; } // avoid database problems due to too many requests System.Threading.Thread.Sleep(200); } // Now create the rental request. request = new HttpRequestMessage(HttpMethod.Post, "/api/rentalrequests"); RentalRequest rentalRequest = new RentalRequest(); rentalRequest.Status = initialName; rentalRequest.LocalArea = localArea; rentalRequest.DistrictEquipmentType = districtEquipmentType; jsonString = rentalRequest.ToJson(); request.Content = new StringContent(jsonString, Encoding.UTF8, "application/json"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // parse as JSON. jsonString = await response.Content.ReadAsStringAsync(); rentalRequest = JsonConvert.DeserializeObject <RentalRequest>(jsonString); // get the id var id = rentalRequest.Id; // do a get. request = new HttpRequestMessage(HttpMethod.Get, "/api/rentalrequests/" + id); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // parse as JSON. jsonString = await response.Content.ReadAsStringAsync(); rentalRequest = JsonConvert.DeserializeObject <RentalRequest>(jsonString); // should be the same number of equipment. Assert.Equal(rentalRequest.RentalRequestRotationList.Count, numberEquipment); // do a delete. request = new HttpRequestMessage(HttpMethod.Post, "/api/rentalrequests/" + id + "/delete"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // should get a 404 if we try a get now. request = new HttpRequestMessage(HttpMethod.Get, "/api/rentalrequests/" + id); response = await _client.SendAsync(request); Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); // remove equipment. for (int i = 0; i < numberEquipment; i++) { request = new HttpRequestMessage(HttpMethod.Post, "/api/equipment/" + testEquipment[i].Id + "/delete"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // should get a 404 if we try a get now. request = new HttpRequestMessage(HttpMethod.Get, "/api/equipment/" + testEquipment[i].Id); response = await _client.SendAsync(request); Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); } // now remove the other temporary objects. // districtEquipmentType request = new HttpRequestMessage(HttpMethod.Post, "/api/districtEquipmentTypes/" + districtEquipmentType.Id + "/delete"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); request = new HttpRequestMessage(HttpMethod.Get, "/api/districtEquipmentTypes/" + districtEquipmentType.Id); response = await _client.SendAsync(request); Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); // equipmentType request = new HttpRequestMessage(HttpMethod.Post, "/api/equipmentTypes/" + equipmentType.Id + "/delete"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); request = new HttpRequestMessage(HttpMethod.Get, "/api/equipmentTypes/" + equipmentType.Id); response = await _client.SendAsync(request); Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); // localArea request = new HttpRequestMessage(HttpMethod.Post, "/api/localAreas/" + localArea.Id + "/delete"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); request = new HttpRequestMessage(HttpMethod.Get, "/api/localAreas/" + localArea.Id); response = await _client.SendAsync(request); Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); // Service Area request = new HttpRequestMessage(HttpMethod.Post, "/api/serviceareas/" + serviceArea.Id + "/delete"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); request = new HttpRequestMessage(HttpMethod.Get, "/api/serviceareas/" + serviceArea.Id); response = await _client.SendAsync(request); Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); // District request = new HttpRequestMessage(HttpMethod.Post, "/api/districts/" + district.Id + "/delete"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); request = new HttpRequestMessage(HttpMethod.Get, "/api/districts/" + district.Id); response = await _client.SendAsync(request); Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); // Region request = new HttpRequestMessage(HttpMethod.Post, "/api/regions/" + region.Id + "/delete"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); request = new HttpRequestMessage(HttpMethod.Get, "/api/regions/" + region.Id); response = await _client.SendAsync(request); Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); }
/// <summary> /// Basic Integration test for EquipmentTypes /// </summary> public async Task TestEquipmentTypesBasic() { string initialName = "InitialName"; string changedName = "ChangedName"; // first test the POST. var request = new HttpRequestMessage(HttpMethod.Post, "/api/equipmentTypes"); // create a new object. EquipmentType equipmenttype = new EquipmentType { Name = initialName }; string jsonString = equipmenttype.ToJson(); request.Content = new StringContent(jsonString, Encoding.UTF8, "application/json"); var response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // parse as JSON. jsonString = await response.Content.ReadAsStringAsync(); equipmenttype = JsonConvert.DeserializeObject <EquipmentType>(jsonString); // get the id var id = equipmenttype.Id; // change the name equipmenttype.Name = changedName; // now do an update. request = new HttpRequestMessage(HttpMethod.Put, "/api/equipmentTypes/" + id) { Content = new StringContent(equipmenttype.ToJson(), Encoding.UTF8, "application/json") }; response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // do a get. request = new HttpRequestMessage(HttpMethod.Get, "/api/equipmentTypes/" + id); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // parse as JSON. jsonString = await response.Content.ReadAsStringAsync(); equipmenttype = JsonConvert.DeserializeObject <EquipmentType>(jsonString); // verify the change went through. Assert.Equal(equipmenttype.Name, changedName); // do a delete. request = new HttpRequestMessage(HttpMethod.Post, "/api/equipmentTypes/" + id + "/delete"); response = await _client.SendAsync(request); response.EnsureSuccessStatusCode(); // should get a 404 if we try a get now. request = new HttpRequestMessage(HttpMethod.Get, "/api/equipmentTypes/" + id); response = await _client.SendAsync(request); Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); }