feat(template-folder): delete folder blocked if non-empty
This commit is contained in:
@@ -186,4 +186,54 @@ public class TemplateFolderServiceTests
|
||||
Assert.True(result.IsFailure);
|
||||
Assert.Contains("cycle", result.Error, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DeleteFolder_Empty_ReturnsSuccess()
|
||||
{
|
||||
var f = new TemplateFolder("Empty") { Id = 1 };
|
||||
_repoMock.Setup(r => r.GetFolderByIdAsync(1, It.IsAny<CancellationToken>())).ReturnsAsync(f);
|
||||
_repoMock.Setup(r => r.GetAllFoldersAsync(It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(new List<TemplateFolder> { f });
|
||||
_repoMock.Setup(r => r.GetAllTemplatesAsync(It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(new List<Template>());
|
||||
|
||||
var result = await _sut.DeleteFolderAsync(1, "admin");
|
||||
|
||||
Assert.True(result.IsSuccess);
|
||||
_repoMock.Verify(r => r.DeleteFolderAsync(1, It.IsAny<CancellationToken>()), Times.Once);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DeleteFolder_HasChildFolders_ReturnsFailure_WithCounts()
|
||||
{
|
||||
var parent = new TemplateFolder("P") { Id = 1 };
|
||||
var child = new TemplateFolder("C") { Id = 2, ParentFolderId = 1 };
|
||||
_repoMock.Setup(r => r.GetFolderByIdAsync(1, It.IsAny<CancellationToken>())).ReturnsAsync(parent);
|
||||
_repoMock.Setup(r => r.GetAllFoldersAsync(It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(new List<TemplateFolder> { parent, child });
|
||||
_repoMock.Setup(r => r.GetAllTemplatesAsync(It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(new List<Template>());
|
||||
|
||||
var result = await _sut.DeleteFolderAsync(1, "admin");
|
||||
|
||||
Assert.True(result.IsFailure);
|
||||
Assert.Contains("1 subfolder", result.Error);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DeleteFolder_HasTemplates_ReturnsFailure_WithCounts()
|
||||
{
|
||||
var f = new TemplateFolder("P") { Id = 1 };
|
||||
var t = new Template("X") { Id = 5, FolderId = 1 };
|
||||
_repoMock.Setup(r => r.GetFolderByIdAsync(1, It.IsAny<CancellationToken>())).ReturnsAsync(f);
|
||||
_repoMock.Setup(r => r.GetAllFoldersAsync(It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(new List<TemplateFolder> { f });
|
||||
_repoMock.Setup(r => r.GetAllTemplatesAsync(It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(new List<Template> { t });
|
||||
|
||||
var result = await _sut.DeleteFolderAsync(1, "admin");
|
||||
|
||||
Assert.True(result.IsFailure);
|
||||
Assert.Contains("1 template", result.Error);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user