示例#1
0
        public static async Task Handle_ValidRequester_ReturnsModelsWithExpectedIsDeletable(
            string requesterId,
            bool expectedJaneDoeExpectedIsDeletable,
            bool expectedZhangXiaExpectedIsDeletable,
            bool expectedSatoGotaExpectedIsDeletable,
            bool expectedJohnDoeExpectedIsDeletable)
        {
            // Arrange

            GetSongDirectorsRequest request = new(requesterId);

            GetSongDirectorsInteractor <GetSongDirectorsResponse> getSongDirectorsInteractor = new(
                GetMockSongDirectorRepository(), new GetSongDirectorsDefaultBoundary());

            // Act

            GetSongDirectorsResponse response = await getSongDirectorsInteractor
                                                .HandleAsync(request)
                                                .ConfigureAwait(false);

            // Assert

            Assert.Collection(
                response.SongDirectors,
                janeDoe => Assert.Equal(expectedJaneDoeExpectedIsDeletable, janeDoe.IsDeletable),
                zhangXia => Assert.Equal(expectedZhangXiaExpectedIsDeletable, zhangXia.IsDeletable),
                satoGota => Assert.Equal(expectedSatoGotaExpectedIsDeletable, satoGota.IsDeletable),
                johnDoe => Assert.Equal(expectedJohnDoeExpectedIsDeletable, johnDoe.IsDeletable));
        }
 /// <inheritdoc/>
 public IResult FailedToGetSongDirectors(GetSongDirectorsResponse response) =>
 new BadGatewayObjectResult(
     new Status(
         HydraContext,
         (int)HttpStatusCode.BadGateway,
         "Bad Gateway",
         response.Message),
     "application/ld+json");
    /// <inheritdoc/>
    public IResult Success(GetSongDirectorsResponse response)
    {
        if (response.SongDirectors == null)
        {
            throw new ArgumentException("Song directors must be set for a successful Get" +
                                        "Song Directors response.");
        }

        // Convert use case models to API models
        IEnumerable <SongDirectorApiModel> songDirectorApiModels = response.SongDirectors
                                                                   .Select(useCaseModel => SongDirectorApiModel
                                                                           .RetrievedSongDirector(
                                                                               HydraContext,
                                                                               new Uri(ResourceBaseUri, useCaseModel.Id),
                                                                               useCaseModel));

        return(Results.Ok(songDirectorApiModels));
    }
示例#4
0
        public static async Task Handle_ValidRequester_ReturnsModelsWithExpectedRankSettings(
            string requesterId, bool shouldHaveRanks)
        {
            // Arrange

            GetSongDirectorsRequest request = new(requesterId);

            GetSongDirectorsInteractor <GetSongDirectorsResponse> getSongDirectorsInteractor = new(
                GetMockSongDirectorRepository(), new GetSongDirectorsDefaultBoundary());

            // Act

            GetSongDirectorsResponse response = await getSongDirectorsInteractor
                                                .HandleAsync(request)
                                                .ConfigureAwait(false);

            // Assert

            Assert.All(
                response.SongDirectors,
                songDirector => Assert.True(songDirector.Rank == null ^ shouldHaveRanks));
        }
 /// <inheritdoc/>
 // TODO: Create UnauthorizedObjectResult
 public IResult RequesterSongDirectorRankNotFound(GetSongDirectorsResponse response) =>
 Results.Unauthorized();
 /// <inheritdoc/>
 public IResult InvalidRequesterEmailAddress(GetSongDirectorsResponse response) =>
 Results.BadRequest(new Status(
                        HydraContext,
                        (int)HttpStatusCode.BadRequest,
                        "Bad Request",
                        response.Message));