diff --git a/global.json b/global.json
index 1dc269111cae..2b0f56d196c0 100644
--- a/global.json
+++ b/global.json
@@ -26,6 +26,6 @@
"Microsoft.Build.NoTargets": "3.7.134",
"Microsoft.Build.Traversal": "4.1.82",
"Microsoft.WixToolset.Sdk": "6.0.3-dotnet.4",
- "MSTest.Sdk": "4.3.0-preview.26307.5"
+ "MSTest.Sdk": "4.3.0-preview.26311.10"
}
}
diff --git a/sdk.slnx b/sdk.slnx
index df9722223799..07d879bec7b9 100644
--- a/sdk.slnx
+++ b/sdk.slnx
@@ -367,6 +367,7 @@
+
diff --git a/src/Dotnet.Watch/Watch.Aspire/Properties/AssemblyInfo.cs b/src/Dotnet.Watch/Watch.Aspire/Properties/AssemblyInfo.cs
index 74a1e15ab7a8..3d48d3fc6f5e 100644
--- a/src/Dotnet.Watch/Watch.Aspire/Properties/AssemblyInfo.cs
+++ b/src/Dotnet.Watch/Watch.Aspire/Properties/AssemblyInfo.cs
@@ -4,4 +4,5 @@
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("Microsoft.DotNet.HotReload.Watch.Aspire.Tests, PublicKey = 0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("dotnet-watch.Tests, PublicKey = 0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
diff --git a/src/Dotnet.Watch/dotnet-watch.slnf b/src/Dotnet.Watch/dotnet-watch.slnf
index 48e156d1458e..b5600195a12e 100644
--- a/src/Dotnet.Watch/dotnet-watch.slnf
+++ b/src/Dotnet.Watch/dotnet-watch.slnf
@@ -33,6 +33,7 @@
"test\\dotnet-watch-test-browser\\dotnet-watch-test-browser.csproj",
"test\\Microsoft.DotNet.HotReload.Test.Utilities\\Microsoft.DotNet.HotReload.Test.Utilities.csproj",
"test\\Microsoft.DotNet.HotReload.Watch.Aspire.Tests\\Microsoft.DotNet.HotReload.Watch.Aspire.Tests.csproj",
+ "test\\Microsoft.DotNet.Test.MSTest.Utilities\\Microsoft.DotNet.Test.MSTest.Utilities.csproj",
"test\\Microsoft.Extensions.DotNetDeltaApplier.Tests\\Microsoft.Extensions.DotNetDeltaApplier.Tests.csproj",
"test\\dotnet-watch.Tests\\dotnet-watch.Tests.csproj"
]
diff --git a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/BlazorWasmHotReloadMiddlewareTest.cs b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/BlazorWasmHotReloadMiddlewareTest.cs
index efdcf548c524..f72bc30a5454 100644
--- a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/BlazorWasmHotReloadMiddlewareTest.cs
+++ b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/BlazorWasmHotReloadMiddlewareTest.cs
@@ -1,4 +1,4 @@
-// Licensed to the .NET Foundation under one or more agreements.
+// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Text.Json;
@@ -7,6 +7,7 @@
namespace Microsoft.AspNetCore.Watch.BrowserRefresh
{
+ [TestClass]
public class BlazorWasmHotReloadMiddlewareTest
{
private readonly ILogger _logger;
@@ -19,7 +20,7 @@ public BlazorWasmHotReloadMiddlewareTest()
_middleware = new BlazorWasmHotReloadMiddleware(context => throw new TimeZoneNotFoundException(), _logger);
}
- [Fact]
+ [TestMethod]
public async Task DeltasAreSavedOnPost()
{
var context = new DefaultHttpContext();
@@ -55,7 +56,7 @@ public async Task DeltasAreSavedOnPost()
AssertUpdates([update], _middleware.Updates);
}
- [Fact]
+ [TestMethod]
public async Task DuplicateDeltasOnPostAreIgnored()
{
var updates = new BlazorWasmHotReloadMiddleware.Update[]
@@ -106,7 +107,7 @@ public async Task DuplicateDeltasOnPostAreIgnored()
AssertUpdates(updates, _middleware.Updates);
}
- [Fact]
+ [TestMethod]
public async Task MultipleDeltaPayloadsCanBeAccepted()
{
var update = new BlazorWasmHotReloadMiddleware.Update()
@@ -178,7 +179,7 @@ public async Task MultipleDeltaPayloadsCanBeAccepted()
AssertUpdates([update, newUpdate], _middleware.Updates);
}
- [Fact]
+ [TestMethod]
public async Task Get_Returns204_IfNoDeltasPresent()
{
var context = new DefaultHttpContext();
@@ -186,10 +187,10 @@ public async Task Get_Returns204_IfNoDeltasPresent()
await _middleware.InvokeAsync(context);
- Assert.Equal(204, context.Response.StatusCode);
+ Assert.AreEqual(204, context.Response.StatusCode);
}
- [Fact]
+ [TestMethod]
public async Task GetReturnsDeltas()
{
var context = new DefaultHttpContext();
@@ -226,30 +227,30 @@ public async Task GetReturnsDeltas()
await _middleware.InvokeAsync(context);
- Assert.Equal(200, context.Response.StatusCode);
- Assert.Equal(
+ Assert.AreEqual(200, context.Response.StatusCode);
+ Assert.AreSequenceEqual(
JsonSerializer.SerializeToUtf8Bytes(updates, new JsonSerializerOptions(JsonSerializerDefaults.Web)),
stream.ToArray());
}
private static void AssertUpdates(IReadOnlyList expected, IReadOnlyList actual)
{
- Assert.Equal(expected.Count, actual.Count);
+ Assert.AreEqual(expected.Count, actual.Count);
for (var u = 0; u < expected.Count; u++)
{
var expectedUpdate = expected[u];
var actualUpdate = actual[u];
- Assert.Equal(expectedUpdate.Id, actualUpdate.Id);
- Assert.Equal(expectedUpdate.Deltas.Length, expectedUpdate.Deltas.Length);
+ Assert.AreEqual(expectedUpdate.Id, actualUpdate.Id);
+ Assert.AreEqual(expectedUpdate.Deltas.Length, expectedUpdate.Deltas.Length);
for (var i = 0; i < expectedUpdate.Deltas.Length; i++)
{
- Assert.Equal(expectedUpdate.Deltas[i].ILDelta, actualUpdate.Deltas[i].ILDelta);
- Assert.Equal(expectedUpdate.Deltas[i].PdbDelta, actualUpdate.Deltas[i].PdbDelta);
- Assert.Equal(expectedUpdate.Deltas[i].MetadataDelta, actualUpdate.Deltas[i].MetadataDelta);
- Assert.Equal(expectedUpdate.Deltas[i].ModuleId, actualUpdate.Deltas[i].ModuleId);
- Assert.Equal(expectedUpdate.Deltas[i].UpdatedTypes, actualUpdate.Deltas[i].UpdatedTypes);
+ Assert.AreEqual(expectedUpdate.Deltas[i].ILDelta, actualUpdate.Deltas[i].ILDelta);
+ Assert.AreEqual(expectedUpdate.Deltas[i].PdbDelta, actualUpdate.Deltas[i].PdbDelta);
+ Assert.AreEqual(expectedUpdate.Deltas[i].MetadataDelta, actualUpdate.Deltas[i].MetadataDelta);
+ Assert.AreEqual(expectedUpdate.Deltas[i].ModuleId, actualUpdate.Deltas[i].ModuleId);
+ Assert.AreSequenceEqual(expectedUpdate.Deltas[i].UpdatedTypes, actualUpdate.Deltas[i].UpdatedTypes);
}
}
}
diff --git a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/BrowserRefreshMiddlewareTest.cs b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/BrowserRefreshMiddlewareTest.cs
index d04585a7113d..55416d986134 100644
--- a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/BrowserRefreshMiddlewareTest.cs
+++ b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/BrowserRefreshMiddlewareTest.cs
@@ -10,12 +10,13 @@
namespace Microsoft.AspNetCore.Watch.BrowserRefresh
{
+ [TestClass]
public class BrowserRefreshMiddlewareTest
{
- [Theory]
- [InlineData("DELETE")]
- [InlineData("head")]
- [InlineData("Put")]
+ [TestMethod]
+ [DataRow("DELETE")]
+ [DataRow("head")]
+ [DataRow("Put")]
public void IsBrowserDocumentRequest_ReturnsFalse_ForNonGetOrPostRequests(string method)
{
// Arrange
@@ -35,10 +36,10 @@ public void IsBrowserDocumentRequest_ReturnsFalse_ForNonGetOrPostRequests(string
var result = BrowserRefreshMiddleware.IsBrowserDocumentRequest(context);
// Assert
- Assert.False(result);
+ Assert.IsFalse(result);
}
- [Fact]
+ [TestMethod]
public void IsBrowserDocumentRequest_ReturnsFalse_IsRequestDoesNotAcceptHtml()
{
// Arrange
@@ -58,10 +59,10 @@ public void IsBrowserDocumentRequest_ReturnsFalse_IsRequestDoesNotAcceptHtml()
var result = BrowserRefreshMiddleware.IsBrowserDocumentRequest(context);
// Assert
- Assert.False(result);
+ Assert.IsFalse(result);
}
- [Fact]
+ [TestMethod]
public void IsBrowserDocumentRequest_ReturnsTrue_ForGetRequestsThatAcceptHtml()
{
// Arrange
@@ -81,10 +82,10 @@ public void IsBrowserDocumentRequest_ReturnsTrue_ForGetRequestsThatAcceptHtml()
var result = BrowserRefreshMiddleware.IsBrowserDocumentRequest(context);
// Assert
- Assert.True(result);
+ Assert.IsTrue(result);
}
- [Fact]
+ [TestMethod]
public void IsBrowserDocumentRequest_ReturnsTrue_ForRequestsThatAcceptAnyHtml()
{
// Arrange
@@ -104,10 +105,10 @@ public void IsBrowserDocumentRequest_ReturnsTrue_ForRequestsThatAcceptAnyHtml()
var result = BrowserRefreshMiddleware.IsBrowserDocumentRequest(context);
// Assert
- Assert.True(result);
+ Assert.IsTrue(result);
}
- [Fact]
+ [TestMethod]
public void IsBrowserDocumentRequest_ReturnsTrue_IfRequestDoesNotHaveFetchMetadataRequestHeader()
{
// Arrange
@@ -127,10 +128,10 @@ public void IsBrowserDocumentRequest_ReturnsTrue_IfRequestDoesNotHaveFetchMetada
var result = BrowserRefreshMiddleware.IsBrowserDocumentRequest(context);
// Assert
- Assert.True(result);
+ Assert.IsTrue(result);
}
- [Fact]
+ [TestMethod]
public void IsBrowserDocumentRequest_ReturnsTrue_IfRequestFetchMetadataRequestHeaderIsEmpty()
{
// Arrange
@@ -151,12 +152,12 @@ public void IsBrowserDocumentRequest_ReturnsTrue_IfRequestFetchMetadataRequestHe
var result = BrowserRefreshMiddleware.IsBrowserDocumentRequest(context);
// Assert
- Assert.True(result);
+ Assert.IsTrue(result);
}
- [Theory]
- [InlineData("document")]
- [InlineData("Document")]
+ [TestMethod]
+ [DataRow("document")]
+ [DataRow("Document")]
public void IsBrowserDocumentRequest_ReturnsTrue_IfRequestFetchMetadataRequestHeaderIsDocument(string headerValue)
{
// Arrange
@@ -177,12 +178,12 @@ public void IsBrowserDocumentRequest_ReturnsTrue_IfRequestFetchMetadataRequestHe
var result = BrowserRefreshMiddleware.IsBrowserDocumentRequest(context);
// Assert
- Assert.True(result);
+ Assert.IsTrue(result);
}
- [Theory]
- [InlineData("frame")]
- [InlineData("iframe")]
+ [TestMethod]
+ [DataRow("frame")]
+ [DataRow("iframe")]
public void IsBrowserDocumentRequest_ReturnsTrue_IfRequestFetchMetadataRequestHeaderIsFrame(string headerValue)
{
// Arrange
@@ -203,11 +204,11 @@ public void IsBrowserDocumentRequest_ReturnsTrue_IfRequestFetchMetadataRequestHe
var result = BrowserRefreshMiddleware.IsBrowserDocumentRequest(context);
// Assert
- Assert.True(result);
+ Assert.IsTrue(result);
}
- [Theory]
- [InlineData("serviceworker")]
+ [TestMethod]
+ [DataRow("serviceworker")]
public void IsBrowserDocumentRequest_ReturnsFalse_IfRequestFetchMetadataRequestHeaderIsNotDocument(string headerValue)
{
// Arrange
@@ -228,14 +229,14 @@ public void IsBrowserDocumentRequest_ReturnsFalse_IfRequestFetchMetadataRequestH
var result = BrowserRefreshMiddleware.IsBrowserDocumentRequest(context);
// Assert
- Assert.False(result);
+ Assert.IsFalse(result);
}
- [Theory]
- [InlineData("DELETE")]
- [InlineData("POST")]
- [InlineData("head")]
- [InlineData("Put")]
+ [TestMethod]
+ [DataRow("DELETE")]
+ [DataRow("POST")]
+ [DataRow("head")]
+ [DataRow("Put")]
public void IsWebassemblyBootRequest_ReturnsFalse_ForNonGetRequests(string method)
{
// Arrange
@@ -256,10 +257,10 @@ public void IsWebassemblyBootRequest_ReturnsFalse_ForNonGetRequests(string metho
var result = BrowserRefreshMiddleware.IsWebAssemblyBootRequest(context);
// Assert
- Assert.False(result);
+ Assert.IsFalse(result);
}
- [Fact]
+ [TestMethod]
public void IsWebassemblyBootRequest_ReturnsFalse_IfRequestDoesNotAcceptJson()
{
// Arrange
@@ -280,10 +281,10 @@ public void IsWebassemblyBootRequest_ReturnsFalse_IfRequestDoesNotAcceptJson()
var result = BrowserRefreshMiddleware.IsWebAssemblyBootRequest(context);
// Assert
- Assert.False(result);
+ Assert.IsFalse(result);
}
- [Fact]
+ [TestMethod]
public void IsWebassemblyBootRequest_ReturnsTrue_ForGetRequestsThatAcceptJson()
{
// Arrange
@@ -304,10 +305,10 @@ public void IsWebassemblyBootRequest_ReturnsTrue_ForGetRequestsThatAcceptJson()
var result = BrowserRefreshMiddleware.IsWebAssemblyBootRequest(context);
// Assert
- Assert.True(result);
+ Assert.IsTrue(result);
}
- [Fact]
+ [TestMethod]
public void IsWebassemblyBootRequest_ReturnsTrue_ForGetRequestsThatAcceptAnyContentType()
{
// Arrange
@@ -328,12 +329,12 @@ public void IsWebassemblyBootRequest_ReturnsTrue_ForGetRequestsThatAcceptAnyCont
var result = BrowserRefreshMiddleware.IsWebAssemblyBootRequest(context);
// Assert
- Assert.True(result);
+ Assert.IsTrue(result);
}
- [Theory]
- [InlineData("/_framework/blazor.boot.json")]
- [InlineData("/Blazor.boot.json")]
+ [TestMethod]
+ [DataRow("/_framework/blazor.boot.json")]
+ [DataRow("/Blazor.boot.json")]
public void IsWebassemblyBootRequest_ReturnsTrue_ForFileNameRequestsToBlazorBootJson(string path)
{
// Arrange
@@ -354,13 +355,13 @@ public void IsWebassemblyBootRequest_ReturnsTrue_ForFileNameRequestsToBlazorBoot
var result = BrowserRefreshMiddleware.IsWebAssemblyBootRequest(context);
// Assert
- Assert.True(result);
+ Assert.IsTrue(result);
}
- [Theory]
- [InlineData("/_framework/other.txt")]
- [InlineData("/other.txt")]
- [InlineData("/Blazor.boot.json/other.txt")]
+ [TestMethod]
+ [DataRow("/_framework/other.txt")]
+ [DataRow("/other.txt")]
+ [DataRow("/Blazor.boot.json/other.txt")]
public void IsWebassemblyBootRequest_ReturnsFalse_ForRequestsToOtherPathsThanBlazorBootJson(string path)
{
// Arrange
@@ -381,10 +382,10 @@ public void IsWebassemblyBootRequest_ReturnsFalse_ForRequestsToOtherPathsThanBla
var result = BrowserRefreshMiddleware.IsWebAssemblyBootRequest(context);
// Assert
- Assert.False(result);
+ Assert.IsFalse(result);
}
- [Fact]
+ [TestMethod]
public void IsWebassemblyBootRequest_ReturnsTrue_IfRequestDoesNotHaveFetchMetadataRequestHeader()
{
// Arrange
@@ -405,10 +406,10 @@ public void IsWebassemblyBootRequest_ReturnsTrue_IfRequestDoesNotHaveFetchMetada
var result = BrowserRefreshMiddleware.IsWebAssemblyBootRequest(context);
// Assert
- Assert.True(result);
+ Assert.IsTrue(result);
}
- [Fact]
+ [TestMethod]
public void IsWebassemblyBootRequest_ReturnsTrue_IfRequestFetchMetadataRequestHeaderIsEmpty()
{
// Arrange
@@ -430,12 +431,12 @@ public void IsWebassemblyBootRequest_ReturnsTrue_IfRequestFetchMetadataRequestHe
var result = BrowserRefreshMiddleware.IsWebAssemblyBootRequest(context);
// Assert
- Assert.True(result);
+ Assert.IsTrue(result);
}
- [Theory]
- [InlineData("empty")]
- [InlineData("Empty")]
+ [TestMethod]
+ [DataRow("empty")]
+ [DataRow("Empty")]
public void IsWebassemblyBootRequest_ReturnsTrue_IfRequestFetchMetadataRequestHeaderIsEmptyValue(string headerValue)
{
// Arrange
@@ -457,14 +458,14 @@ public void IsWebassemblyBootRequest_ReturnsTrue_IfRequestFetchMetadataRequestHe
var result = BrowserRefreshMiddleware.IsWebAssemblyBootRequest(context);
// Assert
- Assert.True(result);
+ Assert.IsTrue(result);
}
- [Theory]
- [InlineData("frame")]
- [InlineData("iframe")]
- [InlineData("serviceworker")]
- [InlineData("document")]
+ [TestMethod]
+ [DataRow("frame")]
+ [DataRow("iframe")]
+ [DataRow("serviceworker")]
+ [DataRow("document")]
public void IsWebassemblyBootRequest_ReturnsFalse_IfRequestFetchMetadataRequestHeaderIsEmptyValue(string headerValue)
{
// Arrange
@@ -486,10 +487,10 @@ public void IsWebassemblyBootRequest_ReturnsFalse_IfRequestFetchMetadataRequestH
var result = BrowserRefreshMiddleware.IsWebAssemblyBootRequest(context);
// Assert
- Assert.False(result);
+ Assert.IsFalse(result);
}
- [Fact]
+ [TestMethod]
public async Task InvokeAsync_AttachesHeadersToResponse()
{
var stream = new MemoryStream();
@@ -528,11 +529,11 @@ public async Task InvokeAsync_AttachesHeadersToResponse()
await middleware.InvokeAsync(context);
// Assert
- Assert.True(context.Response.Headers.ContainsKey("DOTNET-MODIFIABLE-ASSEMBLIES"));
- Assert.True(context.Response.Headers.ContainsKey("ASPNETCORE-BROWSER-TOOLS"));
+ Assert.IsTrue(context.Response.Headers.ContainsKey("DOTNET-MODIFIABLE-ASSEMBLIES"));
+ Assert.IsTrue(context.Response.Headers.ContainsKey("ASPNETCORE-BROWSER-TOOLS"));
}
- [Fact]
+ [TestMethod]
public async Task InvokeAsync_DoesNotAttachHeaders_WhenAlreadyAttached()
{
var stream = new MemoryStream();
@@ -574,16 +575,16 @@ public async Task InvokeAsync_DoesNotAttachHeaders_WhenAlreadyAttached()
await middleware.InvokeAsync(context);
// Assert
- Assert.True(context.Response.Headers.ContainsKey("DOTNET-MODIFIABLE-ASSEMBLIES"));
- Assert.Equal("true", context.Response.Headers["DOTNET-MODIFIABLE-ASSEMBLIES"]);
- Assert.True(context.Response.Headers.ContainsKey("ASPNETCORE-BROWSER-TOOLS"));
- Assert.Equal("true", context.Response.Headers["ASPNETCORE-BROWSER-TOOLS"]);
+ Assert.IsTrue(context.Response.Headers.ContainsKey("DOTNET-MODIFIABLE-ASSEMBLIES"));
+ Assert.AreEqual("true", context.Response.Headers["DOTNET-MODIFIABLE-ASSEMBLIES"].ToString());
+ Assert.IsTrue(context.Response.Headers.ContainsKey("ASPNETCORE-BROWSER-TOOLS"));
+ Assert.AreEqual("true", context.Response.Headers["ASPNETCORE-BROWSER-TOOLS"].ToString());
}
- [Theory]
- [InlineData(500, "text/html")]
- [InlineData(404, "text/html")]
- [InlineData(200, "text/html")]
+ [TestMethod]
+ [DataRow(500, "text/html")]
+ [DataRow(404, "text/html")]
+ [DataRow(200, "text/html")]
public async Task InvokeAsync_AddsScriptToThePage_ForSupportedStatusCodes(int statusCode, string contentType)
{
// Act & Assert
@@ -591,11 +592,11 @@ public async Task InvokeAsync_AddsScriptToThePage_ForSupportedStatusCodes(int st
Assert.Contains("", responseContent);
}
- [Theory]
- [InlineData(400, "text/html")] // Bad Request
- [InlineData(401, "text/html")] // Unauthorized
- [InlineData(404, "application/json")] // 404 with wrong content type
- [InlineData(200, "application/json")] // 200 with wrong content type
+ [TestMethod]
+ [DataRow(400, "text/html")] // Bad Request
+ [DataRow(401, "text/html")] // Unauthorized
+ [DataRow(404, "application/json")] // 404 with wrong content type
+ [DataRow(200, "application/json")] // 200 with wrong content type
public async Task InvokeAsync_DoesNotAddScript_ForUnsupportedStatusCodesOrContentTypes(int statusCode, string contentType)
{
// Act & Assert
@@ -646,7 +647,7 @@ private async Task TestBrowserRefreshMiddleware(int statusCode, string c
// Return response content and verify status code
var responseContent = Encoding.UTF8.GetString(stream.ToArray());
- Assert.Equal(statusCode, context.Response.StatusCode);
+ Assert.AreEqual(statusCode, context.Response.StatusCode);
return responseContent;
}
diff --git a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/BrowserScriptMiddlewareTest.cs b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/BrowserScriptMiddlewareTest.cs
index 19621f84cc92..d16809efb7d4 100644
--- a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/BrowserScriptMiddlewareTest.cs
+++ b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/BrowserScriptMiddlewareTest.cs
@@ -6,6 +6,7 @@
namespace Microsoft.AspNetCore.Watch.BrowserRefresh
{
+ [TestClass]
public class BrowserScriptMiddlewareTest
{
private readonly RequestDelegate _next = (context) => Task.CompletedTask;
@@ -17,7 +18,7 @@ public BrowserScriptMiddlewareTest()
_logger = loggerFactory.CreateLogger();
}
- [Fact]
+ [TestMethod]
public async Task InvokeAsync_ReturnsScript()
{
var context = new DefaultHttpContext();
@@ -38,7 +39,7 @@ public async Task InvokeAsync_ReturnsScript()
Assert.Contains("'test-key'", script);
}
- [Fact]
+ [TestMethod]
public async Task InvokeAsync_ConfiguresHeaders()
{
var context = new DefaultHttpContext();
@@ -52,23 +53,14 @@ public async Task InvokeAsync_ConfiguresHeaders()
await middleware.InvokeAsync(context);
var response = context.Response;
- Assert.Collection(
- response.Headers.OrderBy(h => h.Key),
- kvp =>
- {
- Assert.Equal("Cache-Control", kvp.Key);
- Assert.Equal("no-store", kvp.Value);
- },
- kvp =>
- {
- Assert.Equal("Content-Length", kvp.Key);
- Assert.NotEqual(0, kvp.Value.Count);
- },
- kvp =>
- {
- Assert.Equal("Content-Type", kvp.Key);
- Assert.Equal("application/javascript; charset=utf-8", kvp.Value);
- });
+ var headers = response.Headers.OrderBy(h => h.Key).ToArray();
+ Assert.HasCount(3, headers);
+ Assert.AreEqual("Cache-Control", headers[0].Key);
+ Assert.AreEqual("no-store", headers[0].Value.ToString());
+ Assert.AreEqual("Content-Length", headers[1].Key);
+ Assert.AreNotEqual(0, headers[1].Value.Count);
+ Assert.AreEqual("Content-Type", headers[2].Key);
+ Assert.AreEqual("application/javascript; charset=utf-8", headers[2].Value.ToString());
}
}
}
diff --git a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/HostingStartupTest.cs b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/HostingStartupTest.cs
index 5050e4c8dd15..40dfc35d6c85 100644
--- a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/HostingStartupTest.cs
+++ b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/HostingStartupTest.cs
@@ -1,4 +1,4 @@
-// Licensed to the .NET Foundation under one or more agreements.
+// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.AspNetCore.Builder;
@@ -7,9 +7,10 @@
namespace Microsoft.AspNetCore.Watch.BrowserRefresh
{
+ [TestClass]
public class HostingStartupTest
{
- [Fact]
+ [TestMethod]
public async Task ClearSiteDataWorks()
{
// Arrange
@@ -21,11 +22,11 @@ public async Task ClearSiteDataWorks()
await requestDelegate(context);
// Assert
- Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
- Assert.Equal("\"cache\"", context.Response.Headers["Clear-Site-Data"]);
+ Assert.AreEqual(StatusCodes.Status200OK, context.Response.StatusCode);
+ Assert.AreEqual("\"cache\"", context.Response.Headers["Clear-Site-Data"].ToString());
}
- [Fact]
+ [TestMethod]
public async Task GetBlazorHotReloadMiddlewareWorks()
{
// Arrange
@@ -39,10 +40,10 @@ public async Task GetBlazorHotReloadMiddlewareWorks()
await requestDelegate(context);
// Assert
- Assert.Equal(StatusCodes.Status204NoContent, context.Response.StatusCode);
+ Assert.AreEqual(StatusCodes.Status204NoContent, context.Response.StatusCode);
}
- [Fact]
+ [TestMethod]
public async Task PostBlazorHotReloadMiddlewareWorks()
{
var requestDelegate = GetRequestDelegate();
@@ -58,7 +59,7 @@ public async Task PostBlazorHotReloadMiddlewareWorks()
await requestDelegate(context);
- Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
+ Assert.AreEqual(StatusCodes.Status200OK, context.Response.StatusCode);
context.Request.Path = "/_framework/blazor-hotreload";
context.Request.Method = "GET";
@@ -70,10 +71,10 @@ public async Task PostBlazorHotReloadMiddlewareWorks()
var bodyJson = Encoding.UTF8.GetString(body.ToArray());
- Assert.Equal($"[{updateJson}]", bodyJson);
+ Assert.AreEqual($"[{updateJson}]", bodyJson);
}
- [Fact]
+ [TestMethod]
public async Task GetBlazorHotReloadJsWorks()
{
// Arrange
@@ -87,11 +88,11 @@ public async Task GetBlazorHotReloadJsWorks()
await requestDelegate(context);
// Assert
- Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
- Assert.NotEmpty(responseBody.ToArray());
+ Assert.AreEqual(StatusCodes.Status200OK, context.Response.StatusCode);
+ Assert.IsNotEmpty(responseBody.ToArray());
}
- [Fact]
+ [TestMethod]
public async Task GetAspNetCoreBrowserRefreshWorks()
{
// Arrange
@@ -105,11 +106,11 @@ public async Task GetAspNetCoreBrowserRefreshWorks()
await requestDelegate(context);
// Assert
- Assert.Equal(StatusCodes.Status200OK, context.Response.StatusCode);
- Assert.NotEmpty(responseBody.ToArray());
+ Assert.AreEqual(StatusCodes.Status200OK, context.Response.StatusCode);
+ Assert.IsNotEmpty(responseBody.ToArray());
}
- [Fact]
+ [TestMethod]
public async Task GetUnknownUrlWorks()
{
// Arrange
@@ -121,10 +122,10 @@ public async Task GetUnknownUrlWorks()
await requestDelegate(context);
// Assert
- Assert.Equal(StatusCodes.Status418ImATeapot, context.Response.StatusCode);
+ Assert.AreEqual(StatusCodes.Status418ImATeapot, context.Response.StatusCode);
}
- [Fact]
+ [TestMethod]
public async Task GetUnknownFrameworkPathWorks()
{
// Arrange
@@ -155,7 +156,7 @@ public async Task GetUnknownFrameworkPathWorks()
await requestDelegate(context);
// Assert
- Assert.Equal(StatusCodes.Status206PartialContent, context.Response.StatusCode);
+ Assert.AreEqual(StatusCodes.Status206PartialContent, context.Response.StatusCode);
// Act - 2
@@ -163,7 +164,7 @@ public async Task GetUnknownFrameworkPathWorks()
await requestDelegate(context);
// Assert
- Assert.Equal(StatusCodes.Status226IMUsed, context.Response.StatusCode);
+ Assert.AreEqual(StatusCodes.Status226IMUsed, context.Response.StatusCode);
}
private static RequestDelegate GetRequestDelegate(Action? configureBuilder = null)
diff --git a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests.csproj b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests.csproj
index a9b32a2352b2..0e6fe66f9235 100644
--- a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests.csproj
+++ b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests.csproj
@@ -1,16 +1,13 @@
-
+
$(SdkTargetFramework)
Microsoft.AspNetCore.Watch.BrowserRefresh
MicrosoftAspNetCore
- Exe
- false
-
@@ -22,4 +19,4 @@
-
+
\ No newline at end of file
diff --git a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/ResponseStreamWrapperCompressionTest.cs b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/ResponseStreamWrapperCompressionTest.cs
index 32c39452edb2..a0735b9dff89 100644
--- a/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/ResponseStreamWrapperCompressionTest.cs
+++ b/test/Microsoft.AspNetCore.Watch.BrowserRefresh.Tests/ResponseStreamWrapperCompressionTest.cs
@@ -8,9 +8,10 @@
namespace Microsoft.AspNetCore.Watch.BrowserRefresh
{
+ [TestClass]
public class ResponseStreamWrapperCompressionTest
{
- [Fact]
+ [TestMethod]
public async Task WriteAsync_HandlesGzipCompressedHtmlResponse()
{
// Arrange
@@ -32,17 +33,17 @@ public async Task WriteAsync_HandlesGzipCompressedHtmlResponse()
var wrapper = new ResponseStreamWrapper(context, NullLogger.Instance);
// Act
- await wrapper.WriteAsync(compressedData, TestContext.Current.CancellationToken);
+ await wrapper.WriteAsync(compressedData, CancellationToken.None);
await wrapper.CompleteAsync();
// Assert
var result = Encoding.UTF8.GetString(outputStream.ToArray());
Assert.Contains("", result);
- Assert.False(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
- Assert.Null(context.Response.Headers.ContentLength);
+ Assert.IsFalse(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
+ Assert.IsNull(context.Response.Headers.ContentLength);
}
- [Fact]
+ [TestMethod]
public async Task Write_HandlesGzipCompressedHtmlResponse()
{
// Arrange
@@ -70,11 +71,11 @@ public async Task Write_HandlesGzipCompressedHtmlResponse()
// Assert
var result = Encoding.UTF8.GetString(outputStream.ToArray());
Assert.Contains("", result);
- Assert.False(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
- Assert.Null(context.Response.Headers.ContentLength);
+ Assert.IsFalse(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
+ Assert.IsNull(context.Response.Headers.ContentLength);
}
- [Fact]
+ [TestMethod]
public async Task WriteAsync_DoesNotModifyNonHtmlCompressedResponse()
{
// Arrange
@@ -96,15 +97,15 @@ public async Task WriteAsync_DoesNotModifyNonHtmlCompressedResponse()
var wrapper = new ResponseStreamWrapper(context, NullLogger.Instance);
// Act
- await wrapper.WriteAsync(compressedData, TestContext.Current.CancellationToken);
+ await wrapper.WriteAsync(compressedData, CancellationToken.None);
await wrapper.CompleteAsync();
var result = outputStream.ToArray();
- Assert.Equal(compressedData, result);
- Assert.True(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
+ Assert.AreSequenceEqual(compressedData, result);
+ Assert.IsTrue(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
}
- [Fact]
+ [TestMethod]
public async Task Write_DoesNotModifyNonHtmlCompressedResponse()
{
// Arrange
@@ -130,11 +131,11 @@ public async Task Write_DoesNotModifyNonHtmlCompressedResponse()
await wrapper.CompleteAsync();
var result = outputStream.ToArray();
- Assert.Equal(compressedData, result);
- Assert.True(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
+ Assert.AreSequenceEqual(compressedData, result);
+ Assert.IsTrue(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
}
- [Fact]
+ [TestMethod]
public async Task WriteAsync_IgnoresNonGzipCompressionTypes()
{
// Arrange
@@ -156,17 +157,17 @@ public async Task WriteAsync_IgnoresNonGzipCompressionTypes()
var wrapper = new ResponseStreamWrapper(context, NullLogger.Instance);
// Act
- await wrapper.WriteAsync(data, TestContext.Current.CancellationToken);
+ await wrapper.WriteAsync(data, CancellationToken.None);
await wrapper.CompleteAsync();
// Assert
var result = Encoding.UTF8.GetString(outputStream.ToArray());
// Should treat as regular data since we only handle gzip
Assert.Contains("", result);
- Assert.True(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
+ Assert.IsTrue(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
}
- [Fact]
+ [TestMethod]
public async Task Write_IgnoresNonGzipCompressionTypes()
{
// Arrange
@@ -195,10 +196,10 @@ public async Task Write_IgnoresNonGzipCompressionTypes()
var result = Encoding.UTF8.GetString(outputStream.ToArray());
// Should treat as regular data since we only handle gzip
Assert.Contains("", result);
- Assert.True(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
+ Assert.IsTrue(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
}
- [Fact]
+ [TestMethod]
public async Task WriteAsync_PreservesNonCompressedHtmlResponse()
{
// Arrange
@@ -219,16 +220,16 @@ public async Task WriteAsync_PreservesNonCompressedHtmlResponse()
var wrapper = new ResponseStreamWrapper(context, NullLogger.Instance);
// Act
- await wrapper.WriteAsync(data, TestContext.Current.CancellationToken);
+ await wrapper.WriteAsync(data, CancellationToken.None);
await wrapper.CompleteAsync();
// Assert
var result = Encoding.UTF8.GetString(outputStream.ToArray());
Assert.Contains("", result);
- Assert.Null(context.Response.Headers.ContentLength);
+ Assert.IsNull(context.Response.Headers.ContentLength);
}
- [Fact]
+ [TestMethod]
public async Task Write_PreservesNonCompressedHtmlResponse()
{
// Arrange
@@ -255,10 +256,10 @@ public async Task Write_PreservesNonCompressedHtmlResponse()
// Assert
var result = Encoding.UTF8.GetString(outputStream.ToArray());
Assert.Contains("", result);
- Assert.Null(context.Response.Headers.ContentLength);
+ Assert.IsNull(context.Response.Headers.ContentLength);
}
- [Fact]
+ [TestMethod]
public async Task WriteAsync_GzipHtml_SingleByteChunks()
{
// Arrange: small HTML so compressed output is reasonably small; we will feed one byte at a time.
@@ -290,11 +291,11 @@ public async Task WriteAsync_GzipHtml_SingleByteChunks()
// Assert: script injected and content encoding removed
var result = Encoding.UTF8.GetString(outputStream.ToArray());
Assert.Contains("", result);
- Assert.False(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
- Assert.Null(context.Response.Headers.ContentLength);
+ Assert.IsFalse(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
+ Assert.IsNull(context.Response.Headers.ContentLength);
}
- [Fact]
+ [TestMethod]
public async Task Write_GzipHtml_SingleByteChunks()
{
// Arrange: small HTML so compressed output is reasonably small; we will feed one byte at a time.
@@ -326,11 +327,11 @@ public async Task Write_GzipHtml_SingleByteChunks()
// Assert: script injected and content encoding removed
var result = Encoding.UTF8.GetString(outputStream.ToArray());
Assert.Contains("", result);
- Assert.False(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
- Assert.Null(context.Response.Headers.ContentLength);
+ Assert.IsFalse(context.Response.Headers.ContainsKey(HeaderNames.ContentEncoding));
+ Assert.IsNull(context.Response.Headers.ContentLength);
}
- [Fact]
+ [TestMethod]
public async Task WriteAsync_GzipHtml_LargeChunk32K()
{
// Arrange: generate largely incompressible-ish HTML body so compressed data spans >= 32K
@@ -346,7 +347,7 @@ public async Task WriteAsync_GzipHtml_LargeChunk32K()
sb.Append("