コード例 #1
0
        public void TestPostAsync_ValidInput_ReturnsLogData()
        {
            const string ExpectedDownloadUrl = "http://download.me";

            var activity = new BackgroundActivityStatus {
                ActivityId = "activityId"
            };
            var logDownload            = new ExternalApiLogDownload();
            var mockedNfieldConnection = new Mock <INfieldConnectionClient>();
            var mockedHttpClient       = CreateHttpClientMock(mockedNfieldConnection);

            mockedHttpClient.Setup(client => client.PostAsJsonAsync <ExternalApiLogDownload>(
                                       new Uri(ServiceAddress, "externalapilogdownload/"), logDownload))
            .Returns(CreateTask(HttpStatusCode.OK, new StringContent(JsonConvert.SerializeObject(activity))));

            mockedHttpClient
            .Setup(client => client.GetAsync(new Uri(ServiceAddress, $"BackgroundActivities/{activity.ActivityId}/")))
            .Returns(CreateTask(HttpStatusCode.OK, new StringContent(JsonConvert.SerializeObject(new { Status = 2, DownloadDataUrl = ExpectedDownloadUrl }))));

            var target = new NfieldExternalApisLogService();

            target.InitializeNfieldConnection(mockedNfieldConnection.Object);

            var result = target.PostAsync(logDownload).Result;

            Assert.Equal(ExpectedDownloadUrl, result);
        }
コード例 #2
0
        public void TestPostAsync_LogDownloadRequestArgumentIsNull_Throws()
        {
            var target = new NfieldExternalApisLogService();

            Assert.Throws <ArgumentNullException>(() => UnwrapAggregateException(target.PostAsync(null)));
        }