public DownloadResourceResult(DownloadResourceResultStatus status) { if (status == DownloadResourceResultStatus.Available) { throw new ArgumentException("A stream should be provided when the result is available."); } Status = status; }
public void Constructor_Status_InitializesProperties(DownloadResourceResultStatus status) { using (var result = new DownloadResourceResult(status)) { Assert.Null(result.PackageReader); Assert.Null(result.PackageSource); Assert.Null(result.PackageStream); Assert.Equal(status, result.Status); } }
public void Constructor_Status_ThrowsForInvalidStatus(DownloadResourceResultStatus status) { var exception = Assert.Throws <ArgumentException>(() => new DownloadResourceResult(status)); var expectedMessage = $"A stream should be provided when the result is available.{Environment.NewLine}" + "Parameter name: status"; Assert.Equal("status", exception.ParamName); Assert.Equal(expectedMessage, exception.Message); }
public void Constructor_Status_ThrowsForInvalidStatus(DownloadResourceResultStatus status) { var exception = Assert.Throws <ArgumentException>(() => new DownloadResourceResult(status)); var expectedMessage = "A stream should be provided when the result is available."; Assert.Equal("status", exception.ParamName); Assert.Contains(expectedMessage, exception.Message); //Remove the expected message from the exception message, the rest part should have param info. //Background of this change: System.ArgumentException(string message, string paramName) used to generate two lines of message before, but changed to generate one line //in PR: https://github.com/dotnet/coreclr/pull/25185/files#diff-0365d5690376ef849bf908dfc225b8e8 var paramPart = exception.Message.Substring(exception.Message.IndexOf(expectedMessage) + expectedMessage.Length); Assert.Contains("status", paramPart); }