public async void CreateDirectory_Correct() { var optionsMock = GetAppSettingsMock(); var queueMock = GetQueueMock(); var guardMock = new Mock <IGuardApi>(); guardMock.Setup(api => api.AddDirectory( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync(true); var writeObjectsController = new WriteObjectsController(optionsMock.Object, guardMock.Object, null, queueMock.Object); var request = new CreateDirectoryRequest() { SubDirectoryName = "MySubDir" }; var response = await writeObjectsController.CreateDirectory(IdGenerator.NewId(IdType.Directory), request); var metadataResponseObject = Assert.IsType <OkObjectResult>(response); var newDirectoryId = Assert.IsType <string>(metadataResponseObject.Value); Assert.True(IdGenerator.TypeFromId(newDirectoryId, out var typeOfId)); Assert.Equal(IdType.Directory, typeOfId); }
public async void UpdateMetadata_InvalidData() { var optionsMock = GetAppSettingsMock(); var queueMock = GetQueueMock(); var guardMock = new Mock <IGuardApi>(); guardMock.Setup(api => api.UpdateObjectMetadata( It.IsAny <string>(), It.IsAny <IMetadataUpdate>())) .ReturnsAsync(true); var writeObjectsController = new WriteObjectsController(optionsMock.Object, guardMock.Object, null, queueMock.Object); // No object name var noObjectNameRequest = new UpdateObjectMetaDataRequest { ParentDirectoryIds = new[] { IdGenerator.NewId(IdType.Directory) }, ObjectName = null }; var response = await writeObjectsController.UpdateObjectMetadata(noObjectNameRequest, IdGenerator.NewId(IdType.Directory), 0); Assert.IsType <BadRequestResult>(response); // No object name var parentDirectoryHasFileIdRequest = new UpdateObjectMetaDataRequest { ParentDirectoryIds = new[] { IdGenerator.NewId(IdType.File) }, ObjectName = "Abc" }; response = await writeObjectsController.UpdateObjectMetadata(parentDirectoryHasFileIdRequest, IdGenerator.NewId(IdType.Directory), 0); Assert.IsType <BadRequestResult>(response); // Invalid target object id var validRequest = new UpdateObjectMetaDataRequest { ParentDirectoryIds = new[] { IdGenerator.NewId(IdType.Directory) }, ObjectName = "Abc" }; response = await writeObjectsController.UpdateObjectMetadata(validRequest, IdGenerator.NewId(IdType.Undefined), 0); Assert.IsType <BadRequestResult>(response); }
public async void FileUpload_Correct() { var optionsMock = GetAppSettingsMock(); var queueMock = GetQueueMock(); var guardMock = new Mock <IGuardApi>(); guardMock.Setup(api => api.AddFile( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <DocumentLanguage>(), It.IsAny <ExtensionType>())).ReturnsAsync(4); var bucketMock = new Mock <IWritableBucket>(); bucketMock.Setup(x => x.UploadFileEncrypted( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <byte[]>(), It.IsAny <Stream>())).ReturnsAsync(true); var writeObjectsController = new WriteObjectsController(optionsMock.Object, guardMock.Object, bucketMock.Object, queueMock.Object); var requestPayload = new UploadFileRequest { DocumentLanguage = DocumentLanguage.German, EncryptedKey = Convert.ToBase64String(ivAndKey1), Name = "MyFile.pdf", PlaintextKey = Convert.ToBase64String(ivAndKey2), File = new FormFile(stream, 0, payload.Length, "", "") }; var response = await writeObjectsController.UploadFile(requestPayload, IdGenerator.NewId(IdType.Directory), 0); var metadataResponseObject = Assert.IsType <OkObjectResult>(response); var metadataResponse = Assert.IsType <UploadFileResponse>(metadataResponseObject.Value); Assert.Equal(requestPayload.Name, metadataResponse.ObjectName); Assert.True(IdGenerator.TypeFromId(metadataResponse.ObjectId, out var typeOfId)); Assert.Equal(IdType.File, typeOfId); Assert.True(DateTime.UtcNow - metadataResponse.LatestChangeDate < TimeSpan.FromHours(1)); Assert.Equal(DateTime.MinValue, metadataResponse.LatestViewDate); Assert.Equal((uint)payload.Length, metadataResponse.SizeInBytes); }
public async void DeleteObject_Throws() { var optionsMock = GetAppSettingsMock(); var queueMock = GetQueueMock(); var guardMock = new Mock <IGuardApi>(); guardMock.Setup(api => api.DeleteObject( It.IsAny <string>())) .Throws <InvalidOperationException>(); var writeObjectsController = new WriteObjectsController(optionsMock.Object, guardMock.Object, null, queueMock.Object); var response = await writeObjectsController.DeleteObject(IdGenerator.NewId(IdType.File), 0); Assert.IsType <BadRequestResult>(response); }
public async void DeleteObject_Correct() { var optionsMock = GetAppSettingsMock(); var queueMock = GetQueueMock(); var guardMock = new Mock <IGuardApi>(); guardMock.Setup(api => api.DeleteObject( It.IsAny <string>())) .ReturnsAsync(true); var writeObjectsController = new WriteObjectsController(optionsMock.Object, guardMock.Object, null, queueMock.Object); var response = await writeObjectsController.DeleteObject(IdGenerator.NewId(IdType.File), 0); Assert.IsType <OkResult>(response); }
public async void DeleteObject_InvalidData() { var optionsMock = GetAppSettingsMock(); var queueMock = GetQueueMock(); var guardMock = new Mock <IGuardApi>(); guardMock.Setup(api => api.DeleteObject( It.IsAny <string>())) .ReturnsAsync(true); var writeObjectsController = new WriteObjectsController(optionsMock.Object, guardMock.Object, null, queueMock.Object); // Use invalid id to delete var response = await writeObjectsController.DeleteObject(IdGenerator.NewId(IdType.Undefined), 0); Assert.IsType <BadRequestResult>(response); }
public async void FileUpload_throws() { var optionsMock = GetAppSettingsMock(); var queueMock = GetQueueMock(); var guardMock = new Mock <IGuardApi>(); guardMock.Setup(api => api.AddFile( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <string>(), It.IsAny <DocumentLanguage>(), It.IsAny <ExtensionType>())).Throws <InvalidOperationException>(); var bucketMock = new Mock <IWriteableBucket>(); bucketMock.Setup(x => x.UploadFileEncrypted( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <byte[]>(), It.IsAny <Stream>())).ReturnsAsync(true); var writeObjectsController = new WriteObjectsController(optionsMock.Object, guardMock.Object, bucketMock.Object, queueMock.Object); var validRequestPayload = new UploadFileRequest { DocumentLanguage = DocumentLanguage.German, EncryptedKey = Convert.ToBase64String(ivAndKey1), Name = "MyFile.pdf", PlaintextKey = Convert.ToBase64String(ivAndKey2), File = new FormFile(stream, 0, payload.Length, "", "") }; var response = await writeObjectsController.UploadFile(validRequestPayload, IdGenerator.NewId(IdType.Directory), 0); Assert.IsType <BadRequestResult>(response); }
public async void UpdateMetadata_Throws() { var optionsMock = GetAppSettingsMock(); var queueMock = GetQueueMock(); var guardMock = new Mock <IGuardApi>(); guardMock.Setup(api => api.UpdateObjectMetadata( It.IsAny <string>(), It.IsAny <IMetadataUpdate>())) .Throws <InvalidOperationException>(); var writeObjectsController = new WriteObjectsController(optionsMock.Object, guardMock.Object, null, queueMock.Object); var request = new UpdateObjectMetaDataRequest() { ParentDirectoryIds = new[] { IdGenerator.NewId(IdType.Directory) }, ObjectName = "NewDirectoryName" }; var response = await writeObjectsController.UpdateObjectMetadata(request, IdGenerator.NewId(IdType.Directory), 0); Assert.IsType <BadRequestResult>(response); }