public async Task UploadFile_Request_CorrectUri() { // Arrange var handlerMock = new Mock <HttpMessageHandler>(MockBehavior.Strict).SetupHttpResponse(HttpStatusCode.OK, JsonSerializer.Serialize(ValidUploadResponse)); var httpClient = SetUpHttpClient(handlerMock.Object); var webPortalClient = new SkynetWebPortal(httpClient); var fileMock = new Mock <IFileInfo>().SetupValidFile(); // Act await webPortalClient.UploadFile(new UploadItem(fileMock.Object)); // Assert var expectedUriWithoutQuery = "https://siasky.net/skynet/skyfile"; handlerMock .Protected() .Verify( "SendAsync", Times.Exactly(1), ItExpr.Is <HttpRequestMessage>(req => req.Method == HttpMethod.Post && req.RequestUri.GetLeftPart(UriPartial.Path) == expectedUriWithoutQuery ), ItExpr.IsAny <CancellationToken>() ); }
public void DownloadFile_SkylinkIsDefault_ThrowsArgumentException() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK); var webPortalClient = new SkynetWebPortal(httpClient); // Act AsyncTestDelegate downloadRequest = () => webPortalClient.DownloadFile(default);
public void OneTimeSetUp() { var httpClient = new HttpClient { BaseAddress = new Uri("https://skynet.developmomentum.com") }; _skynetWebPortal = new SkynetWebPortal(httpClient); }
public void UploadFile_UploadItemIsNull_ThrowsArgumentNullException() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(ValidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); // Act Task UploadRequest() => webPortalClient.UploadFile(null as UploadItem); // Assert Assert.That(UploadRequest, Throws.ArgumentNullException); }
public void UploadFiles_ItemsAreEmpty_ThrowsArgumentException() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(ValidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); // Act Task UploadRequest() => webPortalClient.UploadFiles(Array.Empty<UploadItem>()); // Assert Assert.That(UploadRequest, Throws.ArgumentException); }
public void UploadDirectory_FileProviderIsTypeNullFileProvider_ThrowsArgumentException() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(ValidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); // Act Task UploadRequest() => webPortalClient.UploadDirectory(new NullFileProvider(), ""); // Assert Assert.That(UploadRequest, Throws.ArgumentException); }
public void UploadDirectory_DirectoryPathExists_ThrowsNothing() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(ValidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); var fileProvider = SetUpFileProvider(); // Act Task UploadRequest() => webPortalClient.UploadDirectory(fileProvider, ""); // Assert Assert.That(UploadRequest, Throws.Nothing); }
public void UploadDirectory_DirectoryPathDoesNotExist_ThrowsDirectoryNotFoundException() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(ValidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); var fileProvider = SetUpFileProvider(); // Act Task UploadRequest() => webPortalClient.UploadDirectory(fileProvider, "non-existant-directory"); // Assert Assert.That(UploadRequest, Throws.TypeOf <DirectoryNotFoundException>()); }
public async Task UploadDirectory_DirectoryPathExists_ReturnsSkylink() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(ValidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); var fileProvider = SetUpFileProvider(); // Act var response = await webPortalClient.UploadDirectory(fileProvider, ""); // Assert Assert.That(response, Is.EqualTo(Skylink.Parse(ValidUploadResponse.Skylink))); }
public void UploadFiles_NonSuccessfulResponse_ThrowsHttpRequestException() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.BadRequest); var webPortalClient = new SkynetWebPortal(httpClient); var fileMock = new Mock<IFileInfo>().SetupValidFile(); // Act Task UploadRequest() => webPortalClient.UploadFiles(new UploadItem[] { new UploadItem(fileMock.Object) }); // Assert Assert.That(UploadRequest, Throws.TypeOf<HttpRequestException>()); }
public void UploadFile_FileExistsInvalidUploadResponse_ThrowsHttpResponseException() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(InvalidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); var fileProvider = SetUpFileProvider(); // Act Task UploadRequest() => webPortalClient.UploadFile(fileProvider, "exists.txt"); // Assert Assert.That(UploadRequest, Throws.TypeOf <HttpResponseException>()); }
public void UploadFile_FilePathIsWhitespace_ThrowsArgumentException(string filePath) { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(ValidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); var fileProvider = SetUpFileProvider(); // Act Task UploadRequest() => webPortalClient.UploadFile(fileProvider, filePath); // Assert Assert.That(UploadRequest, Throws.ArgumentException); }
public void UploadFiles_FileInfoEnumerableIsEmpty_ThrowsArgumentException() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(ValidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); var fileProvider = SetUpFileProvider(); // Act Task UploadRequest() => webPortalClient.UploadFiles(Enumerable.Empty<IFileInfo>()); // Assert Assert.That(UploadRequest, Throws.ArgumentException); }
public async Task UploadFile_FileInfoIsValidFile_ReturnsSkylink() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(ValidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); var fileMock = new Mock <IFileInfo>().SetupValidFile(); // Act var response = await webPortalClient.UploadFile(fileMock.Object); // Assert Assert.That(response, Is.EqualTo(Skylink.Parse(ValidUploadResponse.Skylink))); }
public void UploadFile_FileInfoIsValidFile_ThrowsNothing() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(ValidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); var fileMock = new Mock <IFileInfo>().SetupValidFile(); // Act Task UploadRequest() => webPortalClient.UploadFile(fileMock.Object); // Assert Assert.That(UploadRequest, Throws.Nothing); }
public void UploadFile_FileInfoIsNotFoundFileInfo_ThrowsArgumentException() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(ValidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); var fileProvider = SetUpFileProvider(); // Act Task UploadRequest() => webPortalClient.UploadFile(new NotFoundFileInfo("doesnotexist.txt")); // Assert Assert.That(UploadRequest, Throws.ArgumentException); }
public void UploadFiles_FileInfoEnumerableOnlyContainsValidFilesInvalidUploadResponse_ThrowsHttpResponseException() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(InvalidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); var fileMock = new Mock<IFileInfo>().SetupValidFile(); // Act Task UploadRequest() => webPortalClient.UploadFiles(new IFileInfo[] { fileMock.Object }); // Assert Assert.That(UploadRequest, Throws.TypeOf<HttpResponseException>()); }
public void UploadFiles_FileInfoEnumerableContainsDirectory_ThrowsArgumentException() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(ValidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); var fileMock = new Mock<IFileInfo>().SetupDirectory(); // Act Task UploadRequest() => webPortalClient.UploadFiles(new IFileInfo[] { fileMock.Object }); // Assert Assert.That(UploadRequest, Throws.ArgumentException); }
public void UploadFile_UploadItemIsNotNullInvalidUploadResponse_ThrowsHttpResponseException() { // Arrange using var httpClient = SetUpHttpClientThatReturns(HttpStatusCode.OK, JsonSerializer.Serialize(InvalidUploadResponse)); var webPortalClient = new SkynetWebPortal(httpClient); var fileMock = new Mock <IFileInfo>().SetupValidFile(); var uploadItem = new UploadItem(fileMock.Object); // Act Task UploadRequest() => webPortalClient.UploadFile(uploadItem); // Assert Assert.That(UploadRequest, Throws.TypeOf <HttpResponseException>()); }