Exemplo n.º 1
0
 /// <summary>
 /// Returns output indicating that the requester's song director rank wasn't found.
 /// </summary>
 /// <param name="requesterId">The id of the requester.</param>
 /// <param name="getRequesterRankResult">
 /// The result of the attempt to get the requester's rank.
 /// </param>
 /// <returns>The output.</returns>
 private TOutput RequesterRankNotFound(
     string requesterId, Result <Rank?> getRequesterRankResult)
 {
     return(_boundary.RequesterRankNotFound(
                AddSongDirectorResponse.RequesterRankNotFound(
                    requesterId, getRequesterRankResult.GetErrorMessagesString())));
 }
        public static async Task HandleAsync_ValidSongDirector_ReturnsExpectedMessage(
            string requesterRank,
            string?fullName,
            string?emailAddress,
            string?phoneNumber,
            string?rankName,
            bool?isActive,
            string expectedMessage)
        {
            // Arrange

            string requesterId = Guid.NewGuid().ToString();

            IAsyncRepository <SongDirector> songDirectorRepository = GetMockSongDirectorRepository(
                requesterRank);

            AddSongDirectorDefaultBoundary boundary = new();

            AddSongDirectorInteractor <AddSongDirectorResponse> addSongDirectorInteractor =
                new(songDirectorRepository, boundary);

            AddSongDirectorRequest addSongDirectorRequest = new(
                requesterId, fullName, emailAddress, phoneNumber, rankName, isActive);

            // Act

            AddSongDirectorResponse addSongDirectorResponse = await addSongDirectorInteractor
                                                              .HandleAsync(addSongDirectorRequest)
                                                              .ConfigureAwait(false);

            // Assert

            Assert.Equal(expectedMessage, addSongDirectorResponse.Messages.First());
        }
Exemplo n.º 3
0
    /// <inheritdoc/>
    public IResult SongDirectorAdded(AddSongDirectorResponse response)
    {
        // Validate song director id
        if (response.AddedSongDirector?.Id == null)
        {
            throw new ArgumentException("Id must be set for an added song director.");
        }

        // Get the URL for the added song director
        string addedSongDirectorUrl = new Uri(
            ResourceBaseUri, response.AddedSongDirector.Id)
                                      .ToString();

        // Create a response object for the added song director
        SongDirectorApiModel addSongDirectorResponse = SongDirectorApiModel
                                                       .AddedSongDirector(addedSongDirectorUrl);

        // Return the IActionResult representing the add
        return(Results.Created(addedSongDirectorUrl, addSongDirectorResponse));
    }
Exemplo n.º 4
0
 /// <summary>
 /// Returns output indicating that there was a validation error when trying to create a
 /// song director.
 /// </summary>
 /// <param name="createSongDirectorResult">
 /// The result of the attempt to create a song director.</param>
 /// <returns>The output.</returns>
 private TOutput ValidationFailure(Result <SongDirector> createSongDirectorResult)
 {
     return(_boundary.ValidationFailure(
                AddSongDirectorResponse.ValidationFailure(
                    createSongDirectorResult.Errors.Select(e => e.Message))));
 }
Exemplo n.º 5
0
 /// <summary>
 /// Returns output indicating that the requester has insufficient permissions to add a song
 /// director.
 /// </summary>
 /// <returns>The output.</returns>
 private TOutput InsufficientPermissions() => _boundary.InsufficientPermissions(
     AddSongDirectorResponse.InsufficientPermissions());
Exemplo n.º 6
0
 /// <summary>
 /// Returns output indicating that an attempt to add a song director failed.
 /// </summary>
 /// <param name="addSongDirectorResult">The result of the add attempt.</param>
 /// <returns>The output.</returns>
 private TOutput FailedToAddSongDirector(Result <SongDirector> addSongDirectorResult)
 {
     return(_boundary.SongDirectorAddFailed(AddSongDirectorResponse.SongDirectorAddFailed(
                                                $"{addSongDirectorResult.GetErrorMessagesString()}")));
 }
Exemplo n.º 7
0
 /// <summary>
 /// Returns output indicating that a song director was added.
 /// </summary>
 /// <param name="addedSongDirector">The added song director.</param>
 /// <returns>The output.</returns>
 private TOutput SongDirectorAdded(SongDirectorUseCaseModel addedSongDirector)
 {
     return(_boundary.SongDirectorAdded(
                AddSongDirectorResponse.SongDirectorAdded(addedSongDirector)));
 }
Exemplo n.º 8
0
 /// <inheritdoc/>
 public IResult ValidationFailure(AddSongDirectorResponse response) =>
 Results.BadRequest(new Status(
                        HydraContext,
                        (int)HttpStatusCode.BadRequest,
                        "Bad Request",
                        string.Join(Environment.NewLine, response.Messages)));
Exemplo n.º 9
0
 /// <inheritdoc/>
 public IResult SongDirectorAddFailed(AddSongDirectorResponse response) =>
 Results.Extensions.BadGatewayStatusJsonLD(HydraContext, response.Messages);
Exemplo n.º 10
0
 /// <inheritdoc/>
 /// TODO: Create an UnauthorizedObjectResult class to include a Status object
 public IResult RequesterRankNotFound(AddSongDirectorResponse response) =>
 Results.Unauthorized();
Exemplo n.º 11
0
 /// <inheritdoc/>
 public IResult InsufficientPermissions(AddSongDirectorResponse response) =>
 Results.Unauthorized();