mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-11-04 23:07:23 +00:00
Added PowerPoint templates to the Slide Assistant (#1055)
Co-authored-by: Thorsten Sommer <SommerEngineering@users.noreply.github.com>
This commit is contained in:
1 parent
8c5cfa78b6
commit
6eb23ebbcb
136 files changed
+16535
-522
No files matched your search
@@ -0,0 +1,54 @@
|
||||
using AIStudio.Tools.PowerPoint;
|
||||
|
||||
namespace AIStudio.Tests.Tools.PowerPoint;
|
||||
|
||||
/// <summary>
|
||||
/// Checks how the choices for some slides of a template, e.g., the preselection of an organization, become a use for each slide.
|
||||
/// </summary>
|
||||
[TestFixture]
|
||||
public sealed class TemplateSlideUsesTests
|
||||
{
|
||||
[Test]
|
||||
public void EverySlideGetsAUseInTheOrderOfTheTemplate()
|
||||
{
|
||||
var template = TemplateWithAContentSlideAndAClosingSlide();
|
||||
var uses = new Dictionary<int, TemplateSlideUse> { [2] = TemplateSlideUse.KEEP }.ToTemplateSlideUses(template);
|
||||
|
||||
Assert.That(uses, Is.EqualTo(new[] { TemplateSlideUse.OMIT, TemplateSlideUse.KEEP }), "A slide without a choice is left out, as by default.");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ASlideWithoutRoomForContentIsKeptInsteadOfEdited()
|
||||
{
|
||||
var template = TemplateWithAContentSlideAndAClosingSlide();
|
||||
var uses = new Dictionary<int, TemplateSlideUse> { [1] = TemplateSlideUse.EDIT, [2] = TemplateSlideUse.EDIT }.ToTemplateSlideUses(template);
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(template.Slides.Select(slide => slide.IsEditable), Is.EqualTo(new[] { true, false }), "The test needs one slide which the model can edit and one which it cannot.");
|
||||
Assert.That(uses, Is.EqualTo(new[] { TemplateSlideUse.EDIT, TemplateSlideUse.KEEP }), "An organization may lock the choice, so it must not block the form.");
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void AChoiceForASlideTheTemplateLacksIsPassedOver()
|
||||
{
|
||||
var template = TemplateWithAContentSlideAndAClosingSlide();
|
||||
var uses = new Dictionary<int, TemplateSlideUse> { [0] = TemplateSlideUse.KEEP, [3] = TemplateSlideUse.EDIT }.ToTemplateSlideUses(template);
|
||||
|
||||
Assert.That(uses, Is.EqualTo(new[] { TemplateSlideUse.OMIT, TemplateSlideUse.OMIT }));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A template whose first slide uses a layout with room for content, and whose second slide uses one with a title only.
|
||||
/// </summary>
|
||||
private static PresentationTemplate TemplateWithAContentSlideAndAClosingSlide()
|
||||
{
|
||||
using var file = TestTemplate.Create(
|
||||
new TestTemplateOptions(Slides: [new TestSlide(0, (TestPlaceholder.Title(), "Mission")), new TestSlide(1, (TestPlaceholder.Title(), "Thank you"))]),
|
||||
new TestLayout("Content", TestPlaceholder.Title(), TestPlaceholder.Text(1, TestTemplate.MASTER_BODY_BOUNDS)),
|
||||
new TestLayout("Title Only", TestPlaceholder.Title()));
|
||||
|
||||
return PresentationTemplate.Read(file);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user