-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Remove obsolete validation in Admin Web
- Loading branch information
Shaed Parkar
committed
Oct 12, 2023
1 parent
fad29db
commit 7268064
Showing
5 changed files
with
15 additions
and
562 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -42,12 +42,9 @@ namespace AdminWebsite.UnitTests.Controllers.HearingsController | |
public class EditHearingTests | ||
{ | ||
private EditHearingRequest _addEndpointToHearingRequest; | ||
private EditHearingRequest _addEndpointToHearingRequestWithJudge; | ||
private EditHearingRequest _editEndpointOnHearingRequestWithJudge; | ||
private EditHearingRequest _removeEndpointOnHearingRequest; | ||
private EditHearingRequest _addNewParticipantRequest; | ||
private EditHearingRequest _switchJudgeRequest; | ||
private EditHearingRequest _updateJudgeOtherInformationRequest; | ||
private Mock<IBookingsApiClient> _bookingsApiClient; | ||
|
||
private AdminWebsite.Controllers.HearingsController _controller; | ||
|
@@ -220,37 +217,6 @@ public void Setup() | |
} | ||
}; | ||
|
||
_addEndpointToHearingRequestWithJudge = new EditHearingRequest | ||
{ | ||
Case = new EditCaseRequest { Name = "Case", Number = "123" }, | ||
Participants = new List<EditParticipantRequest>() | ||
{ | ||
new EditParticipantRequest() { | ||
Id = participantId1, | ||
CaseRoleName = "judge", | ||
HearingRoleName = HearingRoleName.Judge, | ||
FirstName = "FirstName", | ||
LastName = "LastName", | ||
ContactEmail = "[email protected]", | ||
DisplayName = "FirstName LastName", | ||
LinkedParticipants = new List<LinkedParticipant>(), | ||
OrganisationName = "Org1", | ||
Representee = "Rep1", | ||
TelephoneNumber = "+44 123 1234", | ||
Title = "Mr", | ||
MiddleNames = "MiddleNames" | ||
} | ||
}, | ||
Endpoints = new List<EditEndpointRequest> | ||
{ | ||
new EditEndpointRequest { Id = null, DisplayName = "New Endpoint", DefenceAdvocateContactEmail = "[email protected]" }, | ||
new EditEndpointRequest { Id = endpointGuid1, DisplayName = "data1", DefenceAdvocateContactEmail = defenceAdvocate1 }, | ||
new EditEndpointRequest { Id = endpointGuid2, DisplayName = "data2", DefenceAdvocateContactEmail = defenceAdvocate2 }, | ||
new EditEndpointRequest { Id = endpointGuid3, DisplayName = "data3", DefenceAdvocateContactEmail = defenceAdvocate3 }, | ||
new EditEndpointRequest { Id = endpointGuid4, DisplayName = "data4", DefenceAdvocateContactEmail = defenceAdvocate4 } | ||
} | ||
}; | ||
|
||
_editEndpointOnHearingRequestWithJudge = new EditHearingRequest | ||
{ | ||
Case = new EditCaseRequest | ||
|
@@ -343,43 +309,6 @@ public void Setup() | |
CaseTypeName = "Unit Test", | ||
ScheduledDateTime = DateTime.UtcNow.AddHours(3) | ||
}; | ||
|
||
_switchJudgeRequest = new EditHearingRequest | ||
{ | ||
Case = new EditCaseRequest | ||
{ | ||
Name = "Case", | ||
Number = "123" | ||
}, | ||
Participants = new List<EditParticipantRequest> | ||
{ | ||
new EditParticipantRequest | ||
{ | ||
ContactEmail = "[email protected]", | ||
FirstName = "Test_FirstName", | ||
LastName = "Test_LastName", | ||
HearingRoleName = HearingRoleName.Judge | ||
} | ||
} | ||
}; | ||
|
||
_updateJudgeOtherInformationRequest = new EditHearingRequest | ||
{ | ||
Case = new EditCaseRequest | ||
{ | ||
Name = "Case", | ||
Number = "123" | ||
}, | ||
Participants = new List<EditParticipantRequest> | ||
{ | ||
new EditParticipantRequest | ||
{ | ||
Id = participantId1, CaseRoleName = "judge", HearingRoleName = HearingRoleName.Judge, | ||
ContactEmail = "[email protected]", FirstName = "Judge" | ||
} | ||
}, | ||
OtherInformation = new OtherInformationDetails { JudgeEmail = "[email protected]", JudgePhone = "0845"}.ToOtherInformationString() // "|JudgeEmail|[email protected]|JudgePhone|0845" | ||
}; | ||
|
||
_bookingsApiClient.Setup(x => x.GetHearingDetailsByIdAsync(It.IsAny<Guid>())) | ||
.ReturnsAsync(_updatedExistingParticipantHearingOriginal); | ||
|
@@ -466,9 +395,11 @@ public async Task Should_return_bad_request_if_case_is_not_given() | |
_addNewParticipantRequest.Case = null; | ||
|
||
var result = await _controller.EditHearing(_validId, _addNewParticipantRequest); | ||
var badRequestResult = (BadRequestObjectResult)result.Result; | ||
var errors = (SerializableError)badRequestResult.Value; | ||
errors["case"].Should().BeEquivalentTo(new[] { "Please provide valid case details" }); | ||
var objectResult = (ObjectResult)result.Result; | ||
var validationProblems = (ValidationProblemDetails)objectResult.Value; | ||
|
||
var errors = validationProblems.Errors; | ||
errors["case"].Should().BeEquivalentTo("Please provide valid case details"); | ||
} | ||
|
||
[Test] | ||
|
@@ -482,113 +413,13 @@ public async Task Should_return_bad_request_if_no_participants_are_given() | |
|
||
_addNewParticipantRequest.Participants.Clear(); | ||
var result = await _controller.EditHearing(_validId, _addNewParticipantRequest); | ||
var badRequestResult = (BadRequestObjectResult)result.Result; | ||
var errors = (SerializableError)badRequestResult.Value; | ||
errors["participants"].Should().BeEquivalentTo(new[] { "Please provide at least one participant" }); | ||
} | ||
|
||
[Test] | ||
public async Task Should_allow_switching_judge_prior_30_minutes_of_hearing_starting() | ||
{ | ||
_existingHearingWithJudge.ScheduledDateTime = DateTime.UtcNow.AddMinutes(20); | ||
_existingHearingWithJudge.Status = BookingStatus.Created; | ||
_bookingsApiClient.SetupSequence(x => x.GetHearingDetailsByIdAsync(It.IsAny<Guid>())) | ||
.ReturnsAsync(_existingHearingWithJudge) | ||
.ReturnsAsync(_existingHearingWithJudge); | ||
var result = await _controller.EditHearing(_validId, _switchJudgeRequest); | ||
|
||
((ObjectResult)result.Result).StatusCode.Should().Be(200); | ||
_bookingsApiClient.Verify( | ||
x => x.UpdateHearingParticipantsAsync(It.IsAny<Guid>(), It.IsAny<UpdateHearingParticipantsRequest>()), | ||
Times.Once); | ||
_bookingsApiClient.Verify(x => x.UpdateHearingDetailsAsync(It.IsAny<Guid>(), | ||
It.Is<UpdateHearingRequest>(u => | ||
!u.Cases.IsNullOrEmpty())), | ||
Times.Once); | ||
} | ||
|
||
[Test] | ||
public async Task Should_allow_updating_judge_other_information_prior_30_minutes_of_hearing_starting() | ||
{ | ||
_existingHearingWithJudge.ScheduledDateTime = DateTime.UtcNow.AddMinutes(20); | ||
_existingHearingWithJudge.Status = BookingStatus.Created; | ||
_bookingsApiClient.SetupSequence(x => x.GetHearingDetailsByIdAsync(It.IsAny<Guid>())) | ||
.ReturnsAsync(_existingHearingWithJudge) | ||
.ReturnsAsync(_existingHearingWithJudge); | ||
var result = await _controller.EditHearing(_validId, _updateJudgeOtherInformationRequest); | ||
var objectResult = (ObjectResult)result.Result; | ||
var validationProblems = (ValidationProblemDetails)objectResult.Value; | ||
|
||
((ObjectResult)result.Result).StatusCode.Should().Be(200); | ||
_bookingsApiClient.Verify(x => x.UpdateHearingParticipantsAsync(It.IsAny<Guid>(), | ||
It.IsAny<UpdateHearingParticipantsRequest>()), Times.Once); | ||
_bookingsApiClient.Verify(x => x.UpdateHearingDetailsAsync(It.IsAny<Guid>(), | ||
It.Is<UpdateHearingRequest>(u => !u.Cases.IsNullOrEmpty())), Times.Once); | ||
var errors = validationProblems.Errors; | ||
errors["participants"].Should().Contain( "Please provide at least one participant"); | ||
} | ||
|
||
[Test] | ||
public async Task Should_allow_edit_confirmed_hearing_up_until_30_minutes_before_starting() | ||
{ | ||
_updatedExistingParticipantHearingOriginal.ScheduledDateTime = DateTime.UtcNow.AddHours(1); | ||
_addNewParticipantRequest.ScheduledDateTime = _updatedExistingParticipantHearingOriginal.ScheduledDateTime; | ||
_updatedExistingParticipantHearingOriginal.Status = BookingStatus.Booked; | ||
_bookingsApiClient.SetupSequence(x => x.GetHearingDetailsByIdAsync(It.IsAny<Guid>())) | ||
.ReturnsAsync(_updatedExistingParticipantHearingOriginal) | ||
.ReturnsAsync(_updatedExistingParticipantHearingOriginal) | ||
.ReturnsAsync(_updatedExistingParticipantHearingOriginal); | ||
|
||
var result = await _controller.EditHearing(_validId, _addNewParticipantRequest); | ||
|
||
((OkObjectResult)result.Result).StatusCode.Should().Be(200); | ||
_bookingsApiClient.Verify( | ||
x | ||
=> x.UpdateHearingParticipantsAsync(It.IsAny<Guid>(), | ||
It.IsAny<UpdateHearingParticipantsRequest>()), Times.Once); | ||
_bookingsApiClient.Verify(x => x.UpdateHearingDetailsAsync(It.IsAny<Guid>(), | ||
It.Is<UpdateHearingRequest>(u => !u.Cases.IsNullOrEmpty())), Times.Once); | ||
} | ||
|
||
[Test] | ||
public async Task Should_allow_only_participant_changes_if_hearing_starts_in_less_than_thirty_minutes() | ||
{ | ||
_updatedExistingParticipantHearingOriginal.ScheduledDateTime = DateTime.UtcNow.AddHours(-1); | ||
_addNewParticipantRequest = new EditHearingRequest | ||
{ | ||
HearingRoomName = _updatedExistingParticipantHearingOriginal.HearingRoomName, | ||
HearingVenueName = _updatedExistingParticipantHearingOriginal.HearingVenueName, | ||
OtherInformation = _updatedExistingParticipantHearingOriginal.OtherInformation, | ||
ScheduledDateTime = _updatedExistingParticipantHearingOriginal.ScheduledDateTime, | ||
ScheduledDuration = _updatedExistingParticipantHearingOriginal.ScheduledDuration, | ||
AudioRecordingRequired = _updatedExistingParticipantHearingOriginal.AudioRecordingRequired, | ||
Case = new EditCaseRequest | ||
{ | ||
Name = _updatedExistingParticipantHearingOriginal.Cases[0].Name, | ||
Number = _updatedExistingParticipantHearingOriginal.Cases[0].Number, | ||
}, | ||
Participants = _updatedExistingParticipantHearingOriginal.Participants.Select(EditParticipantRequestMapper.MapFrom).ToList() | ||
}; | ||
|
||
_addNewParticipantRequest.Participants.Add(new EditParticipantRequest | ||
{ | ||
ContactEmail = "[email protected]", | ||
FirstName = "Test2_FirstName", | ||
LastName = "Test2_LastName" | ||
}); | ||
_bookingsApiClient.SetupSequence(x => x.GetHearingDetailsByIdAsync(It.IsAny<Guid>())) | ||
.ReturnsAsync(_updatedExistingParticipantHearingOriginal) | ||
.ReturnsAsync(_updatedExistingParticipantHearingOriginal) | ||
.ReturnsAsync(_updatedExistingParticipantHearingOriginal); | ||
|
||
var result = await _controller.EditHearing(_validId, _addNewParticipantRequest); | ||
|
||
((OkObjectResult)result.Result).StatusCode.Should().Be(200); | ||
_bookingsApiClient.Verify( | ||
x => x.UpdateHearingParticipantsAsync(It.IsAny<Guid>(), It.IsAny<UpdateHearingParticipantsRequest>()), | ||
Times.Once); | ||
_bookingsApiClient.Verify(x => x.UpdateHearingDetailsAsync(It.IsAny<Guid>(), | ||
It.Is<UpdateHearingRequest>(u => | ||
!u.Cases.IsNullOrEmpty())), | ||
Times.Once); | ||
} | ||
|
||
|
||
[Test] | ||
public async Task Should_return_not_found_if_hearing_is_missing() | ||
{ | ||
|
@@ -906,32 +737,6 @@ public async Task Should_add_endpoint_if_new_endpoint_is_added_to_endpoint_list( | |
x => x.RemoveEndPointFromHearingAsync(It.IsAny<Guid>(), It.IsAny<Guid>()), Times.Never); | ||
} | ||
|
||
[Test] | ||
public async Task Should_add_endpoint_if_new_endpoint_is_added_to_endpoint_list_prior_30_minutes_of_hearing_starting() | ||
{ | ||
_existingHearingWithEndpointsOriginal.ScheduledDateTime = DateTime.UtcNow.AddMinutes(20); | ||
_existingHearingWithEndpointsOriginal.Status = BookingStatus.Created; | ||
|
||
_bookingsApiClient.Setup(x => x.GetHearingDetailsByIdAsync(It.IsAny<Guid>())) | ||
.ReturnsAsync(_existingHearingWithEndpointsOriginal); | ||
|
||
var result = await _controller.EditHearing(_validId, _addEndpointToHearingRequestWithJudge); | ||
|
||
((OkObjectResult)result.Result).StatusCode.Should().Be(200); | ||
|
||
_bookingsApiClient.Verify( | ||
x => x.AddEndPointToHearingAsync(It.IsAny<Guid>(), It.IsAny<AddEndpointRequest>()), Times.Once); | ||
|
||
_bookingsApiClient.Verify(x => x.UpdateHearingDetailsAsync(It.IsAny<Guid>(), | ||
It.Is<UpdateHearingRequest>(u => | ||
!u.Cases.IsNullOrEmpty())), Times.Once); | ||
|
||
_bookingsApiClient.Verify(x => x.UpdateDisplayNameForEndpointAsync( | ||
It.IsAny<Guid>(), It.IsAny<Guid>(), It.IsAny<UpdateEndpointRequest>()), Times.Never); | ||
|
||
_bookingsApiClient.Verify(x => x.RemoveEndPointFromHearingAsync(It.IsAny<Guid>(), It.IsAny<Guid>()), Times.Never); | ||
} | ||
|
||
[Test] | ||
public async Task Should_update_endpoint_if_an_endpoint_is_updates_in_endpoint_list() | ||
{ | ||
|
@@ -951,34 +756,6 @@ public async Task Should_update_endpoint_if_an_endpoint_is_updates_in_endpoint_l | |
|
||
} | ||
|
||
[Test] | ||
public async Task Should_update_endpoint_if_an_endpoint_is_updates_in_endpoint_list_prior_30_minutes_of_hearing_starting() | ||
{ | ||
_existingHearingWithEndpointsOriginal.ScheduledDateTime = DateTime.UtcNow.AddMinutes(20); | ||
_existingHearingWithEndpointsOriginal.Status = BookingStatus.Created; | ||
|
||
_bookingsApiClient.Setup(x => x.GetHearingDetailsByIdAsync(It.IsAny<Guid>())) | ||
.ReturnsAsync(_existingHearingWithEndpointsOriginal); | ||
|
||
var result = await _controller.EditHearing(_validId, _editEndpointOnHearingRequestWithJudge); | ||
|
||
((OkObjectResult)result.Result).StatusCode.Should().Be(200); | ||
|
||
_bookingsApiClient.Verify( | ||
x => x.AddEndPointToHearingAsync(It.IsAny<Guid>(), It.IsAny<AddEndpointRequest>()), Times.Never); | ||
|
||
_bookingsApiClient.Verify(x => x.UpdateHearingDetailsAsync(It.IsAny<Guid>(), | ||
It.Is<UpdateHearingRequest>(u => | ||
!u.Cases.IsNullOrEmpty())), Times.Once); | ||
|
||
_bookingsApiClient.Verify( | ||
x => x.UpdateDisplayNameForEndpointAsync(It.IsAny<Guid>(), It.IsAny<Guid>(), | ||
It.IsAny<UpdateEndpointRequest>()), Times.Exactly(1)); | ||
|
||
_bookingsApiClient.Verify( | ||
x => x.RemoveEndPointFromHearingAsync(It.IsAny<Guid>(), It.IsAny<Guid>()), Times.Never); | ||
} | ||
|
||
[Test] | ||
public async Task Should_remove_endpoint_if_endpoint_is_removed_from_the_endpoint_list() | ||
{ | ||
|
@@ -1283,7 +1060,6 @@ public async Task Should_add_a_new_participant_and_link_to_existing_interpreter_ | |
_bookingsApiClient.Verify(x => x.UpdateHearingDetailsAsync(It.IsAny<Guid>(), | ||
It.Is<UpdateHearingRequest>(u => !u.Cases.IsNullOrEmpty())), Times.Once); | ||
} | ||
|
||
|
||
[Test] | ||
public async Task Should_create_a_new_judge_and_set_username_to_contact_email() | ||
|
Oops, something went wrong.