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); }
public void TestPostAsync_LogDownloadRequestArgumentIsNull_Throws() { var target = new NfieldExternalApisLogService(); Assert.Throws <ArgumentNullException>(() => UnwrapAggregateException(target.PostAsync(null))); }