# encoding: UTF-8
require 'winrm/wsmv/command_output'
require 'winrm/wsmv/header'
describe WinRM::WSMV::CommandOutput do
context 'default session options' do
let(:cmd_out_opts) do
{
shell_id: 'F4A2622B-B842-4EB8-8A78-0225C8A993DF',
command_id: 'A2A2622B-B842-4EB8-8A78-0225C8A993DF'
}
end
subject { described_class.new(default_connection_opts, cmd_out_opts) }
let(:xml) { subject.build }
it 'creates a well formed message' do
expect(xml).to include('PT60S')
expect(xml).to include('TRUE')
expect(xml).to include('w:ResourceURI mustUnderstand="true">' \
'http://schemas.microsoft.com/wbem/wsman/1/windows/shell/cmd')
expect(xml).to include('stdout stderr')
end
end
context 'powershell' do
let(:cmd_out_opts) do
{
shell_id: 'F4A2622B-B842-4EB8-8A78-0225C8A993DF',
command_id: 'A2A2622B-B842-4EB8-8A78-0225C8A993DF',
shell_uri: WinRM::WSMV::Header::RESOURCE_URI_POWERSHELL,
out_streams: %w(stdout)
}
end
subject { described_class.new(default_connection_opts, cmd_out_opts) }
let(:xml) { subject.build }
it 'creates a well formed message' do
expect(xml).to include('PT60S')
expect(xml).to include('TRUE')
expect(xml).to include('w:ResourceURI mustUnderstand="true">' \
'http://schemas.microsoft.com/powershell/Microsoft.PowerShell')
expect(xml).to include('stdout')
end
end
end