dotnet-installer/test/dotnet-test.UnitTests/GivenAUnknownMessageHandler.cs
Piotr Puszkiewicz 08e9bc903e CLI Testing via msbuild (#3779)
* Rebase

* Remove Multi-Project Validator

* Remove projectmodelserver tests

* Enable test package creation

* Incremental test restore

* WiP

* Enable Test Asset Project restore

* Build Test Assets & Restore Test Projects

* Build Test projects

* Enable Test Execution

also moves Test Targets to a well-known CLI Version [Stage 2]

* Pass throuh existing telemetry profile

* 2-space tabs

* Revert TestTargets.cs

* WiP PR feedback

* Refactoring

* Fix naming of RestoreTestAssetPackages

* DotNetTest task

* Fix merge issue

* ExecuteWithCapturedOutput

MSBuild considers StdErr output to be failures. This causes output of any test command which is expected to produce an error to be swallowed in the test.

* Workaround for always-on tracing functionality in dotnet-test

* Fix Path Separator Windows/Unix

* Seperate package build from pack

* Windows Pathing issues

* PR Feedback

* Workaround for msbuild #773

https://github.com/Microsoft/msbuild/issues/773
2016-07-11 12:46:27 -07:00

39 lines
1.4 KiB
C#

// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System;
using Microsoft.DotNet.Tools.Test;
using Microsoft.Extensions.Testing.Abstractions;
using Moq;
using Xunit;
using FluentAssertions;
namespace Microsoft.Dotnet.Tools.Test.Tests
{
public class GivenAnUnknownMessageHandler
{
[Fact]
public void It_throws_InvalidOperationException_and_sends_an_error_when_the_message_is_not_handled()
{
TestHostTracing.ClearListeners();
const string expectedError = "No handler for message 'Test Message' when at state 'InitialState'";
var dotnetTestMock = new Mock<IDotnetTest>();
dotnetTestMock.Setup(d => d.State).Returns(DotnetTestState.InitialState);
var reportingChannel = new Mock<IReportingChannel>();
reportingChannel.Setup(r => r.SendError(expectedError)).Verifiable();
var unknownMessageHandler = new UnknownMessageHandler(reportingChannel.Object);
Action action = () => unknownMessageHandler.HandleMessage(
dotnetTestMock.Object,
new Message { MessageType = "Test Message" });
action.ShouldThrow<InvalidOperationException>().WithMessage(expectedError);
reportingChannel.Verify();
}
}
}