$here = (Split-Path -Parent $MyInvocation.MyCommand.Path) . "$here.ps1" $loremIpsum = @" Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin commodo pellentesque lorem, a vulputate nisi elementum nec. Duis a erat est. Vestibulum aliquam lorem eu tempor sodales. Phasellus ac tellus in mauris posuere venenatis quis et massa. Aenean eu enim nisi. Donec a diam dictum, posuere odio vel, sodales tortor. Vestibulum interdum ultricies tortor eget placerat. Morbi mollis eu quam et laoreet. Curabitur sed velit nec diam hendrerit facilisis. Cras ornare velit vel ultrices lacinia. Vivamus mollis vehicula pharetra. Nam ut libero purus. Nunc cursus, nunc sed pharetra sagittis, quam nibh mattis nisl, quis auctor risus elit ut elit. Aliquam posuere nisi eu libero condimentum egestas at id mi. Integer vel eros ac magna dapibus viverra. Ut facilisis sagittis sem, eget pretium libero semper ac. Nulla vel turpis elit. Etiam non tempus tortor, et imperdiet arcu. Nullam iaculis sapien turpis, ut congue diam tincidunt et. Proin mollis dui posuere felis facilisis, vel finibus eros pellentesque. Nulla ullamcorper augue at nunc bibendum mattis. Nam nisi risus, tempus id tellus ac, aliquam aliquam nulla. Suspendisse id neque quis lacus aliquam viverra. Sed pulvinar, nibh vitae congue malesuada, felis augue condimentum augue, vitae malesuada risus leo molestie elit. Cras tempus molestie dictum. Nunc non elit et velit aliquet eleifend a at dolor. Donec vel nunc ligula. Duis ac diam ipsum. Donec pellentesque purus at neque tempus, ut aliquet nisl hendrerit. "@ Describe "171 characters" { # The use of the here-block vs the array join seems to cause the need for a triple return in the middle $lines_171 = @" Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin commodo pellentesque lorem, a vulputate nisi elementum nec. Duis a erat est. Vestibulum aliquam lorem eu tempor sodales. Phasellus ac tellus in mauris posuere venenatis quis et massa. Aenean eu enim nisi. Donec a diam dictum, posuere odio vel, sodales tortor. Vestibulum interdum ultricies tortor eget placerat. Morbi mollis eu quam et laoreet. Curabitur sed velit nec diam hendrerit facilisis. Cras ornare velit vel ultrices lacinia. Vivamus mollis vehicula pharetra. Nam ut libero purus. Nunc cursus, nunc sed pharetra sagittis, quam nibh mattis nisl, quis auctor risus elit ut elit. Aliquam posuere nisi eu libero condimentum egestas at id mi. Integer vel eros ac magna dapibus viverra. Ut facilisis sagittis sem, eget pretium libero semper ac. Nulla vel turpis elit. Etiam non tempus tortor, et imperdiet arcu. Nullam iaculis sapien turpis, ut congue diam tincidunt et. Proin mollis dui posuere felis facilisis, vel finibus eros pellentesque. Nulla ullamcorper augue at nunc bibendum mattis. Nam nisi risus, tempus id tellus ac, aliquam aliquam nulla. Suspendisse id neque quis lacus aliquam viverra. Sed pulvinar, nibh vitae congue malesuada, felis augue condimentum augue, vitae malesuada risus leo molestie elit. Cras tempus molestie dictum. Nunc non elit et velit aliquet eleifend a at dolor. Donec vel nunc ligula. Duis ac diam ipsum. Donec pellentesque purus at neque tempus, ut aliquet nisl hendrerit. "@ Mock -CommandName Get-ConsoleDisplayWidth -MockWith { return 171 } Context "Wraps to 171 characters" { $result = Format-TextWrapToDisplay -InputText $loremIpsum It "matches" { ($result -join [System.Environment]::NewLine) | Should -Be $lines_171 } } } Describe "95 characters" { # The use of the here-block vs the array join seems to cause the need for a triple return in the middle $lines_95 = @" Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin commodo pellentesque lorem, a vulputate nisi elementum nec. Duis a erat est. Vestibulum aliquam lorem eu tempor sodales. Phasellus ac tellus in mauris posuere venenatis quis et massa. Aenean eu enim nisi. Donec a diam dictum, posuere odio vel, sodales tortor. Vestibulum interdum ultricies tortor eget placerat. Morbi mollis eu quam et laoreet. Curabitur sed velit nec diam hendrerit facilisis. Cras ornare velit vel ultrices lacinia. Vivamus mollis vehicula pharetra. Nam ut libero purus. Nunc cursus, nunc sed pharetra sagittis, quam nibh mattis nisl, quis auctor risus elit ut elit. Aliquam posuere nisi eu libero condimentum egestas at id mi. Integer vel eros ac magna dapibus viverra. Ut facilisis sagittis sem, eget pretium libero semper ac. Nulla vel turpis elit. Etiam non tempus tortor, et imperdiet arcu. Nullam iaculis sapien turpis, ut congue diam tincidunt et. Proin mollis dui posuere felis facilisis, vel finibus eros pellentesque. Nulla ullamcorper augue at nunc bibendum mattis. Nam nisi risus, tempus id tellus ac, aliquam aliquam nulla. Suspendisse id neque quis lacus aliquam viverra. Sed pulvinar, nibh vitae congue malesuada, felis augue condimentum augue, vitae malesuada risus leo molestie elit. Cras tempus molestie dictum. Nunc non elit et velit aliquet eleifend a at dolor. Donec vel nunc ligula. Duis ac diam ipsum. Donec pellentesque purus at neque tempus, ut aliquet nisl hendrerit. "@ Mock -CommandName Get-ConsoleDisplayWidth -MockWith { return 95 } Context "Wraps to 95 characters" { $result = Format-TextWrapToDisplay -InputText $loremIpsum It "matches" { ($result -join [System.Environment]::NewLine) | Should -Be $lines_95 } } }