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 Task <IActionResult> UpdateObjectMetadata( [FromBody] UpdateObjectMetaDataRequest updatedMetadata, [FromRoute] string objectId, [FromQuery(Name = "revisionNr")] uint?revisionNumber) { #region - Input data validation - if (!IdGenerator.TypeFromId(objectId, out var typOfId) || (typOfId != IdType.Directory && typOfId != IdType.File)) { return(BadRequest()); } if (string.IsNullOrWhiteSpace(updatedMetadata.ObjectName) || updatedMetadata.ParentDirectoryIds == null || updatedMetadata.ParentDirectoryIds.Length == 0) { return(BadRequest()); } foreach (var updatedMetadataParentDirectoryId in updatedMetadata.ParentDirectoryIds) { // Check that all ids are well formed if (!IdGenerator.TypeFromId(updatedMetadataParentDirectoryId, out var typOfParentDirectoryId) || typOfParentDirectoryId != IdType.Directory) { return(BadRequest()); } } #endregion try { var successful = await guardApi.UpdateObjectMetadata(objectId, updatedMetadata); if (!successful) { return(BadRequest()); } return(Ok()); } catch (Exception e) { Console.WriteLine(e); return(BadRequest()); } }
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); }