コード例 #1
0
    public async Task MovieDb_Return_Success()
    {
        //arrange
        var httpClient      = new Mock <IHttpClient>();
        var jsonSerializer  = new Mock <IJsonSerializer>();
        var applicationHost = new Mock <IApplicationHost>();

        var responseModel = new MovieInformation()
        {
            Id             = 123,
            Imdb_Id        = "123",
            Title          = "Test",
            release_date   = DateTime.Now,
            Original_Title = "Test"
        };
        var responseStream = Utility.GenerateStreamFromString(JsonSerializer.Serialize(responseModel));

        jsonSerializer
        .Setup(_ => _.DeserializeFromStream <It.IsAnyType>(responseStream))
        .Returns(() => JsonSerializer.Deserialize(responseStream, typeof(MovieInformation),
                                                  new JsonSerializerOptions()));

        httpClient
        .Setup(_ => _.GetResponse(It.IsAny <HttpRequestOptions>()))
        .ReturnsAsync(() => new HttpResponseInfo()
        {
            ContentLength = 1,
            ContentType   = "application/json",
            Content       = responseStream
        });

        applicationHost
        .Setup(_ => _.ApplicationVersion)
        .Returns(() => new Version("1.1.1.1"));

        var movieDb = new MovieDb(jsonSerializer.Object, httpClient.Object, applicationHost.Object);

        //act
        var response = await movieDb.GetMovieInfo("123", CancellationToken.None);

        //assert
        response.Should().NotBeNull();
        response.Id.Should().Be(123);
        response.Imdb_Id.Should().Be("123");
    }