mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-07-05 12:08:16 +08:00
Add Layout widget (#1041)
* Add width to panels * Add height to panels * Replace RenderContext with RenderOptions * Remove exclusivity from alternative buffer * Add Layout widget * Add Align widget
This commit is contained in:
155
test/Spectre.Console.Tests/Unit/Widgets/AlignTests.cs
Normal file
155
test/Spectre.Console.Tests/Unit/Widgets/AlignTests.cs
Normal file
@ -0,0 +1,155 @@
|
||||
using Spectre.Console.Extensions;
|
||||
|
||||
namespace Spectre.Console.Tests.Unit;
|
||||
|
||||
[UsesVerify]
|
||||
[ExpectationPath("Widgets/Align")]
|
||||
public sealed class AlignTests
|
||||
{
|
||||
[UsesVerify]
|
||||
public sealed class Left
|
||||
{
|
||||
[Fact]
|
||||
[Expectation("Left_Top")]
|
||||
public Task Should_Render_Panel_Left_Aligned_At_Top()
|
||||
{
|
||||
// Given
|
||||
var console = new TestConsole().Size(new Size(40, 15));
|
||||
var align = Align.Left(new Panel("Hello World!"), VerticalAlignment.Top).Height(15);
|
||||
|
||||
// When
|
||||
console.Write(align);
|
||||
|
||||
// Then
|
||||
return Verifier.Verify(console.Output);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[Expectation("Left_Middle")]
|
||||
public Task Should_Render_Panel_Left_Aligned_At_Middle()
|
||||
{
|
||||
// Given
|
||||
var console = new TestConsole().Size(new Size(40, 15));
|
||||
var align = Align.Left(new Panel("Hello World!"), VerticalAlignment.Middle).Height(15);
|
||||
|
||||
// When
|
||||
console.Write(align);
|
||||
|
||||
// Then
|
||||
return Verifier.Verify(console.Output);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[Expectation("Left_Bottom")]
|
||||
public Task Should_Render_Panel_Left_Aligned_At_Bottom()
|
||||
{
|
||||
// Given
|
||||
var console = new TestConsole().Size(new Size(40, 15));
|
||||
var align = Align.Left(new Panel("Hello World!"), VerticalAlignment.Bottom).Height(15);
|
||||
|
||||
// When
|
||||
console.Write(align);
|
||||
|
||||
// Then
|
||||
return Verifier.Verify(console.Output);
|
||||
}
|
||||
}
|
||||
|
||||
[UsesVerify]
|
||||
public sealed class Center
|
||||
{
|
||||
[Fact]
|
||||
[Expectation("Center_Top")]
|
||||
public Task Should_Render_Panel_Center_Aligned_At_Top()
|
||||
{
|
||||
// Given
|
||||
var console = new TestConsole().Size(new Size(40, 15));
|
||||
var align = Align.Center(new Panel("Hello World!"), VerticalAlignment.Top).Height(15);
|
||||
|
||||
// When
|
||||
console.Write(align);
|
||||
|
||||
// Then
|
||||
return Verifier.Verify(console.Output);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[Expectation("Center_Middle")]
|
||||
public Task Should_Render_Panel_Center_Aligned_At_Middle()
|
||||
{
|
||||
// Given
|
||||
var console = new TestConsole().Size(new Size(40, 15));
|
||||
var align = Align.Center(new Panel("Hello World!"), VerticalAlignment.Middle).Height(15);
|
||||
|
||||
// When
|
||||
console.Write(align);
|
||||
|
||||
// Then
|
||||
return Verifier.Verify(console.Output);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[Expectation("Center_Bottom")]
|
||||
public Task Should_Render_Panel_Center_Aligned_At_Bottom()
|
||||
{
|
||||
// Given
|
||||
var console = new TestConsole().Size(new Size(40, 15));
|
||||
var align = Align.Center(new Panel("Hello World!"), VerticalAlignment.Bottom).Height(15);
|
||||
|
||||
// When
|
||||
console.Write(align);
|
||||
|
||||
// Then
|
||||
return Verifier.Verify(console.Output);
|
||||
}
|
||||
}
|
||||
|
||||
[UsesVerify]
|
||||
public sealed class Right
|
||||
{
|
||||
[Fact]
|
||||
[Expectation("Right_Top")]
|
||||
public Task Should_Render_Panel_Right_Aligned_At_Top()
|
||||
{
|
||||
// Given
|
||||
var console = new TestConsole().Size(new Size(40, 15));
|
||||
var align = Align.Right(new Panel("Hello World!"), VerticalAlignment.Top).Height(15);
|
||||
|
||||
// When
|
||||
console.Write(align);
|
||||
|
||||
// Then
|
||||
return Verifier.Verify(console.Output);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[Expectation("Right_Middle")]
|
||||
public Task Should_Render_Panel_Right_Aligned_At_Middle()
|
||||
{
|
||||
// Given
|
||||
var console = new TestConsole().Size(new Size(40, 15));
|
||||
var align = Align.Right(new Panel("Hello World!"), VerticalAlignment.Middle).Height(15);
|
||||
|
||||
// When
|
||||
console.Write(align);
|
||||
|
||||
// Then
|
||||
return Verifier.Verify(console.Output);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
[Expectation("Right_Bottom")]
|
||||
public Task Should_Render_Panel_Right_Aligned_At_Bottom()
|
||||
{
|
||||
// Given
|
||||
var console = new TestConsole().Size(new Size(40, 15));
|
||||
var align = Align.Right(new Panel("Hello World!"), VerticalAlignment.Bottom).Height(15);
|
||||
|
||||
// When
|
||||
console.Write(align);
|
||||
|
||||
// Then
|
||||
return Verifier.Verify(console.Output);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user