Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }