Patrik Svensson c3ec6a7363
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
2022-11-15 10:12:17 +01:00

156 lines
4.3 KiB
C#

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);
}
}
}