瀏覽代碼

Replace xUnit with mstest (#1883)

xUnit is no longer able to run tests on UWP. MSTest supports this in Visual Studio 2022, so we are moving back to MSTest. (Rx used to used MSTest before, so this was a relatively straightforward change.)

We had to make a few changes due to the fact that xUnit supplies a SynchronizationContext whereas MSTest does not.

Also fixed a race condition in CreateAsyncTest.
Ian Griffiths 2 年之前
父節點
當前提交
44a28a892d
共有 100 個文件被更改,包括 1855 次插入1529 次删除
  1. 1 1
      AsyncRx.NET/Directory.build.props
  2. 1 1
      Ix.NET/Source/Directory.Build.props
  3. 7 6
      Rx.NET/Integration/LinuxTests/LinuxTests.csproj
  4. 7 6
      Rx.NET/Integration/WindowsDesktopTests/WindowsDesktopTests.csproj
  5. 3 0
      Rx.NET/Source/CodeCoverage.runsettings
  6. 1 1
      Rx.NET/Source/Directory.build.props
  7. 29 0
      Rx.NET/Source/src/Microsoft.Reactive.Testing/IAssertionException.cs
  8. 9 2
      Rx.NET/Source/src/Microsoft.Reactive.Testing/Microsoft.Reactive.Testing.csproj
  9. 24 24
      Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Api/ApiApprovalTests.Core.verified.cs
  10. 4 4
      Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Api/ApiApprovalTests.Testing.verified.cs
  11. 12 10
      Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Api/ApiApprovalTests.cs
  12. 6 6
      Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Tests.System.Reactive.ApiApprovals.csproj
  13. 2 3
      Rx.NET/Source/tests/Tests.System.Reactive.Uwp.DeviceRunner/App.xaml
  14. 85 9
      Rx.NET/Source/tests/Tests.System.Reactive.Uwp.DeviceRunner/App.xaml.cs
  15. 13 5
      Rx.NET/Source/tests/Tests.System.Reactive.Uwp.DeviceRunner/Tests.System.Reactive.Uwp.DeviceRunner.csproj
  16. 1 1
      Rx.NET/Source/tests/Tests.System.Reactive/Stress/Core/Schedulers/EventLoop.cs
  17. 17 4
      Rx.NET/Source/tests/Tests.System.Reactive/Tests.System.Reactive.csproj
  18. 5 2
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Aliases.cs
  19. 5 5
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/AnonymousTest.cs
  20. 5 4
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/ArgumentValidationTest.cs
  21. 9 7
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/AsyncLockTest.cs
  22. 6 4
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/ConcurrencyTest.cs
  23. 18 16
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/ControlSchedulerTest.cs
  24. 16 14
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/CurrentThreadSchedulerTest.cs
  25. 12 10
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/DefaultSchedulerTest.cs
  26. 17 15
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/DispatcherSchedulerTest.cs
  27. 25 23
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/EventLoopSchedulerTest.cs
  28. 20 18
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/HistoricalSchedulerTest.cs
  29. 16 14
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/ImmediateSchedulerTest.cs
  30. 11 8
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/NewThreadSchedulerTest.cs
  31. 7 5
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/ScheduledItemTest.cs
  32. 55 54
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/SchedulerTest.cs
  33. 16 14
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/SynchronizationContextSchedulerTest.cs
  34. 5 5
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/SynchronizationTest.cs
  35. 15 13
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/TaskPoolSchedulerTest.cs
  36. 3 3
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/TestSchedulerTest.cs
  37. 31 21
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/ThreadPoolSchedulerTest.cs
  38. 13 11
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/VirtualSchedulerTest.cs
  39. 11 9
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/ConnectableObservableTest.cs
  40. 16 14
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/DefaultConcurrencyAbstractionLayerTest.cs
  41. 61 59
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Disposables/DisposableTests.cs
  42. 3 3
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/EventPatternSourceBaseTest.cs
  43. 6 4
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/ImmutableListTest.cs
  44. 6 3
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Internal/ExceptionHelperTest.cs
  45. 11 8
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Internal/HalfSerializerTest.cs
  46. 10 7
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Internal/PriorityQueueTest.cs
  47. 5 2
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/LicenseHeaderTest.cs
  48. 22 21
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AggregateTest.cs
  49. 12 11
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AllTest.cs
  50. 23 20
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AmbTest.cs
  51. 33 32
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AndTest.cs
  52. 15 14
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AnyTest.cs
  53. 17 14
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AppendPrependTest.cs
  54. 10 9
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AppendTest.cs
  55. 12 9
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AsObservableTest.cs
  56. 8 5
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AutoConnectTest.cs
  57. 73 72
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AverageTest.cs
  58. 10 7
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AwaitTest.cs
  59. 43 42
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/BufferTest.cs
  60. 13 12
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CaseTest.cs
  61. 7 6
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CastTest.cs
  62. 32 29
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CatchTest.cs
  63. 8 5
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ChunkifyTest.cs
  64. 11 8
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CollectTest.cs
  65. 112 111
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CombineLatestTest.cs
  66. 32 29
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ConcatTest.cs
  67. 13 12
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ContainsTest.cs
  68. 21 20
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CountTest.cs
  69. 39 26
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CreateAsyncTest.cs
  70. 34 31
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CreateTest.cs
  71. 9 8
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DefaultIfEmptyTest.cs
  72. 8 5
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DeferAsyncTest.cs
  73. 9 6
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DeferTest.cs
  74. 11 8
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DelaySubscriptionTest.cs
  75. 69 66
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DelayTest.cs
  76. 11 10
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DematerializeTest.cs
  77. 15 14
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DistinctTest.cs
  78. 16 15
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DistinctUntilChangedTest.cs
  79. 27 24
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DoTest.cs
  80. 9 8
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DoWhileTest.cs
  81. 7 6
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ElementAtOrDefaultTest.cs
  82. 7 6
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ElementAtTest.cs
  83. 11 8
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/EmptyTest.cs
  84. 11 8
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ExpandTest.cs
  85. 14 11
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FinallyTest.cs
  86. 11 10
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FirstAsyncTest.cs
  87. 11 10
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FirstOrDefaultAsyncTest.cs
  88. 11 8
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FirstOrDefaultTest.cs
  89. 14 11
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FirstTest.cs
  90. 21 18
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ForEachAsyncTest.cs
  91. 15 12
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ForEachTest.cs
  92. 7 6
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ForTest.cs
  93. 24 23
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ForkJoinTest.cs
  94. 65 62
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FromAsyncPatternTest.cs
  95. 24 21
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FromAsyncTest.cs
  96. 38 35
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FromEventPatternTest.cs
  97. 16 13
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FromEventTest.cs
  98. 35 32
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/GenerateTest.cs
  99. 8 5
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/GetEnumeratorTest.cs
  100. 60 57
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/GroupByTest.cs

+ 1 - 1
AsyncRx.NET/Directory.build.props

@@ -31,7 +31,7 @@
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup Condition="'$(IsTestProject)' == 'true'">
   <ItemGroup Condition="'$(IsTestProject)' == 'true'">
-    <PackageReference Include="coverlet.collector" Version="3.1.0" />
+    <PackageReference Include="coverlet.collector" Version="3.2.0" />
   </ItemGroup>
   </ItemGroup>
 
 
 </Project>
 </Project>

+ 1 - 1
Ix.NET/Source/Directory.Build.props

@@ -34,7 +34,7 @@
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup Condition="'$(IsTestProject)' == 'true'">
   <ItemGroup Condition="'$(IsTestProject)' == 'true'">
-    <PackageReference Include="coverlet.collector" Version="3.1.1" />
+    <PackageReference Include="coverlet.collector" Version="3.2.0" />
   </ItemGroup>
   </ItemGroup>
 
 
 
 

+ 7 - 6
Rx.NET/Integration/LinuxTests/LinuxTests.csproj

@@ -24,11 +24,12 @@
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
-    <PackageReference Include="xunit" Version="2.4.1" />
-    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
-    <PackageReference Include="System.Reactive" Version="5.1.0-preview*" />
-    <PackageReference Include="Microsoft.Reactive.Testing" Version="5.1.0-preview*" />
-    <PackageReference Include="System.Reactive.Observable.Aliases" Version="5.1.0-preview*" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
+    <PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
+    <PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
+    <PackageReference Include="xunit.assert" Version="2.4.2" />
+    <PackageReference Include="System.Reactive" Version="6.0.0-preview*" />
+    <PackageReference Include="Microsoft.Reactive.Testing" Version="6.0.0-preview*" />
+    <PackageReference Include="System.Reactive.Observable.Aliases" Version="6.0.0-preview*" />
   </ItemGroup>
   </ItemGroup>
 </Project>
 </Project>

+ 7 - 6
Rx.NET/Integration/WindowsDesktopTests/WindowsDesktopTests.csproj

@@ -23,11 +23,12 @@
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
-    <PackageReference Include="xunit" Version="2.4.1" />
-    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
-    <PackageReference Include="System.Reactive" Version="5.1.0-preview*" />
-    <PackageReference Include="Microsoft.Reactive.Testing" Version="5.1.0-preview*" />
-    <PackageReference Include="System.Reactive.Observable.Aliases" Version="5.1.0-preview*" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
+    <PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
+    <PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
+    <PackageReference Include="xunit.assert" Version="2.4.2" />
+    <PackageReference Include="System.Reactive" Version="6.0.0-preview*" />
+    <PackageReference Include="Microsoft.Reactive.Testing" Version="6.0.0-preview*" />
+    <PackageReference Include="System.Reactive.Observable.Aliases" Version="6.0.0-preview*" />
   </ItemGroup>
   </ItemGroup>
 </Project>
 </Project>

+ 3 - 0
Rx.NET/Source/CodeCoverage.runsettings

@@ -13,4 +13,7 @@
       </DataCollector>
       </DataCollector>
     </DataCollectors>
     </DataCollectors>
   </DataCollectionRunSettings>
   </DataCollectionRunSettings>
+  <MSTest>
+    <TestTimeout>120000</TestTimeout>
+  </MSTest>
 </RunSettings>
 </RunSettings>

+ 1 - 1
Rx.NET/Source/Directory.build.props

@@ -36,7 +36,7 @@
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup Condition="'$(IsTestProject)' == 'true'">
   <ItemGroup Condition="'$(IsTestProject)' == 'true'">
-    <PackageReference Include="coverlet.collector" Version="3.1.1" />
+    <PackageReference Include="coverlet.collector" Version="3.2.0" />
   </ItemGroup>
   </ItemGroup>
 
 
 </Project>
 </Project>

+ 29 - 0
Rx.NET/Source/src/Microsoft.Reactive.Testing/IAssertionException.cs

@@ -0,0 +1,29 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT License.
+// See the LICENSE file in the project root for more information. 
+
+namespace Xunit.Sdk
+{
+    /// <summary>
+    /// Marker interface required by xUnit.
+    /// </summary>
+    /// <remarks>
+    /// <para>
+    /// The <c>xunit.assert.source</c> package normally includes this. However, unlike all the
+    /// other types that package adds to our project, this one type is declared to be
+    /// unconditionally public.
+    /// </para>
+    /// <para>
+    /// We think this might be a bug: https://github.com/xunit/xunit/issues/2703
+    /// </para>
+    /// <para>
+    /// In any case, we do not want our library to be exporting public types in the Xunit.Sdk
+    /// namespace. So the csproj file carefully excludes the Asserts/Sdk/IAssertionException.cs
+    /// file supplied by the package (which defines this type as <c>public</c>), and this file
+    /// supplies an equivalent but <c>internal</c> definition.
+    /// </para>
+    /// </remarks>
+    internal interface IAssertionException
+    {
+    }
+}

+ 9 - 2
Rx.NET/Source/src/Microsoft.Reactive.Testing/Microsoft.Reactive.Testing.csproj

@@ -8,12 +8,19 @@
     <PackageTags>Rx;Reactive;Extensions;Observable;LINQ;Events</PackageTags>    
     <PackageTags>Rx;Reactive;Extensions;Observable;LINQ;Events</PackageTags>    
     <Description>Reactive Extensions (Rx) for .NET - Testing Library</Description>
     <Description>Reactive Extensions (Rx) for .NET - Testing Library</Description>
     <!-- NB: A lot of CA warnings are disabled because of the .cs files included from xunit.assert.source. -->
     <!-- NB: A lot of CA warnings are disabled because of the .cs files included from xunit.assert.source. -->
-    <NoWarn>$(NoWarn);CA1305;CA1307;CA1032;CA1064;CA1822;CA1812</NoWarn>
+    <NoWarn>$(NoWarn);IDE0054;IDE0066;CA1305;CA1307;CA1032;CA1064;CA1822;CA1812;CA1823</NoWarn>
   </PropertyGroup>
   </PropertyGroup>
 
 
   <ItemGroup>
   <ItemGroup>
     <EmbeddedResource Include="Properties\*.xml" />
     <EmbeddedResource Include="Properties\*.xml" />
-    <PackageReference Include="xunit.assert.source" Version="2.4.1" PrivateAssets="All" /> 
+    <PackageReference Include="xunit.assert.source" Version="2.4.2" PrivateAssets="All" /> 
     <ProjectReference Include="..\System.Reactive\System.Reactive.csproj" />
     <ProjectReference Include="..\System.Reactive\System.Reactive.csproj" />
   </ItemGroup>
   </ItemGroup>
+
+  <ItemGroup>
+    <!--
+    Workaround for https://github.com/xunit/xunit/issues/2703
+    -->
+    <Compile Remove="$(NuGetPackageRoot)xunit.assert.source\**\contentFiles\cs\**\Asserts\Sdk\IAssertionException.cs" />
+  </ItemGroup>
 </Project>
 </Project>

+ 24 - 24
Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Api/ApiApprovalTests.Core.verified.cs

@@ -1,4 +1,4 @@
-[assembly: System.CLSCompliant(true)]
+[assembly: System.CLSCompliant(true)]
 [assembly: System.Resources.NeutralResourcesLanguage("en-US")]
 [assembly: System.Resources.NeutralResourcesLanguage("en-US")]
 [assembly: System.Runtime.CompilerServices.InternalsVisibleTo(@"Tests.System.Reactive, PublicKey=00240000048000009400000006020000002400005253413100040000010001008f5cff058631087031f8350f30a36fa078027e5df2316b564352dc9eb7af7ce856016d3c5e9d058036fe73bb5c83987bd3fc0793fbe25d633cc4f37c2bd5f1d717cd2a81661bec08f0971dc6078e17bde372b89005e7738a0ebd501b896ca3e8315270ff64df7809dd912c372df61785a5085b3553b7872e39b1b1cc0ff5a6bc")]
 [assembly: System.Runtime.CompilerServices.InternalsVisibleTo(@"Tests.System.Reactive, PublicKey=00240000048000009400000006020000002400005253413100040000010001008f5cff058631087031f8350f30a36fa078027e5df2316b564352dc9eb7af7ce856016d3c5e9d058036fe73bb5c83987bd3fc0793fbe25d633cc4f37c2bd5f1d717cd2a81661bec08f0971dc6078e17bde372b89005e7738a0ebd501b896ca3e8315270ff64df7809dd912c372df61785a5085b3553b7872e39b1b1cc0ff5a6bc")]
 [assembly: System.Runtime.CompilerServices.InternalsVisibleTo(@"Tests.System.Reactive.Uwp.DeviceRunner, PublicKey=00240000048000009400000006020000002400005253413100040000010001008f5cff058631087031f8350f30a36fa078027e5df2316b564352dc9eb7af7ce856016d3c5e9d058036fe73bb5c83987bd3fc0793fbe25d633cc4f37c2bd5f1d717cd2a81661bec08f0971dc6078e17bde372b89005e7738a0ebd501b896ca3e8315270ff64df7809dd912c372df61785a5085b3553b7872e39b1b1cc0ff5a6bc")]
 [assembly: System.Runtime.CompilerServices.InternalsVisibleTo(@"Tests.System.Reactive.Uwp.DeviceRunner, PublicKey=00240000048000009400000006020000002400005253413100040000010001008f5cff058631087031f8350f30a36fa078027e5df2316b564352dc9eb7af7ce856016d3c5e9d058036fe73bb5c83987bd3fc0793fbe25d633cc4f37c2bd5f1d717cd2a81661bec08f0971dc6078e17bde372b89005e7738a0ebd501b896ca3e8315270ff64df7809dd912c372df61785a5085b3553b7872e39b1b1cc0ff5a6bc")]
@@ -61,7 +61,7 @@ namespace System.Reactive
         public static bool operator !=(System.Reactive.EventPattern<TSender, TEventArgs> first, System.Reactive.EventPattern<TSender, TEventArgs> second) { }
         public static bool operator !=(System.Reactive.EventPattern<TSender, TEventArgs> first, System.Reactive.EventPattern<TSender, TEventArgs> second) { }
         public static bool operator ==(System.Reactive.EventPattern<TSender, TEventArgs> first, System.Reactive.EventPattern<TSender, TEventArgs> second) { }
         public static bool operator ==(System.Reactive.EventPattern<TSender, TEventArgs> first, System.Reactive.EventPattern<TSender, TEventArgs> second) { }
     }
     }
-    [System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Module | System.AttributeTargets.Class | System.AttributeTargets.Struct | System.AttributeTargets.Enum | System.AttributeTargets.Constructor | System.AttributeTargets.Method | System.AttributeTargets.Property | System.AttributeTargets.Field | System.AttributeTargets.Event | System.AttributeTargets.Interface | System.AttributeTargets.Parameter | System.AttributeTargets.Delegate | System.AttributeTargets.ReturnValue | System.AttributeTargets.GenericParameter | System.AttributeTargets.All)]
+    [System.AttributeUsage(System.AttributeTargets.All)]
     [System.Reactive.Experimental]
     [System.Reactive.Experimental]
     public sealed class ExperimentalAttribute : System.Attribute
     public sealed class ExperimentalAttribute : System.Attribute
     {
     {
@@ -850,7 +850,7 @@ namespace System.Reactive.Linq
         System.Reactive.Linq.IQbservable<TResult> CreateQuery<TResult>(System.Linq.Expressions.Expression expression);
         System.Reactive.Linq.IQbservable<TResult> CreateQuery<TResult>(System.Linq.Expressions.Expression expression);
     }
     }
     public interface IQbservable<out T> : System.IObservable<T>, System.Reactive.Linq.IQbservable { }
     public interface IQbservable<out T> : System.IObservable<T>, System.Reactive.Linq.IQbservable { }
-    [System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.All, Inherited=false)]
+    [System.AttributeUsage(System.AttributeTargets.Class, Inherited=false)]
     public sealed class LocalQueryMethodImplementationTypeAttribute : System.Attribute
     public sealed class LocalQueryMethodImplementationTypeAttribute : System.Attribute
     {
     {
         public LocalQueryMethodImplementationTypeAttribute(System.Type targetType) { }
         public LocalQueryMethodImplementationTypeAttribute(System.Type targetType) { }
@@ -862,7 +862,7 @@ namespace System.Reactive.Linq
         public static System.IObservable<TAccumulate> Aggregate<TSource, TAccumulate>(this System.IObservable<TSource> source, TAccumulate seed, System.Func<TAccumulate, TSource, TAccumulate> accumulator) { }
         public static System.IObservable<TAccumulate> Aggregate<TSource, TAccumulate>(this System.IObservable<TSource> source, TAccumulate seed, System.Func<TAccumulate, TSource, TAccumulate> accumulator) { }
         public static System.IObservable<TResult> Aggregate<TSource, TAccumulate, TResult>(this System.IObservable<TSource> source, TAccumulate seed, System.Func<TAccumulate, TSource, TAccumulate> accumulator, System.Func<TAccumulate, TResult> resultSelector) { }
         public static System.IObservable<TResult> Aggregate<TSource, TAccumulate, TResult>(this System.IObservable<TSource> source, TAccumulate seed, System.Func<TAccumulate, TSource, TAccumulate> accumulator, System.Func<TAccumulate, TResult> resultSelector) { }
         public static System.IObservable<bool> All<TSource>(this System.IObservable<TSource> source, System.Func<TSource, bool> predicate) { }
         public static System.IObservable<bool> All<TSource>(this System.IObservable<TSource> source, System.Func<TSource, bool> predicate) { }
-        public static System.IObservable<TSource> Amb<TSource>(params System.IObservable<>[] sources) { }
+        public static System.IObservable<TSource> Amb<TSource>(params System.IObservable<TSource>[] sources) { }
         public static System.IObservable<TSource> Amb<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> Amb<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> Amb<TSource>(this System.IObservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.IObservable<TSource> Amb<TSource>(this System.IObservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.Reactive.Joins.Pattern<TLeft, TRight> And<TLeft, TRight>(this System.IObservable<TLeft> left, System.IObservable<TRight> right) { }
         public static System.Reactive.Joins.Pattern<TLeft, TRight> And<TLeft, TRight>(this System.IObservable<TLeft> left, System.IObservable<TRight> right) { }
@@ -910,7 +910,7 @@ namespace System.Reactive.Linq
         public static System.IObservable<TResult> Case<TValue, TResult>(System.Func<TValue> selector, System.Collections.Generic.IDictionary<TValue, System.IObservable<TResult>> sources, System.Reactive.Concurrency.IScheduler scheduler)
         public static System.IObservable<TResult> Case<TValue, TResult>(System.Func<TValue> selector, System.Collections.Generic.IDictionary<TValue, System.IObservable<TResult>> sources, System.Reactive.Concurrency.IScheduler scheduler)
             where TValue :  notnull { }
             where TValue :  notnull { }
         public static System.IObservable<TResult> Cast<TResult>(this System.IObservable<object> source) { }
         public static System.IObservable<TResult> Cast<TResult>(this System.IObservable<object> source) { }
-        public static System.IObservable<TSource> Catch<TSource>(params System.IObservable<>[] sources) { }
+        public static System.IObservable<TSource> Catch<TSource>(params System.IObservable<TSource>[] sources) { }
         public static System.IObservable<TSource> Catch<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> Catch<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> Catch<TSource>(this System.IObservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.IObservable<TSource> Catch<TSource>(this System.IObservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.IObservable<TSource> Catch<TSource, TException>(this System.IObservable<TSource> source, System.Func<TException, System.IObservable<TSource>> handler)
         public static System.IObservable<TSource> Catch<TSource, TException>(this System.IObservable<TSource> source, System.Func<TException, System.IObservable<TSource>> handler)
@@ -918,7 +918,7 @@ namespace System.Reactive.Linq
         public static System.Collections.Generic.IEnumerable<System.Collections.Generic.IList<TSource>> Chunkify<TSource>(this System.IObservable<TSource> source) { }
         public static System.Collections.Generic.IEnumerable<System.Collections.Generic.IList<TSource>> Chunkify<TSource>(this System.IObservable<TSource> source) { }
         public static System.Collections.Generic.IEnumerable<TResult> Collect<TSource, TResult>(this System.IObservable<TSource> source, System.Func<TResult> newCollector, System.Func<TResult, TSource, TResult> merge) { }
         public static System.Collections.Generic.IEnumerable<TResult> Collect<TSource, TResult>(this System.IObservable<TSource> source, System.Func<TResult> newCollector, System.Func<TResult, TSource, TResult> merge) { }
         public static System.Collections.Generic.IEnumerable<TResult> Collect<TSource, TResult>(this System.IObservable<TSource> source, System.Func<TResult> getInitialCollector, System.Func<TResult, TSource, TResult> merge, System.Func<TResult, TResult> getNewCollector) { }
         public static System.Collections.Generic.IEnumerable<TResult> Collect<TSource, TResult>(this System.IObservable<TSource> source, System.Func<TResult> getInitialCollector, System.Func<TResult, TSource, TResult> merge, System.Func<TResult, TResult> getNewCollector) { }
-        public static System.IObservable<System.Collections.Generic.IList<TSource>> CombineLatest<TSource>(params System.IObservable<>[] sources) { }
+        public static System.IObservable<System.Collections.Generic.IList<TSource>> CombineLatest<TSource>(params System.IObservable<TSource>[] sources) { }
         public static System.IObservable<System.Collections.Generic.IList<TSource>> CombineLatest<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<System.Collections.Generic.IList<TSource>> CombineLatest<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TResult> CombineLatest<TSource, TResult>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, System.Func<System.Collections.Generic.IList<TSource>, TResult> resultSelector) { }
         public static System.IObservable<TResult> CombineLatest<TSource, TResult>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, System.Func<System.Collections.Generic.IList<TSource>, TResult> resultSelector) { }
         public static System.IObservable<TResult> CombineLatest<TSource1, TSource2, TResult>(this System.IObservable<TSource1> first, System.IObservable<TSource2> second, System.Func<TSource1, TSource2, TResult> resultSelector) { }
         public static System.IObservable<TResult> CombineLatest<TSource1, TSource2, TResult>(this System.IObservable<TSource1> first, System.IObservable<TSource2> second, System.Func<TSource1, TSource2, TResult> resultSelector) { }
@@ -969,7 +969,7 @@ namespace System.Reactive.Linq
                     System.IObservable<TSource15> source15,
                     System.IObservable<TSource15> source15,
                     System.IObservable<TSource16> source16,
                     System.IObservable<TSource16> source16,
                     System.Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16, TResult> resultSelector) { }
                     System.Func<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16, TResult> resultSelector) { }
-        public static System.IObservable<TSource> Concat<TSource>(params System.IObservable<>[] sources) { }
+        public static System.IObservable<TSource> Concat<TSource>(params System.IObservable<TSource>[] sources) { }
         public static System.IObservable<TSource> Concat<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> Concat<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> Concat<TSource>(this System.IObservable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> Concat<TSource>(this System.IObservable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> Concat<TSource>(this System.IObservable<System.Threading.Tasks.Task<TSource>> sources) { }
         public static System.IObservable<TSource> Concat<TSource>(this System.IObservable<System.Threading.Tasks.Task<TSource>> sources) { }
@@ -1222,11 +1222,11 @@ namespace System.Reactive.Linq
         public static System.IObservable<TResult> Max<TSource, TResult>(this System.IObservable<TSource> source, System.Func<TSource, TResult> selector, System.Collections.Generic.IComparer<TResult> comparer) { }
         public static System.IObservable<TResult> Max<TSource, TResult>(this System.IObservable<TSource> source, System.Func<TSource, TResult> selector, System.Collections.Generic.IComparer<TResult> comparer) { }
         public static System.IObservable<System.Collections.Generic.IList<TSource>> MaxBy<TSource, TKey>(this System.IObservable<TSource> source, System.Func<TSource, TKey> keySelector) { }
         public static System.IObservable<System.Collections.Generic.IList<TSource>> MaxBy<TSource, TKey>(this System.IObservable<TSource> source, System.Func<TSource, TKey> keySelector) { }
         public static System.IObservable<System.Collections.Generic.IList<TSource>> MaxBy<TSource, TKey>(this System.IObservable<TSource> source, System.Func<TSource, TKey> keySelector, System.Collections.Generic.IComparer<TKey> comparer) { }
         public static System.IObservable<System.Collections.Generic.IList<TSource>> MaxBy<TSource, TKey>(this System.IObservable<TSource> source, System.Func<TSource, TKey> keySelector, System.Collections.Generic.IComparer<TKey> comparer) { }
-        public static System.IObservable<TSource> Merge<TSource>(params System.IObservable<>[] sources) { }
+        public static System.IObservable<TSource> Merge<TSource>(params System.IObservable<TSource>[] sources) { }
         public static System.IObservable<TSource> Merge<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> Merge<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> Merge<TSource>(this System.IObservable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> Merge<TSource>(this System.IObservable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> Merge<TSource>(this System.IObservable<System.Threading.Tasks.Task<TSource>> sources) { }
         public static System.IObservable<TSource> Merge<TSource>(this System.IObservable<System.Threading.Tasks.Task<TSource>> sources) { }
-        public static System.IObservable<TSource> Merge<TSource>(System.Reactive.Concurrency.IScheduler scheduler, params System.IObservable<>[] sources) { }
+        public static System.IObservable<TSource> Merge<TSource>(System.Reactive.Concurrency.IScheduler scheduler, params System.IObservable<TSource>[] sources) { }
         public static System.IObservable<TSource> Merge<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, int maxConcurrent) { }
         public static System.IObservable<TSource> Merge<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, int maxConcurrent) { }
         public static System.IObservable<TSource> Merge<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, System.Reactive.Concurrency.IScheduler scheduler) { }
         public static System.IObservable<TSource> Merge<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, System.Reactive.Concurrency.IScheduler scheduler) { }
         public static System.IObservable<TSource> Merge<TSource>(this System.IObservable<System.IObservable<TSource>> sources, int maxConcurrent) { }
         public static System.IObservable<TSource> Merge<TSource>(this System.IObservable<System.IObservable<TSource>> sources, int maxConcurrent) { }
@@ -1268,7 +1268,7 @@ namespace System.Reactive.Linq
         public static System.IObservable<TSource> ObserveOn<TSource>(this System.IObservable<TSource> source, System.Reactive.Concurrency.IScheduler scheduler) { }
         public static System.IObservable<TSource> ObserveOn<TSource>(this System.IObservable<TSource> source, System.Reactive.Concurrency.IScheduler scheduler) { }
         public static System.IObservable<TSource> ObserveOn<TSource>(this System.IObservable<TSource> source, System.Threading.SynchronizationContext context) { }
         public static System.IObservable<TSource> ObserveOn<TSource>(this System.IObservable<TSource> source, System.Threading.SynchronizationContext context) { }
         public static System.IObservable<TResult> OfType<TResult>(this System.IObservable<object> source) { }
         public static System.IObservable<TResult> OfType<TResult>(this System.IObservable<object> source) { }
-        public static System.IObservable<TSource> OnErrorResumeNext<TSource>(params System.IObservable<>[] sources) { }
+        public static System.IObservable<TSource> OnErrorResumeNext<TSource>(params System.IObservable<TSource>[] sources) { }
         public static System.IObservable<TSource> OnErrorResumeNext<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> OnErrorResumeNext<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource> OnErrorResumeNext<TSource>(this System.IObservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.IObservable<TSource> OnErrorResumeNext<TSource>(this System.IObservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.IObservable<TSource> Prepend<TSource>(this System.IObservable<TSource> source, TSource value) { }
         public static System.IObservable<TSource> Prepend<TSource>(this System.IObservable<TSource> source, TSource value) { }
@@ -1559,7 +1559,7 @@ namespace System.Reactive.Linq
         public static System.IObservable<TResult> Using<TResult, TResource>(System.Func<System.Threading.CancellationToken, System.Threading.Tasks.Task<TResource>> resourceFactoryAsync, System.Func<TResource, System.Threading.CancellationToken, System.Threading.Tasks.Task<System.IObservable<TResult>>> observableFactoryAsync)
         public static System.IObservable<TResult> Using<TResult, TResource>(System.Func<System.Threading.CancellationToken, System.Threading.Tasks.Task<TResource>> resourceFactoryAsync, System.Func<TResource, System.Threading.CancellationToken, System.Threading.Tasks.Task<System.IObservable<TResult>>> observableFactoryAsync)
             where TResource : System.IDisposable { }
             where TResource : System.IDisposable { }
         public static TSource Wait<TSource>(this System.IObservable<TSource> source) { }
         public static TSource Wait<TSource>(this System.IObservable<TSource> source) { }
-        public static System.IObservable<TResult> When<TResult>(params System.Reactive.Joins.Plan<>[] plans) { }
+        public static System.IObservable<TResult> When<TResult>(params System.Reactive.Joins.Plan<TResult>[] plans) { }
         public static System.IObservable<TResult> When<TResult>(this System.Collections.Generic.IEnumerable<System.Reactive.Joins.Plan<TResult>> plans) { }
         public static System.IObservable<TResult> When<TResult>(this System.Collections.Generic.IEnumerable<System.Reactive.Joins.Plan<TResult>> plans) { }
         public static System.IObservable<TSource> Where<TSource>(this System.IObservable<TSource> source, System.Func<TSource, bool> predicate) { }
         public static System.IObservable<TSource> Where<TSource>(this System.IObservable<TSource> source, System.Func<TSource, bool> predicate) { }
         public static System.IObservable<TSource> Where<TSource>(this System.IObservable<TSource> source, System.Func<TSource, int, bool> predicate) { }
         public static System.IObservable<TSource> Where<TSource>(this System.IObservable<TSource> source, System.Func<TSource, int, bool> predicate) { }
@@ -1576,7 +1576,7 @@ namespace System.Reactive.Linq
         public static System.IObservable<System.IObservable<TSource>> Window<TSource, TWindowBoundary>(this System.IObservable<TSource> source, System.IObservable<TWindowBoundary> windowBoundaries) { }
         public static System.IObservable<System.IObservable<TSource>> Window<TSource, TWindowBoundary>(this System.IObservable<TSource> source, System.IObservable<TWindowBoundary> windowBoundaries) { }
         public static System.IObservable<System.IObservable<TSource>> Window<TSource, TWindowOpening, TWindowClosing>(this System.IObservable<TSource> source, System.IObservable<TWindowOpening> windowOpenings, System.Func<TWindowOpening, System.IObservable<TWindowClosing>> windowClosingSelector) { }
         public static System.IObservable<System.IObservable<TSource>> Window<TSource, TWindowOpening, TWindowClosing>(this System.IObservable<TSource> source, System.IObservable<TWindowOpening> windowOpenings, System.Func<TWindowOpening, System.IObservable<TWindowClosing>> windowClosingSelector) { }
         public static System.IObservable<TResult> WithLatestFrom<TFirst, TSecond, TResult>(this System.IObservable<TFirst> first, System.IObservable<TSecond> second, System.Func<TFirst, TSecond, TResult> resultSelector) { }
         public static System.IObservable<TResult> WithLatestFrom<TFirst, TSecond, TResult>(this System.IObservable<TFirst> first, System.IObservable<TSecond> second, System.Func<TFirst, TSecond, TResult> resultSelector) { }
-        public static System.IObservable<System.Collections.Generic.IList<TSource>> Zip<TSource>(params System.IObservable<>[] sources) { }
+        public static System.IObservable<System.Collections.Generic.IList<TSource>> Zip<TSource>(params System.IObservable<TSource>[] sources) { }
         public static System.IObservable<System.Collections.Generic.IList<TSource>> Zip<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<System.Collections.Generic.IList<TSource>> Zip<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TResult> Zip<TSource, TResult>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, System.Func<System.Collections.Generic.IList<TSource>, TResult> resultSelector) { }
         public static System.IObservable<TResult> Zip<TSource, TResult>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, System.Func<System.Collections.Generic.IList<TSource>, TResult> resultSelector) { }
         public static System.IObservable<TResult> Zip<TSource1, TSource2, TResult>(this System.IObservable<TSource1> first, System.Collections.Generic.IEnumerable<TSource2> second, System.Func<TSource1, TSource2, TResult> resultSelector) { }
         public static System.IObservable<TResult> Zip<TSource1, TSource2, TResult>(this System.IObservable<TSource1> first, System.Collections.Generic.IEnumerable<TSource2> second, System.Func<TSource1, TSource2, TResult> resultSelector) { }
@@ -1690,7 +1690,7 @@ namespace System.Reactive.Linq
         [System.Reactive.Experimental]
         [System.Reactive.Experimental]
         public static System.IObservable<TSource> Expand<TSource>(this System.IObservable<TSource> source, System.Func<TSource, System.IObservable<TSource>> selector, System.Reactive.Concurrency.IScheduler scheduler) { }
         public static System.IObservable<TSource> Expand<TSource>(this System.IObservable<TSource> source, System.Func<TSource, System.IObservable<TSource>> selector, System.Reactive.Concurrency.IScheduler scheduler) { }
         [System.Reactive.Experimental]
         [System.Reactive.Experimental]
-        public static System.IObservable<TSource[]> ForkJoin<TSource>(params System.IObservable<>[] sources) { }
+        public static System.IObservable<TSource[]> ForkJoin<TSource>(params System.IObservable<TSource>[] sources) { }
         [System.Reactive.Experimental]
         [System.Reactive.Experimental]
         public static System.IObservable<TSource[]> ForkJoin<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.IObservable<TSource[]> ForkJoin<TSource>(this System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         [System.Reactive.Experimental]
         [System.Reactive.Experimental]
@@ -1771,7 +1771,7 @@ namespace System.Reactive.Linq
         public static System.Reactive.Linq.IQbservable<TResult> Aggregate<TSource, TAccumulate, TResult>(this System.Reactive.Linq.IQbservable<TSource> source, TAccumulate seed, System.Linq.Expressions.Expression<System.Func<TAccumulate, TSource, TAccumulate>> accumulator, System.Linq.Expressions.Expression<System.Func<TAccumulate, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> Aggregate<TSource, TAccumulate, TResult>(this System.Reactive.Linq.IQbservable<TSource> source, TAccumulate seed, System.Linq.Expressions.Expression<System.Func<TAccumulate, TSource, TAccumulate>> accumulator, System.Linq.Expressions.Expression<System.Func<TAccumulate, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<bool> All<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate) { }
         public static System.Reactive.Linq.IQbservable<bool> All<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate) { }
         public static System.Reactive.Linq.IQbservable<TSource> Amb<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Amb<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
-        public static System.Reactive.Linq.IQbservable<TSource> Amb<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<>[] sources) { }
+        public static System.Reactive.Linq.IQbservable<TSource> Amb<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<TSource>[] sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Amb<TSource>(this System.Reactive.Linq.IQbservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.Reactive.Linq.IQbservable<TSource> Amb<TSource>(this System.Reactive.Linq.IQbservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.Reactive.Joins.QueryablePattern<TLeft, TRight> And<TLeft, TRight>(this System.Reactive.Linq.IQbservable<TLeft> left, System.IObservable<TRight> right) { }
         public static System.Reactive.Joins.QueryablePattern<TLeft, TRight> And<TLeft, TRight>(this System.Reactive.Linq.IQbservable<TLeft> left, System.IObservable<TRight> right) { }
         public static System.Reactive.Linq.IQbservable<bool> Any<TSource>(this System.Reactive.Linq.IQbservable<TSource> source) { }
         public static System.Reactive.Linq.IQbservable<bool> Any<TSource>(this System.Reactive.Linq.IQbservable<TSource> source) { }
@@ -1820,7 +1820,7 @@ namespace System.Reactive.Linq
             where TValue :  notnull { }
             where TValue :  notnull { }
         public static System.Reactive.Linq.IQbservable<TResult> Cast<TResult>(this System.Reactive.Linq.IQbservable<object> source) { }
         public static System.Reactive.Linq.IQbservable<TResult> Cast<TResult>(this System.Reactive.Linq.IQbservable<object> source) { }
         public static System.Reactive.Linq.IQbservable<TSource> Catch<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Catch<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
-        public static System.Reactive.Linq.IQbservable<TSource> Catch<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<>[] sources) { }
+        public static System.Reactive.Linq.IQbservable<TSource> Catch<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<TSource>[] sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Catch<TSource>(this System.Reactive.Linq.IQbservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.Reactive.Linq.IQbservable<TSource> Catch<TSource>(this System.Reactive.Linq.IQbservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.Reactive.Linq.IQbservable<TSource> Catch<TSource, TException>(this System.Reactive.Linq.IQbservable<TSource> source, System.Linq.Expressions.Expression<System.Func<TException, System.IObservable<TSource>>> handler)
         public static System.Reactive.Linq.IQbservable<TSource> Catch<TSource, TException>(this System.Reactive.Linq.IQbservable<TSource> source, System.Linq.Expressions.Expression<System.Func<TException, System.IObservable<TSource>>> handler)
             where TException : System.Exception { }
             where TException : System.Exception { }
@@ -1828,7 +1828,7 @@ namespace System.Reactive.Linq
         public static System.Linq.IQueryable<TResult> Collect<TSource, TResult>(this System.Reactive.Linq.IQbservable<TSource> source, System.Linq.Expressions.Expression<System.Func<TResult>> newCollector, System.Linq.Expressions.Expression<System.Func<TResult, TSource, TResult>> merge) { }
         public static System.Linq.IQueryable<TResult> Collect<TSource, TResult>(this System.Reactive.Linq.IQbservable<TSource> source, System.Linq.Expressions.Expression<System.Func<TResult>> newCollector, System.Linq.Expressions.Expression<System.Func<TResult, TSource, TResult>> merge) { }
         public static System.Linq.IQueryable<TResult> Collect<TSource, TResult>(this System.Reactive.Linq.IQbservable<TSource> source, System.Linq.Expressions.Expression<System.Func<TResult>> getInitialCollector, System.Linq.Expressions.Expression<System.Func<TResult, TSource, TResult>> merge, System.Linq.Expressions.Expression<System.Func<TResult, TResult>> getNewCollector) { }
         public static System.Linq.IQueryable<TResult> Collect<TSource, TResult>(this System.Reactive.Linq.IQbservable<TSource> source, System.Linq.Expressions.Expression<System.Func<TResult>> getInitialCollector, System.Linq.Expressions.Expression<System.Func<TResult, TSource, TResult>> merge, System.Linq.Expressions.Expression<System.Func<TResult, TResult>> getNewCollector) { }
         public static System.Reactive.Linq.IQbservable<System.Collections.Generic.IList<TSource>> CombineLatest<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<System.Collections.Generic.IList<TSource>> CombineLatest<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
-        public static System.Reactive.Linq.IQbservable<System.Collections.Generic.IList<TSource>> CombineLatest<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<>[] sources) { }
+        public static System.Reactive.Linq.IQbservable<System.Collections.Generic.IList<TSource>> CombineLatest<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<TSource>[] sources) { }
         public static System.Reactive.Linq.IQbservable<TResult> CombineLatest<TSource, TResult>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IList<TSource>, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> CombineLatest<TSource, TResult>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IList<TSource>, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> CombineLatest<TSource1, TSource2, TResult>(this System.Reactive.Linq.IQbservable<TSource1> first, System.IObservable<TSource2> second, System.Linq.Expressions.Expression<System.Func<TSource1, TSource2, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> CombineLatest<TSource1, TSource2, TResult>(this System.Reactive.Linq.IQbservable<TSource1> first, System.IObservable<TSource2> second, System.Linq.Expressions.Expression<System.Func<TSource1, TSource2, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> CombineLatest<TSource1, TSource2, TSource3, TResult>(this System.Reactive.Linq.IQbservable<TSource1> source1, System.IObservable<TSource2> source2, System.IObservable<TSource3> source3, System.Linq.Expressions.Expression<System.Func<TSource1, TSource2, TSource3, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> CombineLatest<TSource1, TSource2, TSource3, TResult>(this System.Reactive.Linq.IQbservable<TSource1> source1, System.IObservable<TSource2> source2, System.IObservable<TSource3> source3, System.Linq.Expressions.Expression<System.Func<TSource1, TSource2, TSource3, TResult>> resultSelector) { }
@@ -1881,7 +1881,7 @@ namespace System.Reactive.Linq
         public static System.Reactive.Linq.IQbservable<TSource> Concat<TSource>(this System.Reactive.Linq.IQbservable<System.IObservable<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Concat<TSource>(this System.Reactive.Linq.IQbservable<System.IObservable<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Concat<TSource>(this System.Reactive.Linq.IQbservable<System.Threading.Tasks.Task<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Concat<TSource>(this System.Reactive.Linq.IQbservable<System.Threading.Tasks.Task<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Concat<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Concat<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
-        public static System.Reactive.Linq.IQbservable<TSource> Concat<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<>[] sources) { }
+        public static System.Reactive.Linq.IQbservable<TSource> Concat<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<TSource>[] sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Concat<TSource>(this System.Reactive.Linq.IQbservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.Reactive.Linq.IQbservable<TSource> Concat<TSource>(this System.Reactive.Linq.IQbservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.Reactive.Linq.IQbservable<bool> Contains<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, TSource value) { }
         public static System.Reactive.Linq.IQbservable<bool> Contains<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, TSource value) { }
         public static System.Reactive.Linq.IQbservable<bool> Contains<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, TSource value, System.Collections.Generic.IEqualityComparer<TSource> comparer) { }
         public static System.Reactive.Linq.IQbservable<bool> Contains<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, TSource value, System.Collections.Generic.IEqualityComparer<TSource> comparer) { }
@@ -2073,12 +2073,12 @@ namespace System.Reactive.Linq
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservable<System.IObservable<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservable<System.IObservable<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservable<System.Threading.Tasks.Task<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservable<System.Threading.Tasks.Task<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
-        public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<>[] sources) { }
+        public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<TSource>[] sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservable<System.IObservable<TSource>> sources, int maxConcurrent) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservable<System.IObservable<TSource>> sources, int maxConcurrent) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, int maxConcurrent) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, int maxConcurrent) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, System.Reactive.Concurrency.IScheduler scheduler) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, System.Reactive.Concurrency.IScheduler scheduler) { }
-        public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Reactive.Concurrency.IScheduler scheduler, params System.IObservable<>[] sources) { }
+        public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Reactive.Concurrency.IScheduler scheduler, params System.IObservable<TSource>[] sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservable<TSource> first, System.IObservable<TSource> second, System.Reactive.Concurrency.IScheduler scheduler) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservable<TSource> first, System.IObservable<TSource> second, System.Reactive.Concurrency.IScheduler scheduler) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, int maxConcurrent, System.Reactive.Concurrency.IScheduler scheduler) { }
         public static System.Reactive.Linq.IQbservable<TSource> Merge<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, int maxConcurrent, System.Reactive.Concurrency.IScheduler scheduler) { }
         public static System.Reactive.Linq.IQbservable<decimal> Min(this System.Reactive.Linq.IQbservable<decimal> source) { }
         public static System.Reactive.Linq.IQbservable<decimal> Min(this System.Reactive.Linq.IQbservable<decimal> source) { }
@@ -2116,7 +2116,7 @@ namespace System.Reactive.Linq
         public static System.Reactive.Linq.IQbservable<TSource> ObserveOn<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, System.Threading.SynchronizationContext context) { }
         public static System.Reactive.Linq.IQbservable<TSource> ObserveOn<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, System.Threading.SynchronizationContext context) { }
         public static System.Reactive.Linq.IQbservable<TResult> OfType<TResult>(this System.Reactive.Linq.IQbservable<object> source) { }
         public static System.Reactive.Linq.IQbservable<TResult> OfType<TResult>(this System.Reactive.Linq.IQbservable<object> source) { }
         public static System.Reactive.Linq.IQbservable<TSource> OnErrorResumeNext<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> OnErrorResumeNext<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
-        public static System.Reactive.Linq.IQbservable<TSource> OnErrorResumeNext<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<>[] sources) { }
+        public static System.Reactive.Linq.IQbservable<TSource> OnErrorResumeNext<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<TSource>[] sources) { }
         public static System.Reactive.Linq.IQbservable<TSource> OnErrorResumeNext<TSource>(this System.Reactive.Linq.IQbservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.Reactive.Linq.IQbservable<TSource> OnErrorResumeNext<TSource>(this System.Reactive.Linq.IQbservable<TSource> first, System.IObservable<TSource> second) { }
         public static System.Reactive.Linq.IQbservable<TSource> Prepend<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, TSource value) { }
         public static System.Reactive.Linq.IQbservable<TSource> Prepend<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, TSource value) { }
         public static System.Reactive.Linq.IQbservable<TSource> Prepend<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, TSource value, System.Reactive.Concurrency.IScheduler scheduler) { }
         public static System.Reactive.Linq.IQbservable<TSource> Prepend<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, TSource value, System.Reactive.Concurrency.IScheduler scheduler) { }
@@ -2380,7 +2380,7 @@ namespace System.Reactive.Linq
         public static System.Reactive.Linq.IQbservable<TResult> Using<TResult, TResource>(this System.Reactive.Linq.IQbservableProvider provider, System.Linq.Expressions.Expression<System.Func<System.Threading.CancellationToken, System.Threading.Tasks.Task<TResource>>> resourceFactoryAsync, System.Linq.Expressions.Expression<System.Func<TResource, System.Threading.CancellationToken, System.Threading.Tasks.Task<System.IObservable<TResult>>>> observableFactoryAsync)
         public static System.Reactive.Linq.IQbservable<TResult> Using<TResult, TResource>(this System.Reactive.Linq.IQbservableProvider provider, System.Linq.Expressions.Expression<System.Func<System.Threading.CancellationToken, System.Threading.Tasks.Task<TResource>>> resourceFactoryAsync, System.Linq.Expressions.Expression<System.Func<TResource, System.Threading.CancellationToken, System.Threading.Tasks.Task<System.IObservable<TResult>>>> observableFactoryAsync)
             where TResource : System.IDisposable { }
             where TResource : System.IDisposable { }
         public static System.Reactive.Linq.IQbservable<TResult> When<TResult>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.Reactive.Joins.QueryablePlan<TResult>> plans) { }
         public static System.Reactive.Linq.IQbservable<TResult> When<TResult>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.Reactive.Joins.QueryablePlan<TResult>> plans) { }
-        public static System.Reactive.Linq.IQbservable<TResult> When<TResult>(this System.Reactive.Linq.IQbservableProvider provider, params System.Reactive.Joins.QueryablePlan<>[] plans) { }
+        public static System.Reactive.Linq.IQbservable<TResult> When<TResult>(this System.Reactive.Linq.IQbservableProvider provider, params System.Reactive.Joins.QueryablePlan<TResult>[] plans) { }
         public static System.Reactive.Linq.IQbservable<TSource> Where<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate) { }
         public static System.Reactive.Linq.IQbservable<TSource> Where<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, bool>> predicate) { }
         public static System.Reactive.Linq.IQbservable<TSource> Where<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, int, bool>> predicate) { }
         public static System.Reactive.Linq.IQbservable<TSource> Where<TSource>(this System.Reactive.Linq.IQbservable<TSource> source, System.Linq.Expressions.Expression<System.Func<TSource, int, bool>> predicate) { }
         public static System.Reactive.Linq.IQbservable<TSource> While<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Linq.Expressions.Expression<System.Func<bool>> condition, System.IObservable<TSource> source) { }
         public static System.Reactive.Linq.IQbservable<TSource> While<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Linq.Expressions.Expression<System.Func<bool>> condition, System.IObservable<TSource> source) { }
@@ -2397,7 +2397,7 @@ namespace System.Reactive.Linq
         public static System.Reactive.Linq.IQbservable<System.IObservable<TSource>> Window<TSource, TWindowOpening, TWindowClosing>(this System.Reactive.Linq.IQbservable<TSource> source, System.IObservable<TWindowOpening> windowOpenings, System.Linq.Expressions.Expression<System.Func<TWindowOpening, System.IObservable<TWindowClosing>>> windowClosingSelector) { }
         public static System.Reactive.Linq.IQbservable<System.IObservable<TSource>> Window<TSource, TWindowOpening, TWindowClosing>(this System.Reactive.Linq.IQbservable<TSource> source, System.IObservable<TWindowOpening> windowOpenings, System.Linq.Expressions.Expression<System.Func<TWindowOpening, System.IObservable<TWindowClosing>>> windowClosingSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> WithLatestFrom<TFirst, TSecond, TResult>(this System.Reactive.Linq.IQbservable<TFirst> first, System.IObservable<TSecond> second, System.Linq.Expressions.Expression<System.Func<TFirst, TSecond, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> WithLatestFrom<TFirst, TSecond, TResult>(this System.Reactive.Linq.IQbservable<TFirst> first, System.IObservable<TSecond> second, System.Linq.Expressions.Expression<System.Func<TFirst, TSecond, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<System.Collections.Generic.IList<TSource>> Zip<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<System.Collections.Generic.IList<TSource>> Zip<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
-        public static System.Reactive.Linq.IQbservable<System.Collections.Generic.IList<TSource>> Zip<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<>[] sources) { }
+        public static System.Reactive.Linq.IQbservable<System.Collections.Generic.IList<TSource>> Zip<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<TSource>[] sources) { }
         public static System.Reactive.Linq.IQbservable<TResult> Zip<TSource, TResult>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IList<TSource>, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> Zip<TSource, TResult>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources, System.Linq.Expressions.Expression<System.Func<System.Collections.Generic.IList<TSource>, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> Zip<TSource1, TSource2, TResult>(this System.Reactive.Linq.IQbservable<TSource1> first, System.Collections.Generic.IEnumerable<TSource2> second, System.Linq.Expressions.Expression<System.Func<TSource1, TSource2, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> Zip<TSource1, TSource2, TResult>(this System.Reactive.Linq.IQbservable<TSource1> first, System.Collections.Generic.IEnumerable<TSource2> second, System.Linq.Expressions.Expression<System.Func<TSource1, TSource2, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> Zip<TSource1, TSource2, TResult>(this System.Reactive.Linq.IQbservable<TSource1> first, System.IObservable<TSource2> second, System.Linq.Expressions.Expression<System.Func<TSource1, TSource2, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> Zip<TSource1, TSource2, TResult>(this System.Reactive.Linq.IQbservable<TSource1> first, System.IObservable<TSource2> second, System.Linq.Expressions.Expression<System.Func<TSource1, TSource2, TResult>> resultSelector) { }
@@ -2692,7 +2692,7 @@ namespace System.Reactive.Linq
         [System.Reactive.Experimental]
         [System.Reactive.Experimental]
         public static System.Reactive.Linq.IQbservable<TSource[]> ForkJoin<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         public static System.Reactive.Linq.IQbservable<TSource[]> ForkJoin<TSource>(this System.Reactive.Linq.IQbservableProvider provider, System.Collections.Generic.IEnumerable<System.IObservable<TSource>> sources) { }
         [System.Reactive.Experimental]
         [System.Reactive.Experimental]
-        public static System.Reactive.Linq.IQbservable<TSource[]> ForkJoin<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<>[] sources) { }
+        public static System.Reactive.Linq.IQbservable<TSource[]> ForkJoin<TSource>(this System.Reactive.Linq.IQbservableProvider provider, params System.IObservable<TSource>[] sources) { }
         [System.Reactive.Experimental]
         [System.Reactive.Experimental]
         public static System.Reactive.Linq.IQbservable<TResult> ForkJoin<TSource1, TSource2, TResult>(this System.Reactive.Linq.IQbservable<TSource1> first, System.IObservable<TSource2> second, System.Linq.Expressions.Expression<System.Func<TSource1, TSource2, TResult>> resultSelector) { }
         public static System.Reactive.Linq.IQbservable<TResult> ForkJoin<TSource1, TSource2, TResult>(this System.Reactive.Linq.IQbservable<TSource1> first, System.IObservable<TSource2> second, System.Linq.Expressions.Expression<System.Func<TSource1, TSource2, TResult>> resultSelector) { }
         [System.Reactive.Experimental]
         [System.Reactive.Experimental]
@@ -3152,4 +3152,4 @@ namespace System.Runtime.CompilerServices
             where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine { }
             where TStateMachine : System.Runtime.CompilerServices.IAsyncStateMachine { }
         public static System.Runtime.CompilerServices.TaskObservableMethodBuilder<T> Create() { }
         public static System.Runtime.CompilerServices.TaskObservableMethodBuilder<T> Create() { }
     }
     }
-}
+}

+ 4 - 4
Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Api/ApiApprovalTests.Testing.verified.cs

@@ -1,4 +1,4 @@
-[assembly: System.CLSCompliant(true)]
+[assembly: System.CLSCompliant(true)]
 [assembly: System.Runtime.InteropServices.ComVisible(false)]
 [assembly: System.Runtime.InteropServices.ComVisible(false)]
 [assembly: System.Runtime.Versioning.TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName=".NET Framework 4.7.2")]
 [assembly: System.Runtime.Versioning.TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName=".NET Framework 4.7.2")]
 namespace Microsoft.Reactive.Testing
 namespace Microsoft.Reactive.Testing
@@ -88,8 +88,8 @@ namespace Microsoft.Reactive.Testing
     {
     {
         public TestScheduler() { }
         public TestScheduler() { }
         protected override long Add(long absolute, long relative) { }
         protected override long Add(long absolute, long relative) { }
-        public Microsoft.Reactive.Testing.ITestableObservable<T> CreateColdObservable<T>(params Microsoft.Reactive.Testing.Recorded<>[] messages) { }
-        public Microsoft.Reactive.Testing.ITestableObservable<T> CreateHotObservable<T>(params Microsoft.Reactive.Testing.Recorded<>[] messages) { }
+        public Microsoft.Reactive.Testing.ITestableObservable<T> CreateColdObservable<T>(params Microsoft.Reactive.Testing.Recorded<System.Reactive.Notification<T>>[] messages) { }
+        public Microsoft.Reactive.Testing.ITestableObservable<T> CreateHotObservable<T>(params Microsoft.Reactive.Testing.Recorded<System.Reactive.Notification<T>>[] messages) { }
         public Microsoft.Reactive.Testing.ITestableObserver<T> CreateObserver<T>() { }
         public Microsoft.Reactive.Testing.ITestableObserver<T> CreateObserver<T>() { }
         public override System.IDisposable ScheduleAbsolute<TState>(TState state, long dueTime, System.Func<System.Reactive.Concurrency.IScheduler, TState, System.IDisposable> action) { }
         public override System.IDisposable ScheduleAbsolute<TState>(TState state, long dueTime, System.Func<System.Reactive.Concurrency.IScheduler, TState, System.IDisposable> action) { }
         public Microsoft.Reactive.Testing.ITestableObserver<T> Start<T>(System.Func<System.IObservable<T>> create) { }
         public Microsoft.Reactive.Testing.ITestableObserver<T> Start<T>(System.Func<System.IObservable<T>> create) { }
@@ -98,4 +98,4 @@ namespace Microsoft.Reactive.Testing
         protected override System.DateTimeOffset ToDateTimeOffset(long absolute) { }
         protected override System.DateTimeOffset ToDateTimeOffset(long absolute) { }
         protected override long ToRelative(System.TimeSpan timeSpan) { }
         protected override long ToRelative(System.TimeSpan timeSpan) { }
     }
     }
-}
+}

+ 12 - 10
Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Api/ApiApprovalTests.cs

@@ -15,42 +15,44 @@ namespace ReactiveTests.Tests.Api
 {
 {
     public class ApiApprovalTests : VerifyBase
     public class ApiApprovalTests : VerifyBase
     {
     {
-        private readonly VerifySettings verifySettings;
+        static ApiApprovalTests()
+        {
+            VerifierSettings.OnVerifyMismatch((filePair, message) => DiffPlexReporter.Report(filePair.ReceivedPath, filePair.VerifiedPath, message));
+        }
 
 
         public ApiApprovalTests()
         public ApiApprovalTests()
             : base()
             : base()
         {
         {
-            verifySettings = new VerifySettings();
-            verifySettings.UseExtension("cs");
-
-            VerifierSettings.OnVerifyMismatch((filePair, message) => DiffPlexReporter.Report(filePair.Received, filePair.Verified, message));
         }
         }
 
 
         [Fact]
         [Fact]
         public Task Core()
         public Task Core()
         {
         {
             var publicApi = GeneratePublicApi(typeof(System.Reactive.Unit).Assembly);
             var publicApi = GeneratePublicApi(typeof(System.Reactive.Unit).Assembly);
-            return Verify(publicApi, verifySettings);
+            return Verify(publicApi, "cs");
         }
         }
 
 
         [Fact]
         [Fact]
         public Task Aliases()
         public Task Aliases()
         {
         {
             var publicApi = GeneratePublicApi(typeof(System.Reactive.Observable.Aliases.QueryLanguage).Assembly);
             var publicApi = GeneratePublicApi(typeof(System.Reactive.Observable.Aliases.QueryLanguage).Assembly);
-            return Verify(publicApi, verifySettings);
+            return Verify(publicApi, "cs");
         }
         }
 
 
         [Fact]
         [Fact]
         public Task Testing()
         public Task Testing()
         {
         {
             var publicApi = GeneratePublicApi(typeof(Microsoft.Reactive.Testing.TestScheduler).Assembly);
             var publicApi = GeneratePublicApi(typeof(Microsoft.Reactive.Testing.TestScheduler).Assembly);
-            return Verify(publicApi, verifySettings);
+            return Verify(publicApi, "cs");
         }
         }
 
 
         private string GeneratePublicApi(Assembly assembly)
         private string GeneratePublicApi(Assembly assembly)
         {
         {
-            var namespacePrefixWhitelist = new[] { "System", "Microsoft" };
-            return Filter(ApiGenerator.GeneratePublicApi(assembly, whitelistedNamespacePrefixes: namespacePrefixWhitelist));
+            ApiGeneratorOptions options = new()
+            {
+                AllowNamespacePrefixes = new[] { "System", "Microsoft" }
+            };
+            return Filter(ApiGenerator.GeneratePublicApi(assembly, options));
         }
         }
 
 
         private static string Filter(string text)
         private static string Filter(string text)

+ 6 - 6
Rx.NET/Source/tests/Tests.System.Reactive.ApiApprovals/Tests.System.Reactive.ApiApprovals.csproj

@@ -25,12 +25,12 @@
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
-    <PackageReference Include="Verify.Xunit" Version="14.11.2" />
-    <PackageReference Include="xunit" Version="2.4.1" />
-    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" />
-    <PackageReference Include="DiffPlex" Version="1.7.0" />
-    <PackageReference Include="PublicApiGenerator" Version="10.2.0" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
+    <PackageReference Include="Verify.Xunit" Version="19.11.2" />
+    <PackageReference Include="xunit" Version="2.4.2" />
+    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
+    <PackageReference Include="DiffPlex" Version="1.7.1" />
+    <PackageReference Include="PublicApiGenerator" Version="11.0.0" />
   </ItemGroup>
   </ItemGroup>
 
 
 </Project>
 </Project>

+ 2 - 3
Rx.NET/Source/tests/Tests.System.Reactive.Uwp.DeviceRunner/App.xaml

@@ -1,7 +1,6 @@
-<ui:RunnerApplication
+<Application
     x:Class="Tests.Reactive.Uwp.DeviceRunner.App"
     x:Class="Tests.Reactive.Uwp.DeviceRunner.App"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
-    xmlns:ui="using:Xunit.Runners.UI"
     RequestedTheme="Light">
     RequestedTheme="Light">
-</ui:RunnerApplication>
+</Application>

+ 85 - 9
Rx.NET/Source/tests/Tests.System.Reactive.Uwp.DeviceRunner/App.xaml.cs

@@ -1,17 +1,93 @@
-using System.Reflection;
-using Xunit.Runners.UI;
+using System;
+using System.Reflection;
+
+using Windows.ApplicationModel;
+using Windows.ApplicationModel.Activation;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+
+
+using Windows.UI.Xaml.Navigation;
 
 
 namespace Tests.Reactive.Uwp.DeviceRunner
 namespace Tests.Reactive.Uwp.DeviceRunner
 {
 {
-    public sealed partial class App : RunnerApplication
+    public sealed partial class App : Application
     {
     {
-        protected override void OnInitializeRunner()
+        /// <summary>
+        /// Initializes the singleton application object.  This is the first line of authored code
+        /// executed, and as such is the logical equivalent of main() or WinMain().
+        /// </summary>
+        public App()
+        {
+            this.InitializeComponent();
+            this.Suspending += OnSuspending;
+        }
+
+        /// <summary>
+        /// Invoked when the application is launched normally by the end user.  Other entry points
+        /// will be used such as when the application is launched to open a specific file.
+        /// </summary>
+        /// <param name="e">Details about the launch request and process.</param>
+        protected override void OnLaunched(LaunchActivatedEventArgs e)
+        {
+
+#if DEBUG
+            if (global::System.Diagnostics.Debugger.IsAttached)
+            {
+                this.DebugSettings.EnableFrameRateCounter = true;
+            }
+#endif
+
+            Frame rootFrame = Window.Current.Content as Frame;
+
+            // Do not repeat app initialization when the Window already has content,
+            // just ensure that the window is active
+            if (rootFrame == null)
+            {
+                // Create a Frame to act as the navigation context and navigate to the first page
+                rootFrame = new Frame();
+
+                rootFrame.NavigationFailed += OnNavigationFailed;
+
+                if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
+                {
+                    //TODO: Load state from previously suspended application
+                }
+
+                // Place the frame in the current Window
+                Window.Current.Content = rootFrame;
+            }
+
+            Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.CreateDefaultUI();
+
+            // Ensure the current window is active
+            Window.Current.Activate();
+
+            Microsoft.VisualStudio.TestPlatform.TestExecutor.UnitTestClient.Run(e.Arguments);
+        }
+
+        /// <summary>
+        /// Invoked when Navigation to a certain page fails
+        /// </summary>
+        /// <param name="sender">The Frame which failed navigation</param>
+        /// <param name="e">Details about the navigation failure</param>
+        void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
+        {
+            throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
+        }
+
+        /// <summary>
+        /// Invoked when application execution is being suspended.  Application state is saved
+        /// without knowing whether the application will be terminated or resumed with the contents
+        /// of memory still intact.
+        /// </summary>
+        /// <param name="sender">The source of the suspend request.</param>
+        /// <param name="e">Details about the suspend request.</param>
+        private void OnSuspending(object sender, SuspendingEventArgs e)
         {
         {
-            // tests can be inside the main assembly
-            AddTestAssembly(GetType().GetTypeInfo().Assembly);
-            // otherwise you need to ensure that the test assemblies will 
-            // become part of the app bundle
-            // AddTestAssembly(typeof(PortableTests).GetTypeInfo().Assembly);
+            var deferral = e.SuspendingOperation.GetDeferral();
+            //TODO: Save application state and stop any background activity
+            deferral.Complete();
         }
         }
     }
     }
 }
 }

+ 13 - 5
Rx.NET/Source/tests/Tests.System.Reactive.Uwp.DeviceRunner/Tests.System.Reactive.Uwp.DeviceRunner.csproj

@@ -25,7 +25,7 @@
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
     <DebugSymbols>true</DebugSymbols>
     <DebugSymbols>true</DebugSymbols>
     <OutputPath>bin\x86\Debug\</OutputPath>
     <OutputPath>bin\x86\Debug\</OutputPath>
-    <DefineConstants>TRACE;DEBUG;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;NO_EVENTARGS_CONSTRAINT;HAS_EDI;HAS_WINRT;HAS_PROGRESS;PREFER_ASYNC;HAS_AWAIT;HAS_APTCA;HAS_TPL46;NO_REMOTING;NO_THREAD;WINDOWS;USE_TIMER_SELF_ROOT</DefineConstants>
+    <DefineConstants>TRACE;DEBUG;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;NO_EVENTARGS_CONSTRAINT;HAS_EDI;HAS_WINRT;HAS_PROGRESS;PREFER_ASYNC;HAS_AWAIT;HAS_APTCA;HAS_TPL46;NO_REMOTING;WINDOWS;USE_TIMER_SELF_ROOT</DefineConstants>
     <NoWarn>;2008;0618</NoWarn>
     <NoWarn>;2008;0618</NoWarn>
     <DebugType>full</DebugType>
     <DebugType>full</DebugType>
     <PlatformTarget>x86</PlatformTarget>
     <PlatformTarget>x86</PlatformTarget>
@@ -35,7 +35,7 @@
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
     <OutputPath>bin\x86\Release\</OutputPath>
     <OutputPath>bin\x86\Release\</OutputPath>
-    <DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;NO_EVENTARGS_CONSTRAINT;HAS_EDI;HAS_WINRT;HAS_PROGRESS;PREFER_ASYNC;HAS_AWAIT;HAS_APTCA;HAS_TPL46;NO_REMOTING;NO_THREAD;WINDOWS;USE_TIMER_SELF_ROOT</DefineConstants>
+    <DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP;CODE_ANALYSIS;NO_EVENTARGS_CONSTRAINT;HAS_EDI;HAS_WINRT;HAS_PROGRESS;PREFER_ASYNC;HAS_AWAIT;HAS_APTCA;HAS_TPL46;NO_REMOTING;WINDOWS;USE_TIMER_SELF_ROOT</DefineConstants>
     <Optimize>true</Optimize>
     <Optimize>true</Optimize>
     <NoWarn>;2008;0618</NoWarn>
     <NoWarn>;2008;0618</NoWarn>
     <DebugType>pdbonly</DebugType>
     <DebugType>pdbonly</DebugType>
@@ -94,10 +94,11 @@
   <PropertyGroup>
   <PropertyGroup>
     <NoWarn>$(NoWarn);IDE0003;IDE0016;IDE0017;IDE0018;IDE0019;IDE0020;IDE0031;IDE0032;IDE0034;IDE0037;IDE0038;IDE0039;IDE0040;IDE0044;IDE0051;IDE0052;IDE0056;IDE0057;IDE0059;IDE0060;IDE0062;IDE0063;IDE0071;IDE0074;IDE0075;IDE0076;IDE0077;IDE0079;IDE0083;IDE0090;IDE0180;IDE1006;IDE1056</NoWarn>
     <NoWarn>$(NoWarn);IDE0003;IDE0016;IDE0017;IDE0018;IDE0019;IDE0020;IDE0031;IDE0032;IDE0034;IDE0037;IDE0038;IDE0039;IDE0040;IDE0044;IDE0051;IDE0052;IDE0056;IDE0057;IDE0059;IDE0060;IDE0062;IDE0063;IDE0071;IDE0074;IDE0075;IDE0076;IDE0077;IDE0079;IDE0083;IDE0090;IDE0180;IDE1006;IDE1056</NoWarn>
   </PropertyGroup>
   </PropertyGroup>
+  <PropertyGroup>
+    <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
+  </PropertyGroup>
   <ItemGroup>
   <ItemGroup>
-    <PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.2.13" />
-    <PackageReference Include="xunit" Version="2.4.1" />
-    <PackageReference Include="xunit.runner.devices" Version="2.5.25" />
+    <SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <!-- A reference to the entire .Net Framework and Windows SDK are automatically included -->
     <!-- A reference to the entire .Net Framework and Windows SDK are automatically included -->
@@ -112,6 +113,7 @@
     <Compile Include="..\Tests.System.Reactive\**\*.cs">
     <Compile Include="..\Tests.System.Reactive\**\*.cs">
       <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
       <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
     </Compile>
     </Compile>
+    <Compile Remove="..\Tests.System.Reactive\Tests\LicenseHeaderTest.cs" />
     <Compile Remove="..\Tests.System.Reactive\bin\**\*" />
     <Compile Remove="..\Tests.System.Reactive\bin\**\*" />
     <Compile Remove="..\Tests.System.Reactive\obj\**\*" />
     <Compile Remove="..\Tests.System.Reactive\obj\**\*" />
     <Compile Include="App.xaml.cs">
     <Compile Include="App.xaml.cs">
@@ -134,6 +136,12 @@
     <Content Include="Assets\StoreLogo.png" />
     <Content Include="Assets\StoreLogo.png" />
     <Content Include="Assets\Wide310x150Logo.scale-200.png" />
     <Content Include="Assets\Wide310x150Logo.scale-200.png" />
   </ItemGroup>
   </ItemGroup>
+  <ItemGroup>
+    <PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.2.14" />
+    <PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
+    <PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
+    <PackageReference Include="xunit.assert" Version="2.4.2" />
+  </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ApplicationDefinition Include="App.xaml">
     <ApplicationDefinition Include="App.xaml">
       <Generator>MSBuild:Compile</Generator>
       <Generator>MSBuild:Compile</Generator>

+ 1 - 1
Rx.NET/Source/tests/Tests.System.Reactive/Stress/Core/Schedulers/EventLoop.cs

@@ -11,7 +11,7 @@ using System.Reactive.Linq;
 using System.Reflection;
 using System.Reflection;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Stress.Schedulers
 namespace ReactiveTests.Stress.Schedulers
 {
 {

+ 17 - 4
Rx.NET/Source/tests/Tests.System.Reactive/Tests.System.Reactive.csproj

@@ -1,10 +1,11 @@
 <Project Sdk="MSBuild.Sdk.Extras">
 <Project Sdk="MSBuild.Sdk.Extras">
+
   <PropertyGroup>
   <PropertyGroup>
     <TargetFrameworks>net472;net6.0;net7.0;net6.0-windows10.0.19041</TargetFrameworks>
     <TargetFrameworks>net472;net6.0;net7.0;net6.0-windows10.0.19041</TargetFrameworks>
     <NoWarn>$(NoWarn);CS0618</NoWarn>
     <NoWarn>$(NoWarn);CS0618</NoWarn>
   </PropertyGroup>
   </PropertyGroup>
 
 
-  <PropertyGroup Condition="'$(TargetFramework)' == 'net472'">
+  <PropertyGroup Condition="$(TargetFramework.StartsWith('net6.0-windows')) or '$(TargetFramework)' == 'net472'">
     <UseWPF>true</UseWPF>
     <UseWPF>true</UseWPF>
     <UseWindowsForms>true</UseWindowsForms>
     <UseWindowsForms>true</UseWindowsForms>
   </PropertyGroup>
   </PropertyGroup>
@@ -16,9 +17,21 @@
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />    
-    <PackageReference Include="xunit" Version="2.4.1" />
-    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" />
+    <!--
+    We need to be on a sufficiently recent version of the test framework, because we need this fix:
+      https://github.com/microsoft/testfx/pull/1071
+    Without this, the test runner fails to process Windows-version-specific TFMs for .NET 6.0.
+    Since the various libraries that require net6.0-windows all specify a minimum version (10.0.19041
+    for reasons not currently clear to me; idg10) this test project needs to specify at least as new
+    a version. If we write just net6.0-windows, that turns out to imply Windows 7.0, so it is not
+    considered compatible with a net6.0-windows10.0.19041 library.
+    Before that PR was merged, the test runner wouldn't work if the host specified a TFM with a
+    specific Windows version.
+-->
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
+    <PackageReference Include="MSTest.TestAdapter" Version="3.0.2" />
+    <PackageReference Include="MSTest.TestFramework" Version="3.0.2" />
+    <PackageReference Include="xunit.assert" Version="2.4.2" />
     <ProjectReference Include="..\..\src\System.Reactive\System.Reactive.csproj" />
     <ProjectReference Include="..\..\src\System.Reactive\System.Reactive.csproj" />
     <ProjectReference Include="..\..\src\System.Reactive.Observable.Aliases\System.Reactive.Observable.Aliases.csproj" />
     <ProjectReference Include="..\..\src\System.Reactive.Observable.Aliases\System.Reactive.Observable.Aliases.csproj" />
     <ProjectReference Include="..\..\src\Microsoft.Reactive.Testing\Microsoft.Reactive.Testing.csproj" />
     <ProjectReference Include="..\..\src\Microsoft.Reactive.Testing\Microsoft.Reactive.Testing.csproj" />

+ 5 - 2
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Aliases.cs

@@ -6,14 +6,17 @@ using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Observable.Aliases;
 using System.Reactive.Observable.Aliases;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
 
 
+    [TestClass]
     public partial class AliasesTest : ReactiveTest
     public partial class AliasesTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Qbservable_Aliases()
         public void Qbservable_Aliases()
         {
         {
             var xs = Observable.Return(1).AsQbservable();
             var xs = Observable.Return(1).AsQbservable();

+ 5 - 5
Rx.NET/Source/tests/Tests.System.Reactive/Tests/AnonymousTest.cs

@@ -5,20 +5,20 @@
 using System;
 using System;
 using System.Reactive;
 using System.Reactive;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class AnonymousTest
     public class AnonymousTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void AnonymousObservable_ArgumentChecking()
         public void AnonymousObservable_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new AnonymousObservable<int>(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => new AnonymousObservable<int>(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AnonymousObserver_ArgumentChecking()
         public void AnonymousObserver_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new AnonymousObserver<int>(default));
             ReactiveAssert.Throws<ArgumentNullException>(() => new AnonymousObserver<int>(default));
@@ -34,7 +34,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => new AnonymousObserver<int>(x => { }, ex => { }, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => new AnonymousObserver<int>(x => { }, ex => { }, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AnonymousObserver_Error_Null()
         public void AnonymousObserver_Error_Null()
         {
         {
             var observer = new AnonymousObserver<int>(_ => { }, e => { }, () => { });
             var observer = new AnonymousObserver<int>(_ => { }, e => { }, () => { });

+ 5 - 4
Rx.NET/Source/tests/Tests.System.Reactive/Tests/ArgumentValidationTest.cs

@@ -14,7 +14,7 @@ using System.Reactive.Subjects;
 using System.Reflection;
 using System.Reflection;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
@@ -22,6 +22,7 @@ namespace ReactiveTests.Tests
     /// Check if the Observable operator methods perform the proper
     /// Check if the Observable operator methods perform the proper
     /// argument validations en-masse with reflective checks.
     /// argument validations en-masse with reflective checks.
     /// </summary>
     /// </summary>
+    [TestClass]
     public class ArgumentValidationTest
     public class ArgumentValidationTest
     {
     {
         #region + Default values for the generic types +
         #region + Default values for the generic types +
@@ -81,7 +82,7 @@ namespace ReactiveTests.Tests
 
 
                 { "IEnumerable`1[IObservable`1[Int32]]", new[] { Observable.Return(1) } },
                 { "IEnumerable`1[IObservable`1[Int32]]", new[] { Observable.Return(1) } },
 
 
-                { "SynchronizationContext", SynchronizationContext.Current },
+                { "SynchronizationContext", SynchronizationContext.Current ?? new SynchronizationContext() },
 
 
                 { "IEqualityComparer`1[Int32]", EqualityComparer<int>.Default },
                 { "IEqualityComparer`1[Int32]", EqualityComparer<int>.Default },
 
 
@@ -269,13 +270,13 @@ namespace ReactiveTests.Tests
 
 
         #endregion
         #endregion
 
 
-        [Fact]
+        [TestMethod]
         public void Verify_Observable()
         public void Verify_Observable()
         {
         {
             VerifyClass(typeof(Observable));
             VerifyClass(typeof(Observable));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Verify_ObservableEx()
         public void Verify_ObservableEx()
         {
         {
             VerifyClass(typeof(ObservableEx));
             VerifyClass(typeof(ObservableEx));

+ 9 - 7
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/AsyncLockTest.cs

@@ -4,21 +4,23 @@
 
 
 using System;
 using System;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class AsyncLockTest
     public class AsyncLockTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Wait_ArgumentChecking()
         public void Wait_ArgumentChecking()
         {
         {
             var asyncLock = new AsyncLock();
             var asyncLock = new AsyncLock();
             Assert.Throws<ArgumentNullException>(() => asyncLock.Wait(null));
             Assert.Throws<ArgumentNullException>(() => asyncLock.Wait(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Wait_Graceful()
         public void Wait_Graceful()
         {
         {
             var ok = false;
             var ok = false;
@@ -26,7 +28,7 @@ namespace ReactiveTests.Tests
             Assert.True(ok);
             Assert.True(ok);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Wait_Fail()
         public void Wait_Fail()
         {
         {
             var l = new AsyncLock();
             var l = new AsyncLock();
@@ -46,7 +48,7 @@ namespace ReactiveTests.Tests
             l.Wait(() => { Assert.True(false); });
             l.Wait(() => { Assert.True(false); });
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Wait_QueuesWork()
         public void Wait_QueuesWork()
         {
         {
             var l = new AsyncLock();
             var l = new AsyncLock();
@@ -57,7 +59,7 @@ namespace ReactiveTests.Tests
             Assert.True(l2);
             Assert.True(l2);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Dispose()
         public void Dispose()
         {
         {
             var l = new AsyncLock();
             var l = new AsyncLock();

+ 6 - 4
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/ConcurrencyTest.cs

@@ -5,14 +5,16 @@
 using System;
 using System;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
 using System.Threading;
 using System.Threading;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class ConcurrencyTest
     public class ConcurrencyTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void CurrentScheduler_EnsureTrampoline()
         public void CurrentScheduler_EnsureTrampoline()
         {
         {
             const int concurrency = 100;
             const int concurrency = 100;
@@ -59,7 +61,7 @@ namespace ReactiveTests.Tests
             Assert.True(passed);
             Assert.True(passed);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CurrentScheduler_Schedule()
         public void CurrentScheduler_Schedule()
         {
         {
             const int concurrency = 100;
             const int concurrency = 100;

+ 18 - 16
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/ControlSchedulerTest.cs

@@ -10,35 +10,37 @@ using System.Reactive.Disposables;
 using System.Diagnostics;
 using System.Diagnostics;
 using System.Threading;
 using System.Threading;
 using System.Windows.Forms;
 using System.Windows.Forms;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 
 
+using Assert = Xunit.Assert;
+
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-    
+    [TestClass]
     public class ControlSchedulerTest
     public class ControlSchedulerTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Ctor_ArgumentChecking()
         public void Ctor_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new ControlScheduler(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => new ControlScheduler(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Control()
         public void Control()
         {
         {
             var lbl = new Label();
             var lbl = new Label();
             Assert.Same(lbl, new ControlScheduler(lbl).Control);
             Assert.Same(lbl, new ControlScheduler(lbl).Control);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Now()
         public void Now()
         {
         {
             var res = new ControlScheduler(new Label()).Now - DateTime.Now;
             var res = new ControlScheduler(new Label()).Now - DateTime.Now;
             Assert.True(res.Seconds < 1);
             Assert.True(res.Seconds < 1);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Schedule_ArgumentChecking()
         public void Schedule_ArgumentChecking()
         {
         {
             var s = new ControlScheduler(new Label());
             var s = new ControlScheduler(new Label());
@@ -47,7 +49,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => s.Schedule(42, DateTimeOffset.Now, default(Func<IScheduler, int, IDisposable>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => s.Schedule(42, DateTimeOffset.Now, default(Func<IScheduler, int, IDisposable>)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Schedule()
         public void Schedule()
         {
         {
             using (WinFormsTestUtils.RunTest(out var lbl))
             using (WinFormsTestUtils.RunTest(out var lbl))
@@ -65,7 +67,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleError()
         public void ScheduleError()
         {
         {
             using (WinFormsTestUtils.RunTest(out var lbl))
             using (WinFormsTestUtils.RunTest(out var lbl))
@@ -90,13 +92,13 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleRelative()
         public void ScheduleRelative()
         {
         {
             ScheduleRelative_(TimeSpan.FromSeconds(0.1));
             ScheduleRelative_(TimeSpan.FromSeconds(0.1));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleRelative_Zero()
         public void ScheduleRelative_Zero()
         {
         {
             ScheduleRelative_(TimeSpan.Zero);
             ScheduleRelative_(TimeSpan.Zero);
@@ -129,7 +131,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleRelative_Nested()
         public void ScheduleRelative_Nested()
         {
         {
             using (WinFormsTestUtils.RunTest(out var lbl))
             using (WinFormsTestUtils.RunTest(out var lbl))
@@ -160,7 +162,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleRelative_Cancel()
         public void ScheduleRelative_Cancel()
         {
         {
             using (WinFormsTestUtils.RunTest(out var lbl))
             using (WinFormsTestUtils.RunTest(out var lbl))
@@ -198,7 +200,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulePeriodic_ArgumentChecking()
         public void SchedulePeriodic_ArgumentChecking()
         {
         {
             var s = new ControlScheduler(new Label());
             var s = new ControlScheduler(new Label());
@@ -207,7 +209,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => s.SchedulePeriodic(42, TimeSpan.FromMilliseconds(1).Subtract(TimeSpan.FromTicks(1)), x => x));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => s.SchedulePeriodic(42, TimeSpan.FromMilliseconds(1).Subtract(TimeSpan.FromTicks(1)), x => x));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulePeriodic()
         public void SchedulePeriodic()
         {
         {
             using (WinFormsTestUtils.RunTest(out var lbl))
             using (WinFormsTestUtils.RunTest(out var lbl))
@@ -249,7 +251,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulePeriodic_Nested()
         public void SchedulePeriodic_Nested()
         {
         {
             using (WinFormsTestUtils.RunTest(out var lbl))
             using (WinFormsTestUtils.RunTest(out var lbl))
@@ -292,4 +294,4 @@ namespace ReactiveTests.Tests
         }
         }
     }
     }
 }
 }
-#endif
+#endif

+ 16 - 14
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/CurrentThreadSchedulerTest.cs

@@ -7,14 +7,16 @@ using System.Diagnostics;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class CurrentThreadSchedulerTest
     public class CurrentThreadSchedulerTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void CurrentThread_ArgumentChecking()
         public void CurrentThread_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.CurrentThread.Schedule(42, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.CurrentThread.Schedule(42, default));
@@ -22,7 +24,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.CurrentThread.Schedule(42, default(DateTimeOffset), default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.CurrentThread.Schedule(42, default(DateTimeOffset), default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CurrentThread_Now()
         public void CurrentThread_Now()
         {
         {
             var res = Scheduler.CurrentThread.Now - DateTime.Now;
             var res = Scheduler.CurrentThread.Now - DateTime.Now;
@@ -30,7 +32,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void CurrentThread_ScheduleAction()
         public void CurrentThread_ScheduleAction()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -40,7 +42,7 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void CurrentThread_ScheduleActionError()
         public void CurrentThread_ScheduleActionError()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -56,7 +58,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void CurrentThread_ScheduleActionNested()
         public void CurrentThread_ScheduleActionNested()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -69,7 +71,7 @@ namespace ReactiveTests.Tests
             Assert.True(ran);
             Assert.True(ran);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CurrentThread_ScheduleActionNested_TimeSpan()
         public void CurrentThread_ScheduleActionNested_TimeSpan()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -82,7 +84,7 @@ namespace ReactiveTests.Tests
             Assert.True(ran);
             Assert.True(ran);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CurrentThread_ScheduleActionDue()
         public void CurrentThread_ScheduleActionDue()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -91,7 +93,7 @@ namespace ReactiveTests.Tests
             Assert.True(ran, "ran");
             Assert.True(ran, "ran");
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CurrentThread_ScheduleActionDueNested()
         public void CurrentThread_ScheduleActionDueNested()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -109,7 +111,7 @@ namespace ReactiveTests.Tests
             Assert.True(ran, "ran");
             Assert.True(ran, "ran");
         }
         }
 #endif
 #endif
-        [Fact]
+        [TestMethod]
         public void CurrentThread_EnsureTrampoline()
         public void CurrentThread_EnsureTrampoline()
         {
         {
             var ran1 = false;
             var ran1 = false;
@@ -123,7 +125,7 @@ namespace ReactiveTests.Tests
             Assert.True(ran2);
             Assert.True(ran2);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CurrentThread_EnsureTrampoline_Nested()
         public void CurrentThread_EnsureTrampoline_Nested()
         {
         {
             var ran1 = false;
             var ran1 = false;
@@ -137,7 +139,7 @@ namespace ReactiveTests.Tests
             Assert.True(ran2);
             Assert.True(ran2);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CurrentThread_EnsureTrampolineAndCancel()
         public void CurrentThread_EnsureTrampolineAndCancel()
         {
         {
             var ran1 = false;
             var ran1 = false;
@@ -155,7 +157,7 @@ namespace ReactiveTests.Tests
             Assert.False(ran2);
             Assert.False(ran2);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CurrentThread_EnsureTrampolineAndCancelTimed()
         public void CurrentThread_EnsureTrampolineAndCancelTimed()
         {
         {
             var ran1 = false;
             var ran1 = false;

+ 12 - 10
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/DefaultSchedulerTest.cs

@@ -6,14 +6,16 @@ using System;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class DefaultSchedulerTest
     public class DefaultSchedulerTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Schedule_ArgumentChecking()
         public void Schedule_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => DefaultScheduler.Instance.Schedule(42, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => DefaultScheduler.Instance.Schedule(42, default));
@@ -23,14 +25,14 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => DefaultScheduler.Instance.SchedulePeriodic(42, TimeSpan.FromSeconds(-1), _ => _));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => DefaultScheduler.Instance.SchedulePeriodic(42, TimeSpan.FromSeconds(-1), _ => _));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Get_Now()
         public void Get_Now()
         {
         {
             var res = DefaultScheduler.Instance.Now - DateTime.Now;
             var res = DefaultScheduler.Instance.Now - DateTime.Now;
             Assert.True(res.Seconds < 1);
             Assert.True(res.Seconds < 1);
         }
         }
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void ScheduleAction()
         public void ScheduleAction()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -40,7 +42,7 @@ namespace ReactiveTests.Tests
             evt.WaitOne();
             evt.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleActionDue()
         public void ScheduleActionDue()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -50,7 +52,7 @@ namespace ReactiveTests.Tests
             evt.WaitOne();
             evt.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleActionCancel()
         public void ScheduleActionCancel()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -62,7 +64,7 @@ namespace ReactiveTests.Tests
             Assert.False(set);
             Assert.False(set);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Periodic_NonReentrant()
         public void Periodic_NonReentrant()
         {
         {
             var n = 0;
             var n = 0;
@@ -94,8 +96,8 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 #if DESKTOPCLR
 #if DESKTOPCLR
-        [Trait("SkipCI", "true")]
-        [Fact]
+        [TestCategory("SkipCI")]
+        [TestMethod]
         public void No_ThreadPool_Starvation_Dispose()
         public void No_ThreadPool_Starvation_Dispose()
         {
         {
             ThreadPool.GetAvailableThreads(out var bwt, out var bio);
             ThreadPool.GetAvailableThreads(out var bwt, out var bio);

+ 17 - 15
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/DispatcherSchedulerTest.cs

@@ -10,20 +10,22 @@ using System.Reactive.Disposables;
 using System.Threading;
 using System.Threading;
 using System.Windows.Threading;
 using System.Windows.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-    
+    [TestClass]
     public class DispatcherSchedulerTest : TestBase
     public class DispatcherSchedulerTest : TestBase
     {
     {
-        [Fact]
+        [TestMethod]
         public void Ctor_ArgumentChecking()
         public void Ctor_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new DispatcherScheduler(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => new DispatcherScheduler(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Current()
         public void Current()
         {
         {
             using (DispatcherHelpers.RunTest(out var d))
             using (DispatcherHelpers.RunTest(out var d))
@@ -40,7 +42,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Current_None()
         public void Current_None()
         {
         {
             var e = default(Exception);
             var e = default(Exception);
@@ -63,7 +65,7 @@ namespace ReactiveTests.Tests
             Assert.True(e != null && e is InvalidOperationException);
             Assert.True(e != null && e is InvalidOperationException);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Dispatcher()
         public void Dispatcher()
         {
         {
             using (DispatcherHelpers.RunTest(out var disp))
             using (DispatcherHelpers.RunTest(out var disp))
@@ -72,7 +74,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Now()
         public void Now()
         {
         {
             using (DispatcherHelpers.RunTest(out var disp))
             using (DispatcherHelpers.RunTest(out var disp))
@@ -82,7 +84,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Schedule_ArgumentChecking()
         public void Schedule_ArgumentChecking()
         {
         {
             using (DispatcherHelpers.RunTest(out var disp))
             using (DispatcherHelpers.RunTest(out var disp))
@@ -94,7 +96,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         [Asynchronous]
         [Asynchronous]
         public void Schedule()
         public void Schedule()
         {
         {
@@ -113,7 +115,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleError()
         public void ScheduleError()
         {
         {
             using (DispatcherHelpers.RunTest(out var disp))
             using (DispatcherHelpers.RunTest(out var disp))
@@ -138,13 +140,13 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleRelative()
         public void ScheduleRelative()
         {
         {
             ScheduleRelative_(TimeSpan.FromSeconds(0.2));
             ScheduleRelative_(TimeSpan.FromSeconds(0.2));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleRelative_Zero()
         public void ScheduleRelative_Zero()
         {
         {
             ScheduleRelative_(TimeSpan.Zero);
             ScheduleRelative_(TimeSpan.Zero);
@@ -175,7 +177,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleRelative_Cancel()
         public void ScheduleRelative_Cancel()
         {
         {
             using (DispatcherHelpers.RunTest(out var disp))
             using (DispatcherHelpers.RunTest(out var disp))
@@ -212,7 +214,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulePeriodic_ArgumentChecking()
         public void SchedulePeriodic_ArgumentChecking()
         {
         {
             using (DispatcherHelpers.RunTest(out var disp))
             using (DispatcherHelpers.RunTest(out var disp))
@@ -224,7 +226,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulePeriodic()
         public void SchedulePeriodic()
         {
         {
             using (DispatcherHelpers.RunTest(out var disp))
             using (DispatcherHelpers.RunTest(out var disp))

+ 25 - 23
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/EventLoopSchedulerTest.cs

@@ -10,19 +10,21 @@ using System.Reactive.Disposables;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 #if STRESS
 #if STRESS
 using ReactiveTests.Stress.Schedulers;
 using ReactiveTests.Stress.Schedulers;
 #endif
 #endif
 
 
+using Assert = Xunit.Assert;
+
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class EventLoopSchedulerTest
     public class EventLoopSchedulerTest
     {
     {
         private static readonly TimeSpan MaxWaitTime = TimeSpan.FromSeconds(10);
         private static readonly TimeSpan MaxWaitTime = TimeSpan.FromSeconds(10);
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_ArgumentChecking()
         public void EventLoop_ArgumentChecking()
         {
         {
             using var el = new EventLoopScheduler();
             using var el = new EventLoopScheduler();
@@ -37,7 +39,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => el.SchedulePeriodic(42, TimeSpan.FromSeconds(-1), _ => _));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => el.SchedulePeriodic(42, TimeSpan.FromSeconds(-1), _ => _));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_Now()
         public void EventLoop_Now()
         {
         {
             using var el = new EventLoopScheduler();
             using var el = new EventLoopScheduler();
@@ -46,7 +48,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.Seconds < 1);
             Assert.True(res.Seconds < 1);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_DisposeWithInFlightActions()
         public void EventLoop_DisposeWithInFlightActions()
         {
         {
             using (var scheduler = new EventLoopScheduler())
             using (var scheduler = new EventLoopScheduler())
@@ -59,7 +61,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_ScheduleAction()
         public void EventLoop_ScheduleAction()
         {
         {
             var ran = false;
             var ran = false;
@@ -75,7 +77,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void EventLoop_DifferentThread()
         public void EventLoop_DifferentThread()
         {
         {
             var id = default(int);
             var id = default(int);
@@ -91,7 +93,7 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_ScheduleOrderedActions()
         public void EventLoop_ScheduleOrderedActions()
         {
         {
             var results = new List<int>();
             var results = new List<int>();
@@ -107,7 +109,7 @@ namespace ReactiveTests.Tests
             results.AssertEqual(0, 1);
             results.AssertEqual(0, 1);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_SchedulerDisposed()
         public void EventLoop_SchedulerDisposed()
         {
         {
             var d = 0;
             var d = 0;
@@ -156,7 +158,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(2, d);
             Assert.Equal(2, d);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_ScheduleTimeOrderedActions()
         public void EventLoop_ScheduleTimeOrderedActions()
         {
         {
             var results = new List<int>();
             var results = new List<int>();
@@ -173,7 +175,7 @@ namespace ReactiveTests.Tests
             results.AssertEqual(1, 0);
             results.AssertEqual(1, 0);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_ScheduleOrderedAndTimedActions()
         public void EventLoop_ScheduleOrderedAndTimedActions()
         {
         {
             var results = new List<int>();
             var results = new List<int>();
@@ -190,7 +192,7 @@ namespace ReactiveTests.Tests
             results.AssertEqual(1, 0);
             results.AssertEqual(1, 0);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_ScheduleTimeOrderedInFlightActions()
         public void EventLoop_ScheduleTimeOrderedInFlightActions()
         {
         {
             var results = new List<int>();
             var results = new List<int>();
@@ -212,7 +214,7 @@ namespace ReactiveTests.Tests
             results.AssertEqual(0, 1, 2);
             results.AssertEqual(0, 1, 2);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_ScheduleTimeAndOrderedInFlightActions()
         public void EventLoop_ScheduleTimeAndOrderedInFlightActions()
         {
         {
             var results = new List<int>();
             var results = new List<int>();
@@ -235,7 +237,7 @@ namespace ReactiveTests.Tests
             results.AssertEqual(0, 4, 1, 2);
             results.AssertEqual(0, 4, 1, 2);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_ScheduleActionNested()
         public void EventLoop_ScheduleActionNested()
         {
         {
             var ran = false;
             var ran = false;
@@ -250,7 +252,7 @@ namespace ReactiveTests.Tests
             Assert.True(ran);
             Assert.True(ran);
         }
         }
 
 
-        [Fact(Skip = "")]
+        [TestMethod]
         public void EventLoop_ScheduleActionDue()
         public void EventLoop_ScheduleActionDue()
         {
         {
             var ran = false;
             var ran = false;
@@ -269,7 +271,7 @@ namespace ReactiveTests.Tests
             Assert.True(sw.ElapsedMilliseconds > 180, "due " + sw.ElapsedMilliseconds);
             Assert.True(sw.ElapsedMilliseconds > 180, "due " + sw.ElapsedMilliseconds);
         }
         }
 
 
-        [Fact(Skip = "")]
+        [TestMethod]
         public void EventLoop_ScheduleActionDueNested()
         public void EventLoop_ScheduleActionDueNested()
         {
         {
             var ran = false;
             var ran = false;
@@ -296,7 +298,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_PERF
 #if !NO_PERF
-        [Fact]
+        [TestMethod]
         public void Stopwatch()
         public void Stopwatch()
         {
         {
             using var el = new EventLoopScheduler();
             using var el = new EventLoopScheduler();
@@ -304,7 +306,7 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_Immediate()
         public void EventLoop_Immediate()
         {
         {
             var M = 1000;
             var M = 1000;
@@ -335,7 +337,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_TimeCollisions()
         public void EventLoop_TimeCollisions()
         {
         {
             var M = 1000;
             var M = 1000;
@@ -366,7 +368,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_Spread()
         public void EventLoop_Spread()
         {
         {
             var M = 1000;
             var M = 1000;
@@ -397,7 +399,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void EventLoop_Periodic()
         public void EventLoop_Periodic()
         {
         {
             var n = 0;
             var n = 0;
@@ -424,7 +426,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if STRESS
 #if STRESS
-        [Fact]
+        [TestMethod]
         public void EventLoop_Stress()
         public void EventLoop_Stress()
         {
         {
             EventLoop.NoSemaphoreFullException();
             EventLoop.NoSemaphoreFullException();
@@ -432,7 +434,7 @@ namespace ReactiveTests.Tests
 #endif
 #endif
 
 
 #if DESKTOPCLR
 #if DESKTOPCLR
-        [Fact]
+        [TestMethod]
         public void EventLoop_CorrectWorkStealing()
         public void EventLoop_CorrectWorkStealing()
         {
         {
             const int workItemCount = 100;
             const int workItemCount = 100;

+ 20 - 18
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/HistoricalSchedulerTest.cs

@@ -8,11 +8,13 @@ using System.Linq;
 using System.Reactive;
 using System.Reactive;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class HistoricalSchedulerTest
     public class HistoricalSchedulerTest
     {
     {
         public DateTimeOffset Time(int i)
         public DateTimeOffset Time(int i)
@@ -20,7 +22,7 @@ namespace ReactiveTests.Tests
             return new DateTimeOffset(1979, 10, 31, 4, 30, 15, TimeSpan.Zero).AddDays(i);
             return new DateTimeOffset(1979, 10, 31, 4, 30, 15, TimeSpan.Zero).AddDays(i);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Ctor()
         public void Ctor()
         {
         {
             var s = new HistoricalScheduler();
             var s = new HistoricalScheduler();
@@ -30,7 +32,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(false, s.IsEnabled);
             Assert.Equal(false, s.IsEnabled);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Start_Stop()
         public void Start_Stop()
         {
         {
             var s = new HistoricalScheduler();
             var s = new HistoricalScheduler();
@@ -75,7 +77,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Order()
         public void Order()
         {
         {
             var s = new HistoricalScheduler();
             var s = new HistoricalScheduler();
@@ -99,7 +101,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Cancellation()
         public void Cancellation()
         {
         {
             var s = new HistoricalScheduler();
             var s = new HistoricalScheduler();
@@ -121,7 +123,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AdvanceTo_ArgumentChecking()
         public void AdvanceTo_ArgumentChecking()
         {
         {
             var now = DateTimeOffset.Now;
             var now = DateTimeOffset.Now;
@@ -131,7 +133,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => s.AdvanceTo(now.Subtract(TimeSpan.FromSeconds(1))));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => s.AdvanceTo(now.Subtract(TimeSpan.FromSeconds(1))));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AdvanceTo()
         public void AdvanceTo()
         {
         {
             var s = new HistoricalScheduler();
             var s = new HistoricalScheduler();
@@ -210,7 +212,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AdvanceBy_ArgumentChecking()
         public void AdvanceBy_ArgumentChecking()
         {
         {
             var s = new HistoricalScheduler();
             var s = new HistoricalScheduler();
@@ -218,7 +220,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => s.AdvanceBy(TimeSpan.FromSeconds(-1)));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => s.AdvanceBy(TimeSpan.FromSeconds(-1)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AdvanceBy()
         public void AdvanceBy()
         {
         {
             var s = new HistoricalScheduler();
             var s = new HistoricalScheduler();
@@ -297,7 +299,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void IsEnabled()
         public void IsEnabled()
         {
         {
             var s = new HistoricalScheduler();
             var s = new HistoricalScheduler();
@@ -318,7 +320,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(false, s.IsEnabled);
             Assert.Equal(false, s.IsEnabled);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void No_Nested_AdvanceBy()
         public void No_Nested_AdvanceBy()
         {
         {
             var s = new HistoricalScheduler();
             var s = new HistoricalScheduler();
@@ -328,7 +330,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<InvalidOperationException>(() => s.Start());
             ReactiveAssert.Throws<InvalidOperationException>(() => s.Start());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void No_Nested_AdvanceTo()
         public void No_Nested_AdvanceTo()
         {
         {
             var s = new HistoricalScheduler();
             var s = new HistoricalScheduler();
@@ -338,7 +340,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<InvalidOperationException>(() => s.Start());
             ReactiveAssert.Throws<InvalidOperationException>(() => s.Start());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Sleep_ArgumentChecking()
         public void Sleep_ArgumentChecking()
         {
         {
             var s = new HistoricalScheduler(DateTimeOffset.Now);
             var s = new HistoricalScheduler(DateTimeOffset.Now);
@@ -346,7 +348,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => s.Sleep(TimeSpan.FromSeconds(-1)));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => s.Sleep(TimeSpan.FromSeconds(-1)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Sleep1()
         public void Sleep1()
         {
         {
             var now = new DateTimeOffset(1983, 2, 11, 12, 0, 0, TimeSpan.Zero);
             var now = new DateTimeOffset(1983, 2, 11, 12, 0, 0, TimeSpan.Zero);
@@ -358,7 +360,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(now + TimeSpan.FromDays(1), s.Clock);
             Assert.Equal(now + TimeSpan.FromDays(1), s.Clock);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Sleep2()
         public void Sleep2()
         {
         {
             var s = new HistoricalScheduler();
             var s = new HistoricalScheduler();
@@ -378,13 +380,13 @@ namespace ReactiveTests.Tests
             Assert.Equal(2, n);
             Assert.Equal(2, n);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void WithComparer_ArgumentChecking()
         public void WithComparer_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new HistoricalScheduler(DateTimeOffset.Now, null));
             ReactiveAssert.Throws<ArgumentNullException>(() => new HistoricalScheduler(DateTimeOffset.Now, null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void WithComparer()
         public void WithComparer()
         {
         {
             var now = DateTimeOffset.Now;
             var now = DateTimeOffset.Now;

+ 16 - 14
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/ImmediateSchedulerTest.cs

@@ -8,21 +8,23 @@ using System.Reactive.Concurrency;
 using System.Reactive.Disposables;
 using System.Reactive.Disposables;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class ImmediateSchedulerTest
     public class ImmediateSchedulerTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Immediate_Now()
         public void Immediate_Now()
         {
         {
             var res = Scheduler.Immediate.Now - DateTime.Now;
             var res = Scheduler.Immediate.Now - DateTime.Now;
             Assert.True(res.Seconds < 1);
             Assert.True(res.Seconds < 1);
         }
         }
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void Immediate_ScheduleAction()
         public void Immediate_ScheduleAction()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -32,7 +34,7 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void Immediate_ScheduleActionError()
         public void Immediate_ScheduleActionError()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -48,7 +50,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Immediate_ArgumentChecking()
         public void Immediate_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Immediate.Schedule(42, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Immediate.Schedule(42, default));
@@ -56,7 +58,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Immediate.Schedule(42, TimeSpan.Zero, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Immediate.Schedule(42, TimeSpan.Zero, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Immediate_Simple1()
         public void Immediate_Simple1()
         {
         {
             var _x = 0;
             var _x = 0;
@@ -64,7 +66,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(42, _x);
             Assert.Equal(42, _x);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Immediate_Simple2()
         public void Immediate_Simple2()
         {
         {
             var _x = 0;
             var _x = 0;
@@ -72,7 +74,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(42, _x);
             Assert.Equal(42, _x);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Immediate_Simple3()
         public void Immediate_Simple3()
         {
         {
             var _x = 0;
             var _x = 0;
@@ -80,7 +82,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(42, _x);
             Assert.Equal(42, _x);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Immediate_Recursive1()
         public void Immediate_Recursive1()
         {
         {
             var _x = 0;
             var _x = 0;
@@ -90,7 +92,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(43, _y);
             Assert.Equal(43, _y);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Immediate_Recursive2()
         public void Immediate_Recursive2()
         {
         {
             var _x = 0;
             var _x = 0;
@@ -100,7 +102,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(43, _y);
             Assert.Equal(43, _y);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Immediate_Recursive3()
         public void Immediate_Recursive3()
         {
         {
             var _x = 0;
             var _x = 0;
@@ -110,7 +112,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(43, _y);
             Assert.Equal(43, _y);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Immediate_ArgumentChecking_More()
         public void Immediate_ArgumentChecking_More()
         {
         {
             Scheduler.Immediate.Schedule(42, (self, state) =>
             Scheduler.Immediate.Schedule(42, (self, state) =>
@@ -145,7 +147,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void Immediate_ScheduleActionDue()
         public void Immediate_ScheduleActionDue()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;

+ 11 - 8
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/NewThreadSchedulerTest.cs

@@ -7,14 +7,17 @@ using System.Diagnostics;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
 #if !NO_THREAD
 #if !NO_THREAD
+    [TestClass]
     public class NewThreadSchedulerTest
     public class NewThreadSchedulerTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void NewThread_ArgumentChecking()
         public void NewThread_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new NewThreadScheduler(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => new NewThreadScheduler(null));
@@ -26,14 +29,14 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => NewThreadScheduler.Default.SchedulePeriodic(42, TimeSpan.FromSeconds(-1), _ => _));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => NewThreadScheduler.Default.SchedulePeriodic(42, TimeSpan.FromSeconds(-1), _ => _));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void NewThread_Now()
         public void NewThread_Now()
         {
         {
             var res = NewThreadScheduler.Default.Now - DateTime.Now;
             var res = NewThreadScheduler.Default.Now - DateTime.Now;
             Assert.True(res.Seconds < 1);
             Assert.True(res.Seconds < 1);
         }
         }
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void NewThread_ScheduleAction()
         public void NewThread_ScheduleAction()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -43,7 +46,7 @@ namespace ReactiveTests.Tests
             evt.WaitOne();
             evt.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void NewThread_ScheduleActionDue()
         public void NewThread_ScheduleActionDue()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -55,14 +58,14 @@ namespace ReactiveTests.Tests
 #endif
 #endif
 
 
 #if !NO_PERF
 #if !NO_PERF
-        [Fact]
+        [TestMethod]
         public void Stopwatch()
         public void Stopwatch()
         {
         {
             StopwatchTest.Run(NewThreadScheduler.Default);
             StopwatchTest.Run(NewThreadScheduler.Default);
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void NewThread_Periodic()
         public void NewThread_Periodic()
         {
         {
             var n = 0;
             var n = 0;
@@ -85,7 +88,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void NewThread_Periodic_NonReentrant()
         public void NewThread_Periodic_NonReentrant()
         {
         {
             var n = 0;
             var n = 0;

+ 7 - 5
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/ScheduledItemTest.cs

@@ -7,14 +7,16 @@ using System.Collections.Generic;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
 using System.Reactive.Disposables;
 using System.Reactive.Disposables;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests
 namespace ReactiveTests
 {
 {
-
+    [TestClass]
     public class ScheduledItemTest : ReactiveTest
     public class ScheduledItemTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void ArgumentChecking()
         public void ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new ScheduledItem<DateTimeOffset, int>(default, 42, (x, y) => Disposable.Empty, DateTimeOffset.Now));
             ReactiveAssert.Throws<ArgumentNullException>(() => new ScheduledItem<DateTimeOffset, int>(default, 42, (x, y) => Disposable.Empty, DateTimeOffset.Now));
@@ -25,7 +27,7 @@ namespace ReactiveTests
             ReactiveAssert.Throws<ArgumentNullException>(() => new ScheduledItem<DateTimeOffset, int>(Scheduler.Default, 42, (x, y) => Disposable.Empty, DateTimeOffset.Now, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => new ScheduledItem<DateTimeOffset, int>(Scheduler.Default, 42, (x, y) => Disposable.Empty, DateTimeOffset.Now, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Inequalities()
         public void Inequalities()
         {
         {
             var si1 = new SI(42);
             var si1 = new SI(42);
@@ -79,7 +81,7 @@ namespace ReactiveTests
             Assert.False(si5 <= si4);
             Assert.False(si5 <= si4);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Equalities()
         public void Equalities()
         {
         {
             var si1 = new SI2(42, 123);
             var si1 = new SI2(42, 123);

+ 55 - 54
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/SchedulerTest.cs

@@ -11,7 +11,7 @@ using System.Reactive.Linq;
 using System.Reactive.PlatformServices;
 using System.Reactive.PlatformServices;
 using System.Runtime.CompilerServices;
 using System.Runtime.CompilerServices;
 using System.Threading;
 using System.Threading;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 
 
 #if HAS_WINFORMS
 #if HAS_WINFORMS
@@ -20,15 +20,16 @@ using System.Windows.Forms;
 
 
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 
 
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class SchedulerTest : ReactiveTest
     public class SchedulerTest : ReactiveTest
     {
     {
         #region IScheduler
         #region IScheduler
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_ArgumentChecks()
         public void Scheduler_ArgumentChecks()
         {
         {
             var ms = new MyScheduler();
             var ms = new MyScheduler();
@@ -50,7 +51,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Schedule(ms, 1, TimeSpan.Zero, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Schedule(ms, 1, TimeSpan.Zero, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Schedulers_ArgumentChecks()
         public void Schedulers_ArgumentChecks()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.CurrentThread.Schedule(default(Action)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.CurrentThread.Schedule(default(Action)));
@@ -109,7 +110,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => new SynchronizationContextScheduler(ctx).Schedule(DateTimeOffset.MaxValue, default(Action)));
             ReactiveAssert.Throws<ArgumentNullException>(() => new SynchronizationContextScheduler(ctx).Schedule(DateTimeOffset.MaxValue, default(Action)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_ScheduleNonRecursive()
         public void Scheduler_ScheduleNonRecursive()
         {
         {
             var ms = new MyScheduler();
             var ms = new MyScheduler();
@@ -118,7 +119,7 @@ namespace ReactiveTests.Tests
             Assert.True(res);
             Assert.True(res);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_ScheduleRecursive()
         public void Scheduler_ScheduleRecursive()
         {
         {
             var ms = new MyScheduler();
             var ms = new MyScheduler();
@@ -127,7 +128,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(10, i);
             Assert.Equal(10, i);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_Schedule_With_State()
         public void Scheduler_Schedule_With_State()
         {
         {
             var ms = new MyScheduler();
             var ms = new MyScheduler();
@@ -136,7 +137,7 @@ namespace ReactiveTests.Tests
             Assert.True(res);
             Assert.True(res);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_ScheduleWithTimeNonRecursive()
         public void Scheduler_ScheduleWithTimeNonRecursive()
         {
         {
             var now = DateTimeOffset.Now;
             var now = DateTimeOffset.Now;
@@ -147,7 +148,7 @@ namespace ReactiveTests.Tests
             Assert.True(ms.WaitCycles == 0);
             Assert.True(ms.WaitCycles == 0);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_ScheduleWithTimeRecursive()
         public void Scheduler_ScheduleWithTimeRecursive()
         {
         {
             var now = DateTimeOffset.Now;
             var now = DateTimeOffset.Now;
@@ -158,7 +159,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(10, i);
             Assert.Equal(10, i);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_ScheduleWithTimeSpanNonRecursive()
         public void Scheduler_ScheduleWithTimeSpanNonRecursive()
         {
         {
             var now = DateTimeOffset.Now;
             var now = DateTimeOffset.Now;
@@ -169,7 +170,7 @@ namespace ReactiveTests.Tests
             Assert.True(ms.WaitCycles == 0);
             Assert.True(ms.WaitCycles == 0);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_ScheduleWithTimeSpanRecursive()
         public void Scheduler_ScheduleWithTimeSpanRecursive()
         {
         {
             var now = DateTimeOffset.Now;
             var now = DateTimeOffset.Now;
@@ -180,7 +181,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(10, i);
             Assert.Equal(10, i);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_StateThreading()
         public void Scheduler_StateThreading()
         {
         {
             var lst = new List<int>();
             var lst = new List<int>();
@@ -196,7 +197,7 @@ namespace ReactiveTests.Tests
             Assert.True(lst.SequenceEqual(Enumerable.Range(0, 10)));
             Assert.True(lst.SequenceEqual(Enumerable.Range(0, 10)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_Builtins()
         public void Scheduler_Builtins()
         {
         {
             // Default
             // Default
@@ -243,7 +244,7 @@ namespace ReactiveTests.Tests
 #if !NO_PERF
 #if !NO_PERF
 
 
 #if !WINDOWS && !NO_THREAD
 #if !WINDOWS && !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void Scheduler_LongRunning_ArgumentChecking()
         public void Scheduler_LongRunning_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.ScheduleLongRunning(null, c => { }));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.ScheduleLongRunning(null, c => { }));
@@ -257,7 +258,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.ScheduleLongRunning(ThreadPoolScheduler.Instance, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.ScheduleLongRunning(ThreadPoolScheduler.Instance, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_Periodic_ArgumentChecking()
         public void Scheduler_Periodic_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.SchedulePeriodic(null, TimeSpan.FromSeconds(1), () => { }));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.SchedulePeriodic(null, TimeSpan.FromSeconds(1), () => { }));
@@ -274,13 +275,13 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_Stopwatch_Emulation()
         public void Scheduler_Stopwatch_Emulation()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.StartStopwatch(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.StartStopwatch(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_LongRunning1()
         public void Scheduler_LongRunning1()
         {
         {
             var s = TaskPoolScheduler.Default;
             var s = TaskPoolScheduler.Default;
@@ -304,7 +305,7 @@ namespace ReactiveTests.Tests
             e.WaitOne();
             e.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_LongRunning2()
         public void Scheduler_LongRunning2()
         {
         {
             var s = TaskPoolScheduler.Default;
             var s = TaskPoolScheduler.Default;
@@ -336,7 +337,7 @@ namespace ReactiveTests.Tests
 #if !NO_PERF
 #if !NO_PERF
 
 
 #if !WINDOWS && !NO_THREAD
 #if !WINDOWS && !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void Scheduler_Periodic1()
         public void Scheduler_Periodic1()
         {
         {
             var n = 0;
             var n = 0;
@@ -354,7 +355,7 @@ namespace ReactiveTests.Tests
             d.Dispose();
             d.Dispose();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Scheduler_Periodic2()
         public void Scheduler_Periodic2()
         {
         {
             var n = 0;
             var n = 0;
@@ -376,7 +377,7 @@ namespace ReactiveTests.Tests
 #endif
 #endif
 
 
 #if DESKTOPCLR && NET472
 #if DESKTOPCLR && NET472
-        [Fact]
+        [TestMethod]
         public void Scheduler_Periodic_HostLifecycleManagement()
         public void Scheduler_Periodic_HostLifecycleManagement()
         {
         {
             var cur = AppDomain.CurrentDomain.BaseDirectory;
             var cur = AppDomain.CurrentDomain.BaseDirectory;
@@ -476,7 +477,7 @@ namespace ReactiveTests.Tests
         #region DisableOptimizations
         #region DisableOptimizations
 
 
 #if !NO_PERF
 #if !NO_PERF
-        [Fact]
+        [TestMethod]
         public void DisableOptimizations_ArgumentChecking()
         public void DisableOptimizations_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.DisableOptimizations(default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.DisableOptimizations(default));
@@ -489,7 +490,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.DisableOptimizations(Scheduler.Default).Schedule(42, DateTimeOffset.Now, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.DisableOptimizations(Scheduler.Default).Schedule(42, DateTimeOffset.Now, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DisableOptimizations1()
         public void DisableOptimizations1()
         {
         {
             var s = TaskPoolScheduler.Default;
             var s = TaskPoolScheduler.Default;
@@ -525,7 +526,7 @@ namespace ReactiveTests.Tests
             e3.WaitOne();
             e3.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DisableOptimizations2()
         public void DisableOptimizations2()
         {
         {
             var s = TaskPoolScheduler.Default;
             var s = TaskPoolScheduler.Default;
@@ -567,7 +568,7 @@ namespace ReactiveTests.Tests
             e2.WaitOne();
             e2.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DisableOptimizations3()
         public void DisableOptimizations3()
         {
         {
             var s = TaskPoolScheduler.Default;
             var s = TaskPoolScheduler.Default;
@@ -622,7 +623,7 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void DisableOptimizations_UnknownService()
         public void DisableOptimizations_UnknownService()
         {
         {
             var s = new MyScheduler();
             var s = new MyScheduler();
@@ -676,7 +677,7 @@ namespace ReactiveTests.Tests
 
 
         #region Catch
         #region Catch
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_ArgumentChecking()
         public void Catch_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Catch<Exception>(default, _ => true));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Catch<Exception>(default, _ => true));
@@ -687,7 +688,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Catch<Exception>(Scheduler.Default, _ => true).Schedule(42, DateTimeOffset.Now, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Catch<Exception>(Scheduler.Default, _ => true).Schedule(42, DateTimeOffset.Now, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Builtin_Swallow_Shallow()
         public void Catch_Builtin_Swallow_Shallow()
         {
         {
             var done = new ManualResetEvent(false);
             var done = new ManualResetEvent(false);
@@ -702,7 +703,7 @@ namespace ReactiveTests.Tests
             done.WaitOne();
             done.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Builtin_Swallow_Recursive()
         public void Catch_Builtin_Swallow_Recursive()
         {
         {
             var done = new ManualResetEvent(false);
             var done = new ManualResetEvent(false);
@@ -720,7 +721,7 @@ namespace ReactiveTests.Tests
             done.WaitOne();
             done.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Custom_Unhandled()
         public void Catch_Custom_Unhandled()
         {
         {
             var err = default(Exception);
             var err = default(Exception);
@@ -740,7 +741,7 @@ namespace ReactiveTests.Tests
             Assert.Same(ex, err);
             Assert.Same(ex, err);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Custom_Rethrow()
         public void Catch_Custom_Rethrow()
         {
         {
             var err = default(Exception);
             var err = default(Exception);
@@ -754,7 +755,7 @@ namespace ReactiveTests.Tests
             Assert.Same(ex, err);
             Assert.Same(ex, err);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Custom_LongRunning_Caught()
         public void Catch_Custom_LongRunning_Caught()
         {
         {
             var err = default(Exception);
             var err = default(Exception);
@@ -779,7 +780,7 @@ namespace ReactiveTests.Tests
             Assert.Same(ex, err);
             Assert.Same(ex, err);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Custom_LongRunning_Rethrow()
         public void Catch_Custom_LongRunning_Rethrow()
         {
         {
             var err = default(Exception);
             var err = default(Exception);
@@ -803,7 +804,7 @@ namespace ReactiveTests.Tests
             Assert.Same(ex, err);
             Assert.Same(ex, err);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Custom_Periodic_Regular()
         public void Catch_Custom_Periodic_Regular()
         {
         {
             var scheduler = new MyExceptionScheduler(_ => { })
             var scheduler = new MyExceptionScheduler(_ => { })
@@ -830,7 +831,7 @@ namespace ReactiveTests.Tests
             scheduler.PeriodicStopped.WaitOne();
             scheduler.PeriodicStopped.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Custom_Periodic_Uncaught1()
         public void Catch_Custom_Periodic_Uncaught1()
         {
         {
             var err = default(Exception);
             var err = default(Exception);
@@ -854,7 +855,7 @@ namespace ReactiveTests.Tests
             Assert.Same(ex, err);
             Assert.Same(ex, err);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Custom_Periodic_Uncaught2()
         public void Catch_Custom_Periodic_Uncaught2()
         {
         {
             var err = default(Exception);
             var err = default(Exception);
@@ -878,7 +879,7 @@ namespace ReactiveTests.Tests
             Assert.Same(ex, err);
             Assert.Same(ex, err);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Custom_Periodic_Caught()
         public void Catch_Custom_Periodic_Caught()
         {
         {
             var err = default(Exception);
             var err = default(Exception);
@@ -984,7 +985,7 @@ namespace ReactiveTests.Tests
 
 
         #region Services
         #region Services
 
 
-        [Fact]
+        [TestMethod]
         public void InvalidService_Null()
         public void InvalidService_Null()
         {
         {
             var s = new MySchedulerWithoutServices();
             var s = new MySchedulerWithoutServices();
@@ -999,7 +1000,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DetectServices_Null_1()
         public void DetectServices_Null_1()
         {
         {
             var s = new MyDumbScheduler1();
             var s = new MyDumbScheduler1();
@@ -1031,7 +1032,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DetectServices_Null_2()
         public void DetectServices_Null_2()
         {
         {
             var s = new MyDumbScheduler2(new Dictionary<Type, object>());
             var s = new MyDumbScheduler2(new Dictionary<Type, object>());
@@ -1040,7 +1041,7 @@ namespace ReactiveTests.Tests
             Assert.Null(Scheduler.AsStopwatchProvider(s));
             Assert.Null(Scheduler.AsStopwatchProvider(s));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DetectServices_Found()
         public void DetectServices_Found()
         {
         {
             {
             {
@@ -1143,14 +1144,14 @@ namespace ReactiveTests.Tests
 
 
         #endregion
         #endregion
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulerAsync_Yield_ArgumentChecking()
         public void SchedulerAsync_Yield_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Yield(default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Yield(default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Yield(default, CancellationToken.None));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Yield(default, CancellationToken.None));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulerAsync_Sleep_ArgumentChecking()
         public void SchedulerAsync_Sleep_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Sleep(default, TimeSpan.Zero));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Sleep(default, TimeSpan.Zero));
@@ -1160,7 +1161,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Sleep(default, DateTimeOffset.MinValue, CancellationToken.None));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.Sleep(default, DateTimeOffset.MinValue, CancellationToken.None));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulerAsync_ScheduleAsync_ArgumentChecking()
         public void SchedulerAsync_ScheduleAsync_ArgumentChecking()
         {
         {
             var tcs = new TaskCompletionSource<IDisposable>();
             var tcs = new TaskCompletionSource<IDisposable>();
@@ -1213,7 +1214,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.ScheduleAsync(s, at, d4));
             ReactiveAssert.Throws<ArgumentNullException>(() => Scheduler.ScheduleAsync(s, at, d4));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulerAsync_ScheduleAsync_Overloads1()
         public void SchedulerAsync_ScheduleAsync_Overloads1()
         {
         {
             var tcsI = new TaskCompletionSource<int>();
             var tcsI = new TaskCompletionSource<int>();
@@ -1262,7 +1263,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulerAsync_ScheduleAsync_Overloads2()
         public void SchedulerAsync_ScheduleAsync_Overloads2()
         {
         {
             var tcsI = new TaskCompletionSource<int>();
             var tcsI = new TaskCompletionSource<int>();
@@ -1311,7 +1312,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulerAsync_ScheduleAsync_Overloads3()
         public void SchedulerAsync_ScheduleAsync_Overloads3()
         {
         {
             var tcsI = new TaskCompletionSource<int>();
             var tcsI = new TaskCompletionSource<int>();
@@ -1360,7 +1361,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulerAsync_ScheduleAsync_NoCancellation1()
         public void SchedulerAsync_ScheduleAsync_NoCancellation1()
         {
         {
             var s = new TestScheduler();
             var s = new TestScheduler();
@@ -1394,7 +1395,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulerAsync_ScheduleAsync_NoCancellation2()
         public void SchedulerAsync_ScheduleAsync_NoCancellation2()
         {
         {
             var s = new TestScheduler();
             var s = new TestScheduler();
@@ -1428,7 +1429,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulerAsync_Awaiters()
         public void SchedulerAsync_Awaiters()
         {
         {
             var op = Scheduler.Immediate.Yield();
             var op = Scheduler.Immediate.Yield();
@@ -1441,7 +1442,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<InvalidOperationException>(() => aw.OnCompleted(() => { }));
             ReactiveAssert.Throws<InvalidOperationException>(() => aw.OnCompleted(() => { }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulerAsync_Yield_Cancel1()
         public void SchedulerAsync_Yield_Cancel1()
         {
         {
             var cts = new CancellationTokenSource();
             var cts = new CancellationTokenSource();
@@ -1456,7 +1457,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<OperationCanceledException>(() => aw.GetResult());
             ReactiveAssert.Throws<OperationCanceledException>(() => aw.GetResult());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulerAsync_Yield_Cancel2()
         public void SchedulerAsync_Yield_Cancel2()
         {
         {
             var cts = new CancellationTokenSource();
             var cts = new CancellationTokenSource();
@@ -1479,7 +1480,7 @@ namespace ReactiveTests.Tests
             });
             });
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulerAsync_Sleep_Cancel()
         public void SchedulerAsync_Sleep_Cancel()
         {
         {
             var cts = new CancellationTokenSource();
             var cts = new CancellationTokenSource();
@@ -1505,7 +1506,7 @@ namespace ReactiveTests.Tests
 
 
 #if !NO_SYNCCTX
 #if !NO_SYNCCTX
 
 
-        [Fact]
+        [TestMethod]
         public void SchedulerAsync_ScheduleAsync_SyncCtx()
         public void SchedulerAsync_ScheduleAsync_SyncCtx()
         {
         {
             var old = SynchronizationContext.Current;
             var old = SynchronizationContext.Current;

+ 16 - 14
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/SynchronizationContextSchedulerTest.cs

@@ -8,14 +8,16 @@ using System.Reactive.Concurrency;
 using System.Reactive.Disposables;
 using System.Reactive.Disposables;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class SynchronizationContextSchedulerTest
     public class SynchronizationContextSchedulerTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void SynchronizationContext_ArgumentChecking()
         public void SynchronizationContext_ArgumentChecking()
         {
         {
             var ms = new MySync();
             var ms = new MySync();
@@ -28,7 +30,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => s.Schedule(42, TimeSpan.Zero, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => s.Schedule(42, TimeSpan.Zero, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SynchronizationContext_Now()
         public void SynchronizationContext_Now()
         {
         {
             var ms = new MySync();
             var ms = new MySync();
@@ -38,7 +40,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.Seconds < 1);
             Assert.True(res.Seconds < 1);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SynchronizationContext_ScheduleAction()
         public void SynchronizationContext_ScheduleAction()
         {
         {
             var ms = new MySync();
             var ms = new MySync();
@@ -50,7 +52,7 @@ namespace ReactiveTests.Tests
             Assert.True(ran);
             Assert.True(ran);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SynchronizationContext_ScheduleAction_TimeSpan()
         public void SynchronizationContext_ScheduleAction_TimeSpan()
         {
         {
             var ms = new MySync();
             var ms = new MySync();
@@ -63,7 +65,7 @@ namespace ReactiveTests.Tests
             Assert.True(ms.Count == 1);
             Assert.True(ms.Count == 1);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SynchronizationContext_ScheduleAction_DateTimeOffset()
         public void SynchronizationContext_ScheduleAction_DateTimeOffset()
         {
         {
             var ms = new MySync();
             var ms = new MySync();
@@ -76,7 +78,7 @@ namespace ReactiveTests.Tests
             Assert.True(ms.Count >= 1); // Can be > 1 in case of timer queue retry operations.
             Assert.True(ms.Count >= 1); // Can be > 1 in case of timer queue retry operations.
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SynchronizationContext_ScheduleActionError()
         public void SynchronizationContext_ScheduleActionError()
         {
         {
             var ms = new MySync();
             var ms = new MySync();
@@ -97,7 +99,7 @@ namespace ReactiveTests.Tests
             Assert.True(ms.Count == 1);
             Assert.True(ms.Count == 1);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SynchronizationContext_ScheduleActionDue()
         public void SynchronizationContext_ScheduleActionDue()
         {
         {
             var ms = new MySync();
             var ms = new MySync();
@@ -144,7 +146,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SynchronizationContext_StartedCompleted()
         public void SynchronizationContext_StartedCompleted()
         {
         {
             var ms = new MySync();
             var ms = new MySync();
@@ -158,7 +160,7 @@ namespace ReactiveTests.Tests
             Assert.True(ms.Completed == 1);
             Assert.True(ms.Completed == 1);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SynchronizationContext_DontPost_Different()
         public void SynchronizationContext_DontPost_Different()
         {
         {
             var ms = new MySync();
             var ms = new MySync();
@@ -171,7 +173,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void SynchronizationContext_DontPost_Same()
         public void SynchronizationContext_DontPost_Same()
         {
         {
             var count = 0;
             var count = 0;
@@ -196,7 +198,7 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void SynchronizationContext_AlwaysPost_Different()
         public void SynchronizationContext_AlwaysPost_Different()
         {
         {
             var ms = new MySync();
             var ms = new MySync();
@@ -209,7 +211,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void SynchronizationContext_AlwaysPost_Same()
         public void SynchronizationContext_AlwaysPost_Same()
         {
         {
             var count = 0;
             var count = 0;

+ 5 - 5
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/SynchronizationTest.cs

@@ -7,14 +7,14 @@ using System.Reactive.Concurrency;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class SynchronizationTests
     public class SynchronizationTests
     {
     {
-        [Fact]
+        [TestMethod]
         public void Synchronization_SubscribeOn_ArgumentChecking()
         public void Synchronization_SubscribeOn_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.SubscribeOn(default(IObservable<int>), Scheduler.Immediate));
             ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.SubscribeOn(default(IObservable<int>), Scheduler.Immediate));
@@ -23,7 +23,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.SubscribeOn(DummyObservable<int>.Instance, default(SynchronizationContext)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.SubscribeOn(DummyObservable<int>.Instance, default(SynchronizationContext)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Synchronization_ObserveOn_ArgumentChecking()
         public void Synchronization_ObserveOn_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.ObserveOn(default(IObservable<int>), Scheduler.Immediate));
             ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.ObserveOn(default(IObservable<int>), Scheduler.Immediate));
@@ -32,7 +32,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.ObserveOn(DummyObservable<int>.Instance, default(SynchronizationContext)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.ObserveOn(DummyObservable<int>.Instance, default(SynchronizationContext)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Synchronization_Synchronize_ArgumentChecking()
         public void Synchronization_Synchronize_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.Synchronize(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Synchronization.Synchronize(default(IObservable<int>)));

+ 15 - 13
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/TaskPoolSchedulerTest.cs

@@ -6,14 +6,16 @@ using System;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class TaskPoolSchedulerTest
     public class TaskPoolSchedulerTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void TaskPool_ArgumentChecking()
         public void TaskPool_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new TaskPoolScheduler(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => new TaskPoolScheduler(null));
@@ -24,7 +26,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => TaskPoolScheduler.Default.SchedulePeriodic(42, TimeSpan.FromSeconds(-1), _ => _));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => TaskPoolScheduler.Default.SchedulePeriodic(42, TimeSpan.FromSeconds(-1), _ => _));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void TaskPool_Now()
         public void TaskPool_Now()
         {
         {
             var res = TaskPoolScheduler.Default.Now - DateTime.Now;
             var res = TaskPoolScheduler.Default.Now - DateTime.Now;
@@ -32,7 +34,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void TaskPool_ScheduleAction()
         public void TaskPool_ScheduleAction()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -42,7 +44,7 @@ namespace ReactiveTests.Tests
             evt.WaitOne();
             evt.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void TaskPool_ScheduleActionDueNow()
         public void TaskPool_ScheduleActionDueNow()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -52,7 +54,7 @@ namespace ReactiveTests.Tests
             evt.WaitOne();
             evt.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void TaskPool_ScheduleActionDue()
         public void TaskPool_ScheduleActionDue()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -62,7 +64,7 @@ namespace ReactiveTests.Tests
             evt.WaitOne();
             evt.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void TaskPool_ScheduleActionCancel()
         public void TaskPool_ScheduleActionCancel()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -75,7 +77,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_PERF
 #if !NO_PERF
-        [Fact]
+        [TestMethod]
         public void TaskPool_ScheduleLongRunning()
         public void TaskPool_ScheduleLongRunning()
         {
         {
             var n = 0;
             var n = 0;
@@ -117,14 +119,14 @@ namespace ReactiveTests.Tests
 #endif
 #endif
 
 
 #if !NO_PERF
 #if !NO_PERF
-        [Fact]
+        [TestMethod]
         public void Stopwatch()
         public void Stopwatch()
         {
         {
             StopwatchTest.Run(TaskPoolScheduler.Default);
             StopwatchTest.Run(TaskPoolScheduler.Default);
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void TaskPool_Periodic()
         public void TaskPool_Periodic()
         {
         {
             var n = 0;
             var n = 0;
@@ -147,7 +149,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void TaskPool_Periodic_NonReentrant()
         public void TaskPool_Periodic_NonReentrant()
         {
         {
             var n = 0;
             var n = 0;
@@ -179,7 +181,7 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void TaskPool_Delay_LargerThanIntMaxValue()
         public void TaskPool_Delay_LargerThanIntMaxValue()
         {
         {
             var dueTime = TimeSpan.FromMilliseconds((double)int.MaxValue + 1);
             var dueTime = TimeSpan.FromMilliseconds((double)int.MaxValue + 1);

+ 3 - 3
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/TestSchedulerTest.cs

@@ -10,14 +10,14 @@ using System.Reactive.Linq;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class TestSchedulerTest
     public class TestSchedulerTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Test_ArgumentChecking()
         public void Test_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new TestScheduler().Start<int>(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => new TestScheduler().Start<int>(null));

+ 31 - 21
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/ThreadPoolSchedulerTest.cs

@@ -9,14 +9,16 @@ using System.Linq;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class ThreadPoolSchedulerTest
     public class ThreadPoolSchedulerTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Schedule_ArgumentChecking()
         public void Schedule_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ThreadPoolScheduler.Instance.Schedule(42, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => ThreadPoolScheduler.Instance.Schedule(42, default));
@@ -24,14 +26,14 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => ThreadPoolScheduler.Instance.Schedule(42, TimeSpan.Zero, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => ThreadPoolScheduler.Instance.Schedule(42, TimeSpan.Zero, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Get_Now()
         public void Get_Now()
         {
         {
             var res = ThreadPoolScheduler.Instance.Now - DateTime.Now;
             var res = ThreadPoolScheduler.Instance.Now - DateTime.Now;
             Assert.True(res.Seconds < 1);
             Assert.True(res.Seconds < 1);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleAction()
         public void ScheduleAction()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -41,7 +43,7 @@ namespace ReactiveTests.Tests
             evt.WaitOne();
             evt.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ProperRooting_NoGC_SingleShot()
         public void ProperRooting_NoGC_SingleShot()
         {
         {
             var cts = new CancellationTokenSource();
             var cts = new CancellationTokenSource();
@@ -68,7 +70,7 @@ namespace ReactiveTests.Tests
             cts.Cancel();
             cts.Cancel();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ProperRooting_NoGC_Periodic()
         public void ProperRooting_NoGC_Periodic()
         {
         {
             var cts = new CancellationTokenSource();
             var cts = new CancellationTokenSource();
@@ -96,7 +98,7 @@ namespace ReactiveTests.Tests
             cts.Cancel();
             cts.Cancel();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleActionDueRelative()
         public void ScheduleActionDueRelative()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -106,7 +108,7 @@ namespace ReactiveTests.Tests
             evt.WaitOne();
             evt.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleActionDue0()
         public void ScheduleActionDue0()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -116,7 +118,7 @@ namespace ReactiveTests.Tests
             evt.WaitOne();
             evt.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleActionDueAbsolute()
         public void ScheduleActionDueAbsolute()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -126,7 +128,7 @@ namespace ReactiveTests.Tests
             evt.WaitOne();
             evt.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleActionCancel()
         public void ScheduleActionCancel()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -140,13 +142,15 @@ namespace ReactiveTests.Tests
 
 
 #if !NO_PERF
 #if !NO_PERF
 
 
-        [Fact]
+#if !WINDOWS_UWP
+
+        [TestMethod]
         public void ScheduleLongRunning_ArgumentChecking()
         public void ScheduleLongRunning_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ThreadPoolScheduler.Instance.ScheduleLongRunning(42, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => ThreadPoolScheduler.Instance.ScheduleLongRunning(42, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleLongRunning()
         public void ScheduleLongRunning()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -156,7 +160,7 @@ namespace ReactiveTests.Tests
             evt.WaitOne();
             evt.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduleLongRunningCancel()
         public void ScheduleLongRunningCancel()
         {
         {
             var nt = ThreadPoolScheduler.Instance;
             var nt = ThreadPoolScheduler.Instance;
@@ -186,7 +190,9 @@ namespace ReactiveTests.Tests
             Assert.True(n >= 10);
             Assert.True(n >= 10);
         }
         }
 
 
-        [Fact]
+#endif
+
+        [TestMethod]
         public void Stopwatch()
         public void Stopwatch()
         {
         {
             var nt = ThreadPoolScheduler.Instance;
             var nt = ThreadPoolScheduler.Instance;
@@ -200,25 +206,29 @@ namespace ReactiveTests.Tests
             Assert.True(s1 > s0);
             Assert.True(s1 > s0);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Periodic_ArgumentChecking()
         public void Periodic_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ThreadPoolScheduler.Instance.SchedulePeriodic(0, TimeSpan.FromSeconds(1), null));
             ReactiveAssert.Throws<ArgumentNullException>(() => ThreadPoolScheduler.Instance.SchedulePeriodic(0, TimeSpan.FromSeconds(1), null));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => ThreadPoolScheduler.Instance.SchedulePeriodic(0, TimeSpan.FromSeconds(-1), _ => _));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => ThreadPoolScheduler.Instance.SchedulePeriodic(0, TimeSpan.FromSeconds(-1), _ => _));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Periodic_Regular()
         public void Periodic_Regular()
         {
         {
             Periodic_Impl(TimeSpan.FromMilliseconds(25));
             Periodic_Impl(TimeSpan.FromMilliseconds(25));
         }
         }
 
 
-        [Fact]
+#if !WINDOWS_UWP
+
+        [TestMethod]
         public void Periodic_Zero()
         public void Periodic_Zero()
         {
         {
             Periodic_Impl(TimeSpan.Zero);
             Periodic_Impl(TimeSpan.Zero);
         }
         }
 
 
+#endif
+
         private void Periodic_Impl(TimeSpan period)
         private void Periodic_Impl(TimeSpan period)
         {
         {
             var gate = new object();
             var gate = new object();
@@ -270,7 +280,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.Take(10).SequenceEqual(Enumerable.Range(0, 10)));
             Assert.True(res.Take(10).SequenceEqual(Enumerable.Range(0, 10)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Periodic_NonReentrant()
         public void Periodic_NonReentrant()
         {
         {
             var n = 0;
             var n = 0;
@@ -304,8 +314,8 @@ namespace ReactiveTests.Tests
 #endif
 #endif
 
 
 #if DESKTOPCLR
 #if DESKTOPCLR
-        [Trait("SkipCI", "true")]
-        [Fact]
+        [TestCategory("SkipCI")]
+        [TestMethod]
         public void No_ThreadPool_Starvation_Dispose()
         public void No_ThreadPool_Starvation_Dispose()
         {
         {
             ThreadPool.GetAvailableThreads(out var bwt, out var bio);
             ThreadPool.GetAvailableThreads(out var bwt, out var bio);

+ 13 - 11
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Concurrency/VirtualSchedulerTest.cs

@@ -10,11 +10,13 @@ using System.Reactive.Linq;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class VirtualSchedulerTest
     public class VirtualSchedulerTest
     {
     {
         private class VirtualSchedulerTestScheduler : VirtualTimeScheduler<string, char>
         private class VirtualSchedulerTestScheduler : VirtualTimeScheduler<string, char>
@@ -44,14 +46,14 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Virtual_Now()
         public void Virtual_Now()
         {
         {
             var res = new VirtualSchedulerTestScheduler().Now - DateTime.Now;
             var res = new VirtualSchedulerTestScheduler().Now - DateTime.Now;
             Assert.True(res.Seconds < 1);
             Assert.True(res.Seconds < 1);
         }
         }
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void Virtual_ScheduleAction()
         public void Virtual_ScheduleAction()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -63,7 +65,7 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void Virtual_ScheduleActionError()
         public void Virtual_ScheduleActionError()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -81,14 +83,14 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Virtual_InitialAndComparer_Now()
         public void Virtual_InitialAndComparer_Now()
         {
         {
             var s = new VirtualSchedulerTestScheduler("Bar", Comparer<string>.Default);
             var s = new VirtualSchedulerTestScheduler("Bar", Comparer<string>.Default);
             Assert.Equal(3, s.Now.Ticks);
             Assert.Equal(3, s.Now.Ticks);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Virtual_ArgumentChecking()
         public void Virtual_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new VirtualSchedulerTestScheduler("", null));
             ReactiveAssert.Throws<ArgumentNullException>(() => new VirtualSchedulerTestScheduler("", null));
@@ -104,7 +106,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => VirtualTimeSchedulerExtensions.ScheduleRelative(new VirtualSchedulerTestScheduler(), 'a', default));
             ReactiveAssert.Throws<ArgumentNullException>(() => VirtualTimeSchedulerExtensions.ScheduleRelative(new VirtualSchedulerTestScheduler(), 'a', default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Historical_ArgumentChecking()
         public void Historical_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new HistoricalScheduler(DateTime.Now, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => new HistoricalScheduler(DateTime.Now, default));
@@ -113,7 +115,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void Virtual_ScheduleActionDue()
         public void Virtual_ScheduleActionDue()
         {
         {
             var id = Thread.CurrentThread.ManagedThreadId;
             var id = Thread.CurrentThread.ManagedThreadId;
@@ -125,8 +127,8 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
-        [Trait("SkipCI", "true")]
+        [TestMethod]
+        [TestCategory("SkipCI")]
         public void Virtual_ThreadSafety()
         public void Virtual_ThreadSafety()
         {
         {
             for (var i = 0; i < 10; i++)
             for (var i = 0; i < 10; i++)

+ 11 - 9
Rx.NET/Source/tests/Tests.System.Reactive/Tests/ConnectableObservableTest.cs

@@ -8,14 +8,16 @@ using System.Reactive.Linq;
 using System.Reactive.Subjects;
 using System.Reactive.Subjects;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public partial class ConnectableObservableTest : ReactiveTest
     public partial class ConnectableObservableTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void ConnectableObservable_Creation()
         public void ConnectableObservable_Creation()
         {
         {
             var y = 0;
             var y = 0;
@@ -30,7 +32,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(1, y);
             Assert.Equal(1, y);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ConnectableObservable_Connected()
         public void ConnectableObservable_Connected()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -59,7 +61,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ConnectableObservable_NotConnected()
         public void ConnectableObservable_NotConnected()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -82,7 +84,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ConnectableObservable_Disconnected()
         public void ConnectableObservable_Disconnected()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -107,7 +109,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ConnectableObservable_DisconnectFuture()
         public void ConnectableObservable_DisconnectFuture()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -134,13 +136,13 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ConnectableObservable_ArgumentChecking()
         public void ConnectableObservable_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => DummyObservable<int>.Instance.Publish().Subscribe(default));
             ReactiveAssert.Throws<ArgumentNullException>(() => DummyObservable<int>.Instance.Publish().Subscribe(default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ConnectableObservable_MultipleNonOverlappedConnections()
         public void ConnectableObservable_MultipleNonOverlappedConnections()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 16 - 14
Rx.NET/Source/tests/Tests.System.Reactive/Tests/DefaultConcurrencyAbstractionLayerTest.cs

@@ -8,11 +8,13 @@ using System.Reactive.Concurrency;
 using System.Reactive.PlatformServices;
 using System.Reactive.PlatformServices;
 using System.Runtime.CompilerServices;
 using System.Runtime.CompilerServices;
 using System.Threading;
 using System.Threading;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     [Serializable]
     [Serializable]
     public class DefaultConcurrencyAbstractionLayerTest
     public class DefaultConcurrencyAbstractionLayerTest
     {
     {
@@ -31,7 +33,7 @@ namespace ReactiveTests.Tests
             _domain.DoCallBack(a);
             _domain.DoCallBack(a);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Sleep()
         public void Sleep()
         {
         {
             var ran = new MarshalByRefCell<bool>();
             var ran = new MarshalByRefCell<bool>();
@@ -49,7 +51,7 @@ namespace ReactiveTests.Tests
             Assert.True(ran.Value);
             Assert.True(ran.Value);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void QueueUserWorkItem()
         public void QueueUserWorkItem()
         {
         {
             var e = new MarshalByRefCell<ManualResetEvent> { Value = new ManualResetEvent(false) };
             var e = new MarshalByRefCell<ManualResetEvent> { Value = new ManualResetEvent(false) };
@@ -67,7 +69,7 @@ namespace ReactiveTests.Tests
             e.Value.WaitOne();
             e.Value.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void StartTimer()
         public void StartTimer()
         {
         {
             var e = new MarshalByRefCell<ManualResetEvent> { Value = new ManualResetEvent(false) };
             var e = new MarshalByRefCell<ManualResetEvent> { Value = new ManualResetEvent(false) };
@@ -85,7 +87,7 @@ namespace ReactiveTests.Tests
             e.Value.WaitOne();
             e.Value.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void StartTimer_Cancel()
         public void StartTimer_Cancel()
         {
         {
             Run(StartTimer_Cancel_Callback);
             Run(StartTimer_Cancel_Callback);
@@ -99,7 +101,7 @@ namespace ReactiveTests.Tests
             }).Dispose();
             }).Dispose();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void StartPeriodicTimer()
         public void StartPeriodicTimer()
         {
         {
             var e = new MarshalByRefCell<ManualResetEvent> { Value = new ManualResetEvent(false) };
             var e = new MarshalByRefCell<ManualResetEvent> { Value = new ManualResetEvent(false) };
@@ -123,7 +125,7 @@ namespace ReactiveTests.Tests
             e.Value.WaitOne();
             e.Value.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void StartPeriodicTimer_Cancel()
         public void StartPeriodicTimer_Cancel()
         {
         {
             Run(StartPeriodicTimer_Cancel_Callback);
             Run(StartPeriodicTimer_Cancel_Callback);
@@ -137,7 +139,7 @@ namespace ReactiveTests.Tests
             }).Dispose();
             }).Dispose();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void StartPeriodicTimer_Fast()
         public void StartPeriodicTimer_Fast()
         {
         {
             var e = new MarshalByRefCell<ManualResetEvent> { Value = new ManualResetEvent(false) };
             var e = new MarshalByRefCell<ManualResetEvent> { Value = new ManualResetEvent(false) };
@@ -161,7 +163,7 @@ namespace ReactiveTests.Tests
             e.Value.WaitOne();
             e.Value.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void StartPeriodicTimer_Fast_Cancel()
         public void StartPeriodicTimer_Fast_Cancel()
         {
         {
             var e = new MarshalByRefCell<ManualResetEvent> { Value = new ManualResetEvent(false) };
             var e = new MarshalByRefCell<ManualResetEvent> { Value = new ManualResetEvent(false) };
@@ -208,7 +210,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(newValue, value);
             Assert.Equal(newValue, value);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateThread()
         public void CreateThread()
         {
         {
             var e = new MarshalByRefCell<ManualResetEvent> { Value = new ManualResetEvent(false) };
             var e = new MarshalByRefCell<ManualResetEvent> { Value = new ManualResetEvent(false) };
@@ -283,7 +285,7 @@ namespace ReactiveTests.Tests
             Assert.True(string.IsNullOrEmpty(r.Value));
             Assert.True(string.IsNullOrEmpty(r.Value));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Cant_Locate_Scheduler()
         public void Cant_Locate_Scheduler()
         {
         {
 
 
@@ -314,7 +316,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_PERF
 #if !NO_PERF
-        [Fact]
+        [TestMethod]
         public void Stopwatch()
         public void Stopwatch()
         {
         {
             var e = new MarshalByRefCell<bool>();
             var e = new MarshalByRefCell<bool>();
@@ -337,7 +339,7 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void EnsureLoaded()
         public void EnsureLoaded()
         {
         {
             Assert.True(EnlightenmentProvider.EnsureLoaded());
             Assert.True(EnlightenmentProvider.EnsureLoaded());

+ 61 - 59
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Disposables/DisposableTests.cs

@@ -10,27 +10,29 @@ using System.Reactive.Concurrency;
 using System.Reactive.Disposables;
 using System.Reactive.Disposables;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class DisposableTests
     public class DisposableTests
     {
     {
-        [Fact]
+        [TestMethod]
         public void AnonymousDisposable_Create()
         public void AnonymousDisposable_Create()
         {
         {
             var d = Disposable.Create(() => { });
             var d = Disposable.Create(() => { });
             Assert.NotNull(d);
             Assert.NotNull(d);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AnonymousDisposable_CreateNull()
         public void AnonymousDisposable_CreateNull()
         {
         {
             Assert.Throws(typeof(ArgumentNullException), () => Disposable.Create(null));
             Assert.Throws(typeof(ArgumentNullException), () => Disposable.Create(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AnonymousDisposable_Dispose()
         public void AnonymousDisposable_Dispose()
         {
         {
             var disposed = false;
             var disposed = false;
@@ -44,7 +46,7 @@ namespace ReactiveTests.Tests
             Assert.True(c.IsDisposed);
             Assert.True(c.IsDisposed);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void EmptyDisposable()
         public void EmptyDisposable()
         {
         {
             var d = Disposable.Empty;
             var d = Disposable.Empty;
@@ -52,7 +54,7 @@ namespace ReactiveTests.Tests
             d.Dispose();
             d.Dispose();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BooleanDisposable()
         public void BooleanDisposable()
         {
         {
             var d = new BooleanDisposable();
             var d = new BooleanDisposable();
@@ -63,7 +65,7 @@ namespace ReactiveTests.Tests
             Assert.True(d.IsDisposed);
             Assert.True(d.IsDisposed);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SingleAssignmentDisposable_SetNull()
         public void SingleAssignmentDisposable_SetNull()
         {
         {
             var d = new SingleAssignmentDisposable
             var d = new SingleAssignmentDisposable
@@ -72,7 +74,7 @@ namespace ReactiveTests.Tests
             };
             };
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SingleAssignmentDisposable_DisposeAfterSet()
         public void SingleAssignmentDisposable_DisposeAfterSet()
         {
         {
             var disposed = false;
             var disposed = false;
@@ -92,7 +94,7 @@ namespace ReactiveTests.Tests
             Assert.True(d.IsDisposed);
             Assert.True(d.IsDisposed);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SingleAssignmentDisposable_DisposeBeforeSet()
         public void SingleAssignmentDisposable_DisposeBeforeSet()
         {
         {
             var disposed = false;
             var disposed = false;
@@ -114,7 +116,7 @@ namespace ReactiveTests.Tests
             Assert.True(disposed);
             Assert.True(disposed);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SingleAssignmentDisposable_SetMultipleTimes()
         public void SingleAssignmentDisposable_SetMultipleTimes()
         {
         {
             var d = new SingleAssignmentDisposable
             var d = new SingleAssignmentDisposable
@@ -125,7 +127,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<InvalidOperationException>(() => { d.Disposable = Disposable.Empty; });
             ReactiveAssert.Throws<InvalidOperationException>(() => { d.Disposable = Disposable.Empty; });
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_ArgumentChecking()
         public void CompositeDisposable_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new CompositeDisposable(default(IDisposable[])));
             ReactiveAssert.Throws<ArgumentNullException>(() => new CompositeDisposable(default(IDisposable[])));
@@ -133,7 +135,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => new CompositeDisposable(-1));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => new CompositeDisposable(-1));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_Contains()
         public void CompositeDisposable_Contains()
         {
         {
             var d1 = Disposable.Create(() => { });
             var d1 = Disposable.Create(() => { });
@@ -147,31 +149,31 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => g.Contains(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => g.Contains(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_IsReadOnly()
         public void CompositeDisposable_IsReadOnly()
         {
         {
             Assert.False(new CompositeDisposable().IsReadOnly);
             Assert.False(new CompositeDisposable().IsReadOnly);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_CopyTo_Null()
         public void CompositeDisposable_CopyTo_Null()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new CompositeDisposable().CopyTo(null, 0));
             ReactiveAssert.Throws<ArgumentNullException>(() => new CompositeDisposable().CopyTo(null, 0));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_CopyTo_Negative()
         public void CompositeDisposable_CopyTo_Negative()
         {
         {
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => new CompositeDisposable().CopyTo(new IDisposable[2], -1));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => new CompositeDisposable().CopyTo(new IDisposable[2], -1));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_CopyTo_BeyondEnd()
         public void CompositeDisposable_CopyTo_BeyondEnd()
         {
         {
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => new CompositeDisposable().CopyTo(new IDisposable[2], 2));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => new CompositeDisposable().CopyTo(new IDisposable[2], 2));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_CopyTo()
         public void CompositeDisposable_CopyTo()
         {
         {
             var d1 = Disposable.Create(() => { });
             var d1 = Disposable.Create(() => { });
@@ -184,7 +186,7 @@ namespace ReactiveTests.Tests
             Assert.Same(d2, d[2]);
             Assert.Same(d2, d[2]);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_ToArray()
         public void CompositeDisposable_ToArray()
         {
         {
             var d1 = Disposable.Create(() => { });
             var d1 = Disposable.Create(() => { });
@@ -195,7 +197,7 @@ namespace ReactiveTests.Tests
             Assert.True(g.ToArray().SequenceEqual(new[] { d1, d2 }));
             Assert.True(g.ToArray().SequenceEqual(new[] { d1, d2 }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_GetEnumerator()
         public void CompositeDisposable_GetEnumerator()
         {
         {
             var d1 = Disposable.Create(() => { });
             var d1 = Disposable.Create(() => { });
@@ -210,7 +212,7 @@ namespace ReactiveTests.Tests
             Assert.True(lst.SequenceEqual(new[] { d1, d2 }));
             Assert.True(lst.SequenceEqual(new[] { d1, d2 }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_GetEnumeratorNonGeneric()
         public void CompositeDisposable_GetEnumeratorNonGeneric()
         {
         {
             var d1 = Disposable.Create(() => { });
             var d1 = Disposable.Create(() => { });
@@ -225,7 +227,7 @@ namespace ReactiveTests.Tests
             Assert.True(lst.SequenceEqual(new[] { d1, d2 }));
             Assert.True(lst.SequenceEqual(new[] { d1, d2 }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_CollectionInitializer()
         public void CompositeDisposable_CollectionInitializer()
         {
         {
             var d1 = Disposable.Create(() => { });
             var d1 = Disposable.Create(() => { });
@@ -236,27 +238,27 @@ namespace ReactiveTests.Tests
             Assert.True(g.Contains(d2));
             Assert.True(g.Contains(d2));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_AddNull_via_params_ctor()
         public void CompositeDisposable_AddNull_via_params_ctor()
         {
         {
             IDisposable d1 = null;
             IDisposable d1 = null;
             ReactiveAssert.Throws<ArgumentException>(() => new CompositeDisposable(d1));
             ReactiveAssert.Throws<ArgumentException>(() => new CompositeDisposable(d1));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_AddNull_via_IEnum_ctor()
         public void CompositeDisposable_AddNull_via_IEnum_ctor()
         {
         {
             IEnumerable<IDisposable> values = new IDisposable[] { null };
             IEnumerable<IDisposable> values = new IDisposable[] { null };
             ReactiveAssert.Throws<ArgumentException>(() => new CompositeDisposable(values));
             ReactiveAssert.Throws<ArgumentException>(() => new CompositeDisposable(values));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_AddNull()
         public void CompositeDisposable_AddNull()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new CompositeDisposable().Add(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => new CompositeDisposable().Add(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_Add()
         public void CompositeDisposable_Add()
         {
         {
             var d1 = Disposable.Create(() => { });
             var d1 = Disposable.Create(() => { });
@@ -269,7 +271,7 @@ namespace ReactiveTests.Tests
             Assert.True(g.Contains(d2));
             Assert.True(g.Contains(d2));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_AddAfterDispose()
         public void CompositeDisposable_AddAfterDispose()
         {
         {
             var disp1 = false;
             var disp1 = false;
@@ -291,7 +293,7 @@ namespace ReactiveTests.Tests
             Assert.True(g.IsDisposed);
             Assert.True(g.IsDisposed);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_Remove()
         public void CompositeDisposable_Remove()
         {
         {
             var disp1 = false;
             var disp1 = false;
@@ -322,7 +324,7 @@ namespace ReactiveTests.Tests
             Assert.False(disp3);
             Assert.False(disp3);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_Clear()
         public void CompositeDisposable_Clear()
         {
         {
             var disp1 = false;
             var disp1 = false;
@@ -345,7 +347,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(1, g.Count);
             Assert.Equal(1, g.Count);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_RemoveOptimizationBehavior()
         public void CompositeDisposable_RemoveOptimizationBehavior()
         {
         {
             var g = new CompositeDisposable();
             var g = new CompositeDisposable();
@@ -393,13 +395,13 @@ namespace ReactiveTests.Tests
             Assert.True(z.SequenceEqual(Enumerable.Range(0, N).Where(i => !(i % 2 == 0 || i % 3 == 0 || i % 5 == 0))));
             Assert.True(z.SequenceEqual(Enumerable.Range(0, N).Where(i => !(i % 2 == 0 || i % 3 == 0 || i % 5 == 0))));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_RemoveNull()
         public void CompositeDisposable_RemoveNull()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new CompositeDisposable().Remove(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => new CompositeDisposable().Remove(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_Empty_GetEnumerator()
         public void CompositeDisposable_Empty_GetEnumerator()
         {
         {
             var composite = new CompositeDisposable();
             var composite = new CompositeDisposable();
@@ -407,7 +409,7 @@ namespace ReactiveTests.Tests
             Assert.False(composite.GetEnumerator().MoveNext());
             Assert.False(composite.GetEnumerator().MoveNext());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_NonCollection_Enumerable_Init()
         public void CompositeDisposable_NonCollection_Enumerable_Init()
         {
         {
             var d = new BooleanDisposable();
             var d = new BooleanDisposable();
@@ -424,7 +426,7 @@ namespace ReactiveTests.Tests
             yield return d;
             yield return d;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_Disposed_Is_NoOp()
         public void CompositeDisposable_Disposed_Is_NoOp()
         {
         {
             var d = new BooleanDisposable();
             var d = new BooleanDisposable();
@@ -444,7 +446,7 @@ namespace ReactiveTests.Tests
             Assert.Null(array[0]);
             Assert.Null(array[0]);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_CopyTo_Index_Out_Of_Range()
         public void CompositeDisposable_CopyTo_Index_Out_Of_Range()
         {
         {
             var d1 = new BooleanDisposable();
             var d1 = new BooleanDisposable();
@@ -465,7 +467,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_GetEnumerator_Reset()
         public void CompositeDisposable_GetEnumerator_Reset()
         {
         {
             var d = new BooleanDisposable();
             var d = new BooleanDisposable();
@@ -484,7 +486,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(d, enumerator.Current);
             Assert.Equal(d, enumerator.Current);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CompositeDisposable_GetEnumerator_Disposed_Entries()
         public void CompositeDisposable_GetEnumerator_Disposed_Entries()
         {
         {
             var d1 = new BooleanDisposable();
             var d1 = new BooleanDisposable();
@@ -506,13 +508,13 @@ namespace ReactiveTests.Tests
             Assert.False(enumerator.MoveNext());
             Assert.False(enumerator.MoveNext());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CancellationDisposable_Ctor_Null()
         public void CancellationDisposable_Ctor_Null()
         {
         {
             Assert.Throws<ArgumentNullException>(() => new CancellationDisposable(null));
             Assert.Throws<ArgumentNullException>(() => new CancellationDisposable(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CancellationDisposable_DefaultCtor()
         public void CancellationDisposable_DefaultCtor()
         {
         {
             var c = new CancellationDisposable();
             var c = new CancellationDisposable();
@@ -524,7 +526,7 @@ namespace ReactiveTests.Tests
             Assert.True(c.Token.IsCancellationRequested);
             Assert.True(c.Token.IsCancellationRequested);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CancellationDisposable_TokenCtor()
         public void CancellationDisposable_TokenCtor()
         {
         {
             var t = new CancellationTokenSource();
             var t = new CancellationTokenSource();
@@ -537,19 +539,19 @@ namespace ReactiveTests.Tests
             Assert.True(c.Token.IsCancellationRequested);
             Assert.True(c.Token.IsCancellationRequested);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ContextDisposable_CreateNullContext()
         public void ContextDisposable_CreateNullContext()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new ContextDisposable(null, Disposable.Empty));
             ReactiveAssert.Throws<ArgumentNullException>(() => new ContextDisposable(null, Disposable.Empty));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ContextDisposable_CreateNullDisposable()
         public void ContextDisposable_CreateNullDisposable()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new ContextDisposable(new SynchronizationContext(), null));
             ReactiveAssert.Throws<ArgumentNullException>(() => new ContextDisposable(new SynchronizationContext(), null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ContextDisposable()
         public void ContextDisposable()
         {
         {
             var disp = false;
             var disp = false;
@@ -575,14 +577,14 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SerialDisposable_Ctor_Prop()
         public void SerialDisposable_Ctor_Prop()
         {
         {
             var m = new SerialDisposable();
             var m = new SerialDisposable();
             Assert.Null(m.Disposable);
             Assert.Null(m.Disposable);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SerialDisposable_ReplaceBeforeDispose()
         public void SerialDisposable_ReplaceBeforeDispose()
         {
         {
             var disp1 = false;
             var disp1 = false;
@@ -601,7 +603,7 @@ namespace ReactiveTests.Tests
             Assert.False(disp2);
             Assert.False(disp2);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SerialDisposable_ReplaceAfterDispose()
         public void SerialDisposable_ReplaceAfterDispose()
         {
         {
             var disp1 = false;
             var disp1 = false;
@@ -622,7 +624,7 @@ namespace ReactiveTests.Tests
             Assert.True(disp2);
             Assert.True(disp2);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void SerialDisposable_Dispose()
         public void SerialDisposable_Dispose()
         {
         {
             var disp = false;
             var disp = false;
@@ -639,13 +641,13 @@ namespace ReactiveTests.Tests
             //Assert.Null(m.Disposable); // BREAKING CHANGE v2 > v1.x - Undefined behavior after disposal.
             //Assert.Null(m.Disposable); // BREAKING CHANGE v2 > v1.x - Undefined behavior after disposal.
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void RefCountDisposable_Ctor_Null()
         public void RefCountDisposable_Ctor_Null()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new RefCountDisposable(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => new RefCountDisposable(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void RefCountDisposable_SingleReference()
         public void RefCountDisposable_SingleReference()
         {
         {
             var d = new BooleanDisposable();
             var d = new BooleanDisposable();
@@ -657,7 +659,7 @@ namespace ReactiveTests.Tests
             Assert.True(d.IsDisposed);
             Assert.True(d.IsDisposed);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void RefCountDisposable_RefCounting()
         public void RefCountDisposable_RefCounting()
         {
         {
             var d = new BooleanDisposable();
             var d = new BooleanDisposable();
@@ -682,7 +684,7 @@ namespace ReactiveTests.Tests
             d3.Dispose();
             d3.Dispose();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void RefCountDisposable_PrimaryDisposesFirst()
         public void RefCountDisposable_PrimaryDisposesFirst()
         {
         {
             var d = new BooleanDisposable();
             var d = new BooleanDisposable();
@@ -703,7 +705,7 @@ namespace ReactiveTests.Tests
             Assert.True(d.IsDisposed);
             Assert.True(d.IsDisposed);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void RefCountDisposable_Throw_If_Disposed()
         public void RefCountDisposable_Throw_If_Disposed()
         {
         {
             var d = new BooleanDisposable();
             var d = new BooleanDisposable();
@@ -715,14 +717,14 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ObjectDisposedException>(() => { r.GetDisposable(); });
             ReactiveAssert.Throws<ObjectDisposedException>(() => { r.GetDisposable(); });
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduledDisposable_Null()
         public void ScheduledDisposable_Null()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => new ScheduledDisposable(null, Disposable.Empty));
             ReactiveAssert.Throws<ArgumentNullException>(() => new ScheduledDisposable(null, Disposable.Empty));
             ReactiveAssert.Throws<ArgumentNullException>(() => new ScheduledDisposable(Scheduler.Immediate, null));
             ReactiveAssert.Throws<ArgumentNullException>(() => new ScheduledDisposable(Scheduler.Immediate, null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ScheduledDisposable()
         public void ScheduledDisposable()
         {
         {
             var d = new BooleanDisposable();
             var d = new BooleanDisposable();
@@ -743,7 +745,7 @@ namespace ReactiveTests.Tests
             s.Disposable.Dispose();            // This should be a nop.
             s.Disposable.Dispose();            // This should be a nop.
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void MultipleAssignmentDisposable()
         public void MultipleAssignmentDisposable()
         {
         {
             var m = new MultipleAssignmentDisposable();
             var m = new MultipleAssignmentDisposable();
@@ -776,7 +778,7 @@ namespace ReactiveTests.Tests
             Assert.True(m.IsDisposed);
             Assert.True(m.IsDisposed);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void StableCompositeDisposable_ArgumentChecking()
         public void StableCompositeDisposable_ArgumentChecking()
         {
         {
             var d = Disposable.Empty;
             var d = Disposable.Empty;
@@ -792,7 +794,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentException>(() => StableCompositeDisposable.Create(d, d, null));
             ReactiveAssert.Throws<ArgumentException>(() => StableCompositeDisposable.Create(d, d, null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void StableCompositeDisposable_Binary()
         public void StableCompositeDisposable_Binary()
         {
         {
             var disp1 = false;
             var disp1 = false;
@@ -820,7 +822,7 @@ namespace ReactiveTests.Tests
             Assert.True(d.IsDisposed);
             Assert.True(d.IsDisposed);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void StableCompositeDisposable_Nary1()
         public void StableCompositeDisposable_Nary1()
         {
         {
             var disp1 = false;
             var disp1 = false;
@@ -854,7 +856,7 @@ namespace ReactiveTests.Tests
             Assert.True(d.IsDisposed);
             Assert.True(d.IsDisposed);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void StableCompositeDisposable_Nary2()
         public void StableCompositeDisposable_Nary2()
         {
         {
             var disp1 = false;
             var disp1 = false;

+ 3 - 3
Rx.NET/Source/tests/Tests.System.Reactive/Tests/EventPatternSourceBaseTest.cs

@@ -6,14 +6,14 @@ using System;
 using System.Reactive;
 using System.Reactive;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
-
+    [TestClass]
     public class EventPatternSourceBaseTest
     public class EventPatternSourceBaseTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void ArgumentChecking()
         public void ArgumentChecking()
         {
         {
             var xs = Observable.Empty<EventPattern<object, EventArgs>>();
             var xs = Observable.Empty<EventPattern<object, EventArgs>>();

+ 6 - 4
Rx.NET/Source/tests/Tests.System.Reactive/Tests/ImmutableListTest.cs

@@ -5,16 +5,18 @@
 #if SIGNED
 #if SIGNED
 using System.Linq;
 using System.Linq;
 using System.Reactive;
 using System.Reactive;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 #endif
 #endif
 
 
+using Assert = Xunit.Assert;
+
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
 #if SIGNED
 #if SIGNED
-
+    [TestClass]
     public class ImmutableListTest
     public class ImmutableListTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void ImmutableList_Basics()
         public void ImmutableList_Basics()
         {
         {
             var list = ImmutableList<int>.Empty;
             var list = ImmutableList<int>.Empty;
@@ -52,7 +54,7 @@ namespace ReactiveTests.Tests
             Assert.True(list.Data.SequenceEqual(new int[] { }));
             Assert.True(list.Data.SequenceEqual(new int[] { }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ImmutableList_Nulls()
         public void ImmutableList_Nulls()
         {
         {
             var list = ImmutableList<string>.Empty;
             var list = ImmutableList<string>.Empty;

+ 6 - 3
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Internal/ExceptionHelperTest.cs

@@ -4,15 +4,18 @@
 
 
 using System;
 using System;
 using System.Reactive;
 using System.Reactive;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class ExceptionHelperTest
     public class ExceptionHelperTest
     {
     {
         private Exception _errors;
         private Exception _errors;
 
 
-        [Fact]
+        [TestMethod]
         public void ExceptionHelper_TrySetException_Empty()
         public void ExceptionHelper_TrySetException_Empty()
         {
         {
             var ex = new InvalidOperationException();
             var ex = new InvalidOperationException();
@@ -22,7 +25,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(ex, _errors);
             Assert.Equal(ex, _errors);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ExceptionHelper_TrySetException_Not_Empty()
         public void ExceptionHelper_TrySetException_Not_Empty()
         {
         {
             var ex1 = new InvalidOperationException();
             var ex1 = new InvalidOperationException();

+ 11 - 8
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Internal/HalfSerializerTest.cs

@@ -5,17 +5,20 @@
 using System;
 using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Reactive;
 using System.Reactive;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class HalfSerializerTest
     public class HalfSerializerTest
     {
     {
         private int _wip;
         private int _wip;
         private Exception _error;
         private Exception _error;
         private Consumer _consumer = new Consumer();
         private Consumer _consumer = new Consumer();
 
 
-        [Fact]
+        [TestMethod]
         public void HalfSerializer_OnNext()
         public void HalfSerializer_OnNext()
         {
         {
             HalfSerializer.ForwardOnNext(_consumer, 1, ref _wip, ref _error);
             HalfSerializer.ForwardOnNext(_consumer, 1, ref _wip, ref _error);
@@ -29,7 +32,7 @@ namespace ReactiveTests.Tests
             Assert.Null(_consumer.Exc);
             Assert.Null(_consumer.Exc);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void HalfSerializer_OnError()
         public void HalfSerializer_OnError()
         {
         {
             var ex = new InvalidOperationException();
             var ex = new InvalidOperationException();
@@ -46,7 +49,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(ex, _consumer.Exc);
             Assert.Equal(ex, _consumer.Exc);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void HalfSerializer_OnError_Ignore_Further_Events()
         public void HalfSerializer_OnError_Ignore_Further_Events()
         {
         {
             var ex = new InvalidOperationException();
             var ex = new InvalidOperationException();
@@ -66,7 +69,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(ex, _consumer.Exc);
             Assert.Equal(ex, _consumer.Exc);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void HalfSerializer_OnCompleted()
         public void HalfSerializer_OnCompleted()
         {
         {
             HalfSerializer.ForwardOnCompleted(_consumer, ref _wip, ref _error);
             HalfSerializer.ForwardOnCompleted(_consumer, ref _wip, ref _error);
@@ -81,7 +84,7 @@ namespace ReactiveTests.Tests
             Assert.Null(_consumer.Exc);
             Assert.Null(_consumer.Exc);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void HalfSerializer_OnCompleted_Ignore_Further_Events()
         public void HalfSerializer_OnCompleted_Ignore_Further_Events()
         {
         {
             HalfSerializer.ForwardOnCompleted(_consumer, ref _wip, ref _error);
             HalfSerializer.ForwardOnCompleted(_consumer, ref _wip, ref _error);
@@ -100,7 +103,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
         // Practically simulates concurrent invocation of the HalfSerializer methods
         // Practically simulates concurrent invocation of the HalfSerializer methods
-        [Fact]
+        [TestMethod]
         public void HalfSerializer_OnNext_Reentrant_Error()
         public void HalfSerializer_OnNext_Reentrant_Error()
         {
         {
             var c = new ReentrantConsumer(this, true);
             var c = new ReentrantConsumer(this, true);
@@ -117,7 +120,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
         // Practically simulates concurrent invocation of the HalfSerializer methods
         // Practically simulates concurrent invocation of the HalfSerializer methods
-        [Fact]
+        [TestMethod]
         public void HalfSerializer_OnNext_Reentrant_OnCompleted()
         public void HalfSerializer_OnNext_Reentrant_OnCompleted()
         {
         {
             var c = new ReentrantConsumer(this, false);
             var c = new ReentrantConsumer(this, false);

+ 10 - 7
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Internal/PriorityQueueTest.cs

@@ -1,15 +1,18 @@
-// 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.
 // The .NET Foundation licenses this file to you under the MIT License.
 // See the LICENSE file in the project root for more information.
 // See the LICENSE file in the project root for more information.
 
 
 using System.Reactive;
 using System.Reactive;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class PriorityQueueTest
     public class PriorityQueueTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Enqueue_dequeue()
         public void Enqueue_dequeue()
         {
         {
             var q = new PriorityQueue<int>();
             var q = new PriorityQueue<int>();
@@ -28,7 +31,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Enqueue_all_dequeue_all()
         public void Enqueue_all_dequeue_all()
         {
         {
             var q = new PriorityQueue<int>();
             var q = new PriorityQueue<int>();
@@ -51,7 +54,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(0, q.Count);
             Assert.Equal(0, q.Count);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Reverse_Enqueue_all_dequeue_all()
         public void Reverse_Enqueue_all_dequeue_all()
         {
         {
             var q = new PriorityQueue<int>();
             var q = new PriorityQueue<int>();
@@ -74,7 +77,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(0, q.Count);
             Assert.Equal(0, q.Count);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Remove_from_middle()
         public void Remove_from_middle()
         {
         {
             var q = new PriorityQueue<int>();
             var q = new PriorityQueue<int>();
@@ -97,7 +100,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Repro_329()
         public void Repro_329()
         {
         {
             var queue = new PriorityQueue<int>();
             var queue = new PriorityQueue<int>();

+ 5 - 2
Rx.NET/Source/tests/Tests.System.Reactive/Tests/LicenseHeaderTest.cs

@@ -4,7 +4,9 @@
 
 
 using System.IO;
 using System.IO;
 using System.Text;
 using System.Text;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace Tests.System.Reactive.Tests
 namespace Tests.System.Reactive.Tests
 {
 {
@@ -12,6 +14,7 @@ namespace Tests.System.Reactive.Tests
     /// Verify that main classes and unit tests have a license header
     /// Verify that main classes and unit tests have a license header
     /// in the source files.
     /// in the source files.
     /// </summary>
     /// </summary>
+    [TestClass]
     public class LicenseHeaderTest
     public class LicenseHeaderTest
     {
     {
         private static readonly bool FixHeaders = true;
         private static readonly bool FixHeaders = true;
@@ -22,7 +25,7 @@ namespace Tests.System.Reactive.Tests
             ""
             ""
         };
         };
 
 
-        [Fact]
+        [TestMethod]
         public void ScanFiles()
         public void ScanFiles()
         {
         {
             var dir = Directory.GetCurrentDirectory();
             var dir = Directory.GetCurrentDirectory();

+ 22 - 21
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AggregateTest.cs

@@ -7,13 +7,14 @@ using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class AggregateTest : ReactiveTest
     public class AggregateTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Aggregate_ArgumentChecking()
         public void Aggregate_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Aggregate<int, int>(default, 1, (x, y) => x + y));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Aggregate<int, int>(default, 1, (x, y) => x + y));
@@ -27,7 +28,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Aggregate<int, int, int>(DummyObservable<int>.Instance, 1, (x, y) => x + y, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Aggregate<int, int, int>(DummyObservable<int>.Instance, 1, (x, y) => x + y, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithSeed_Empty()
         public void AggregateWithSeed_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -51,7 +52,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithSeed_Return()
         public void AggregateWithSeed_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -76,7 +77,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithSeed_Throw()
         public void AggregateWithSeed_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -101,7 +102,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithSeed_Never()
         public void AggregateWithSeed_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -124,7 +125,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithSeed_Range()
         public void AggregateWithSeed_Range()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -155,7 +156,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithSeed_AccumulatorThrows()
         public void AggregateWithSeed_AccumulatorThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -185,7 +186,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithSeedAndResult_Empty()
         public void AggregateWithSeedAndResult_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -209,7 +210,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithSeedAndResult_Return()
         public void AggregateWithSeedAndResult_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -234,7 +235,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithSeedAndResult_Throw()
         public void AggregateWithSeedAndResult_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -259,7 +260,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithSeedAndResult_Never()
         public void AggregateWithSeedAndResult_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -282,7 +283,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithSeedAndResult_Range()
         public void AggregateWithSeedAndResult_Range()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -313,7 +314,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithSeedAndResult_AccumulatorThrows()
         public void AggregateWithSeedAndResult_AccumulatorThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -343,7 +344,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithSeedAndResult_ResultSelectorThrows()
         public void AggregateWithSeedAndResult_ResultSelectorThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -373,7 +374,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithoutSeed_Empty()
         public void AggregateWithoutSeed_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -396,7 +397,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithoutSeed_Return()
         public void AggregateWithoutSeed_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -421,7 +422,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithoutSeed_Throw()
         public void AggregateWithoutSeed_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -446,7 +447,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithoutSeed_Never()
         public void AggregateWithoutSeed_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -463,7 +464,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithoutSeed_Range()
         public void AggregateWithoutSeed_Range()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -492,7 +493,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AggregateWithoutSeed_AccumulatorThrows()
         public void AggregateWithoutSeed_AccumulatorThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();

+ 12 - 11
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AllTest.cs

@@ -8,20 +8,21 @@ using System.Reactive;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class AllTest : ReactiveTest
     public class AllTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void All_ArgumentChecking()
         public void All_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.All(DummyObservable<int>.Instance, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.All(DummyObservable<int>.Instance, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.All(default(IObservable<int>), x => true));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.All(default(IObservable<int>), x => true));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void All_Empty()
         public void All_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -45,7 +46,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void All_Return()
         public void All_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -70,7 +71,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void All_ReturnNotMatch()
         public void All_ReturnNotMatch()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -95,7 +96,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void All_SomeNoneMatch()
         public void All_SomeNoneMatch()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -122,7 +123,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void All_SomeMatch()
         public void All_SomeMatch()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -149,7 +150,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void All_SomeAllMatch()
         public void All_SomeAllMatch()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -176,7 +177,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void All_Throw()
         public void All_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -201,7 +202,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void All_Never()
         public void All_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -224,7 +225,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void All_PredicateThrows()
         public void All_PredicateThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();

+ 23 - 20
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AmbTest.cs

@@ -8,14 +8,17 @@ using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class AmbTest : ReactiveTest
     public class AmbTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_ArgumentChecking()
         public void Amb_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Amb((IObservable<int>[])null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Amb((IObservable<int>[])null));
@@ -24,7 +27,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Amb(DummyObservable<int>.Instance, null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Amb(DummyObservable<int>.Instance, null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_Never2()
         public void Amb_Never2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -53,7 +56,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_Never3()
         public void Amb_Never3()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -90,7 +93,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_Never3_Params()
         public void Amb_Never3_Params()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -127,7 +130,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_NeverEmpty()
         public void Amb_NeverEmpty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -158,7 +161,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_EmptyNever()
         public void Amb_EmptyNever()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -189,7 +192,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_RegularShouldDisposeLoser()
         public void Amb_RegularShouldDisposeLoser()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -224,7 +227,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_WinnerThrows()
         public void Amb_WinnerThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -261,7 +264,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_LoserThrows()
         public void Amb_LoserThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -298,7 +301,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_ThrowsBeforeElectionLeft()
         public void Amb_ThrowsBeforeElectionLeft()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -333,7 +336,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_ThrowsBeforeElectionRight()
         public void Amb_ThrowsBeforeElectionRight()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -368,7 +371,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_Many_Array_OnNext()
         public void Amb_Many_Array_OnNext()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -413,7 +416,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_Many_Array_OnError()
         public void Amb_Many_Array_OnError()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -455,7 +458,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_Many_Array_OnCompleted()
         public void Amb_Many_Array_OnCompleted()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -500,7 +503,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_Many_Enumerable_OnNext()
         public void Amb_Many_Enumerable_OnNext()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -545,7 +548,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_Many_Enumerable_OnError()
         public void Amb_Many_Enumerable_OnError()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -587,7 +590,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_Many_Enumerable_OnCompleted()
         public void Amb_Many_Enumerable_OnCompleted()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -632,7 +635,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_Many_Enumerable_Many_Sources()
         public void Amb_Many_Enumerable_Many_Sources()
         {
         {
             for (var i = 0; i < 32; i++)
             for (var i = 0; i < 32; i++)
@@ -657,7 +660,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Amb_Many_Enumerable_Many_Sources_NoStackOverflow()
         public void Amb_Many_Enumerable_Many_Sources_NoStackOverflow()
         {
         {
             for (var i = 0; i < 100; i++)
             for (var i = 0; i < 100; i++)

+ 33 - 32
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AndTest.cs

@@ -6,14 +6,15 @@ using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class AndTest : ReactiveTest
     public class AndTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void And_ArgumentChecking()
         public void And_ArgumentChecking()
         {
         {
             var someObservable = Observable.Return(1);
             var someObservable = Observable.Return(1);
@@ -36,7 +37,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.And(someObservable, someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And<int>(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.And(someObservable, someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And(someObservable).And<int>(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And2()
         public void And2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -62,7 +63,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And2Error()
         public void And2Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -101,7 +102,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And3()
         public void And3()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -127,7 +128,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And3Error()
         public void And3Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -166,7 +167,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And4()
         public void And4()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -192,7 +193,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And4Error()
         public void And4Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -231,7 +232,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And5()
         public void And5()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -257,7 +258,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And5Error()
         public void And5Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -296,7 +297,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And6()
         public void And6()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -322,7 +323,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And6Error()
         public void And6Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -361,7 +362,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And7()
         public void And7()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -387,7 +388,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And7Error()
         public void And7Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -426,7 +427,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And8()
         public void And8()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -452,7 +453,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And8Error()
         public void And8Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -491,7 +492,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And9()
         public void And9()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -517,7 +518,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And9Error()
         public void And9Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -556,7 +557,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And10()
         public void And10()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -582,7 +583,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And10Error()
         public void And10Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -621,7 +622,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And11()
         public void And11()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -647,7 +648,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And11Error()
         public void And11Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -686,7 +687,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And12()
         public void And12()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -712,7 +713,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And12Error()
         public void And12Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -751,7 +752,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And13()
         public void And13()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -777,7 +778,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And13Error()
         public void And13Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -816,7 +817,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And14()
         public void And14()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -842,7 +843,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And14Error()
         public void And14Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -881,7 +882,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And15()
         public void And15()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -907,7 +908,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And15Error()
         public void And15Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -946,7 +947,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And16()
         public void And16()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -972,7 +973,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void And16Error()
         public void And16Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();

+ 15 - 14
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AnyTest.cs

@@ -7,13 +7,14 @@ using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class AnyTest : ReactiveTest
     public class AnyTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Any_ArgumentChecking()
         public void Any_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Any(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Any(default(IObservable<int>)));
@@ -21,7 +22,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Any(default(IObservable<int>), x => true));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Any(default(IObservable<int>), x => true));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Any_Empty()
         public void Any_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -45,7 +46,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Any_Return()
         public void Any_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -70,7 +71,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Any_Throw()
         public void Any_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -95,7 +96,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Any_Never()
         public void Any_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -118,7 +119,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Any_Predicate_Empty()
         public void Any_Predicate_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -142,7 +143,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Any_Predicate_Return()
         public void Any_Predicate_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -167,7 +168,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Any_Predicate_ReturnNotMatch()
         public void Any_Predicate_ReturnNotMatch()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -192,7 +193,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Any_Predicate_SomeNoneMatch()
         public void Any_Predicate_SomeNoneMatch()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -219,7 +220,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Any_Predicate_SomeMatch()
         public void Any_Predicate_SomeMatch()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -246,7 +247,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Any_Predicate_Throw()
         public void Any_Predicate_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -271,7 +272,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Any_Predicate_Never()
         public void Any_Predicate_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -292,7 +293,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Any_Predicate_PredicateThrows()
         public void Any_Predicate_PredicateThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();

+ 17 - 14
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AppendPrependTest.cs

@@ -6,13 +6,16 @@ using System;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class AppendPrependTest : ReactiveTest
     public class AppendPrependTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void AppendPrepend()
         public void AppendPrepend()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -35,7 +38,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void PrependAppend()
         public void PrependAppend()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -58,7 +61,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AppendPrepend_Scheduler()
         public void AppendPrepend_Scheduler()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -81,7 +84,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void PrependAppend_Scheduler()
         public void PrependAppend_Scheduler()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -104,7 +107,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AppendPrepend_Many()
         public void AppendPrepend_Many()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -131,7 +134,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void PrependAppend_Many()
         public void PrependAppend_Many()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -158,7 +161,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AppendPrepend_Many_Scheduler()
         public void AppendPrepend_Many_Scheduler()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -190,7 +193,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void PrependAppend_Many_Scheduler()
         public void PrependAppend_Many_Scheduler()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -222,7 +225,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AppendPrepend_Mixed()
         public void AppendPrepend_Mixed()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -249,7 +252,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AppendPrepend_Mixed_Scheduler()
         public void AppendPrepend_Mixed_Scheduler()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -281,7 +284,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AppendPrepend_MixedSchedulers()
         public void AppendPrepend_MixedSchedulers()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -313,7 +316,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AppendPrepend_SchedulerRecursive()
         public void AppendPrepend_SchedulerRecursive()
         {
         {
             using var scheduler = new EventLoopScheduler();
             using var scheduler = new EventLoopScheduler();
@@ -333,7 +336,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AppendPrepend_SchedulerLongRunning()
         public void AppendPrepend_SchedulerLongRunning()
         {
         {
             var scheduler = NewThreadScheduler.Default;
             var scheduler = NewThreadScheduler.Default;

+ 10 - 9
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AppendTest.cs

@@ -6,13 +6,14 @@ using System;
 using System.Linq;
 using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class AppendTest : ReactiveTest
     public class AppendTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Append_ArgumentChecking()
         public void Append_ArgumentChecking()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -24,7 +25,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Append(someObservable, 1, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Append(someObservable, 1, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Append()
         public void Append()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -46,7 +47,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Append_Null()
         public void Append_Null()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -68,7 +69,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Append_Scheduler()
         public void Append_Scheduler()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -90,7 +91,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Append_Many()
         public void Append_Many()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -114,7 +115,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Append_Many_Take()
         public void Append_Many_Take()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -136,7 +137,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Append_Many_Scheduler()
         public void Append_Many_Scheduler()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -160,7 +161,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Append_Many_Take_Scheduler()
         public void Append_Many_Take_Scheduler()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 12 - 9
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AsObservableTest.cs

@@ -5,20 +5,23 @@
 using System;
 using System;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class AsObservableTest : ReactiveTest
     public class AsObservableTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void AsObservable_ArgumentChecking()
         public void AsObservable_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.AsObservable<int>(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.AsObservable<int>(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AsObservable_AsObservable()
         public void AsObservable_AsObservable()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -47,7 +50,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AsObservable_Hides()
         public void AsObservable_Hides()
         {
         {
             var xs = Observable.Empty<int>();
             var xs = Observable.Empty<int>();
@@ -57,7 +60,7 @@ namespace ReactiveTests.Tests
             Assert.NotSame(xs, res);
             Assert.NotSame(xs, res);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AsObservable_Never()
         public void AsObservable_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -72,7 +75,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AsObservable_Empty()
         public void AsObservable_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -95,7 +98,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AsObservable_Throw()
         public void AsObservable_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -119,7 +122,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AsObservable_Return()
         public void AsObservable_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -144,7 +147,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AsObservable_IsNotEager()
         public void AsObservable_IsNotEager()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 8 - 5
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AutoConnectTest.cs

@@ -8,13 +8,16 @@ using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Subjects;
 using System.Reactive.Subjects;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class AutoConnectTest : ReactiveTest
     public class AutoConnectTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void AutoConnect_Basic()
         public void AutoConnect_Basic()
         {
         {
             var called = 0;
             var called = 0;
@@ -40,7 +43,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(new List<int>() { 1, 2, 3, 4, 5 }, list);
             Assert.Equal(new List<int>() { 1, 2, 3, 4, 5 }, list);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AutoConnect_Immediately()
         public void AutoConnect_Immediately()
         {
         {
             var called = 0;
             var called = 0;
@@ -66,7 +69,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(new List<int>() { 1, 2, 3, 4, 5 }, list);
             Assert.Equal(new List<int>() { 1, 2, 3, 4, 5 }, list);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AutoConnect_TwoConsumers()
         public void AutoConnect_TwoConsumers()
         {
         {
             var called = 0;
             var called = 0;
@@ -101,7 +104,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(new List<int>() { 1, 2, 3, 4, 5 }, list);
             Assert.Equal(new List<int>() { 1, 2, 3, 4, 5 }, list);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void AutoConnect_Dispose()
         public void AutoConnect_Dispose()
         {
         {
             var subject = new Subject<int>();
             var subject = new Subject<int>();

+ 73 - 72
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AverageTest.cs

@@ -7,13 +7,14 @@ using System.Linq;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class AverageTest : ReactiveTest
     public class AverageTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Average_ArgumentChecking()
         public void Average_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Average(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Average(default(IObservable<int>)));
@@ -50,7 +51,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Average(Observable.Empty<DateTime>(), default(Func<DateTime, long?>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Average(Observable.Empty<DateTime>(), default(Func<DateTime, long?>)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Int32_Empty()
         public void Average_Int32_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -73,7 +74,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Int32_Return()
         public void Average_Int32_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -98,7 +99,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Int32_Some()
         public void Average_Int32_Some()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -125,7 +126,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Int32_Throw()
         public void Average_Int32_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -150,7 +151,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Int32_Never()
         public void Average_Int32_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -173,7 +174,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Int64_Empty()
         public void Average_Int64_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -196,7 +197,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Int64_Return()
         public void Average_Int64_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -221,7 +222,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Int64_Some()
         public void Average_Int64_Some()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -248,7 +249,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Int64_Throw()
         public void Average_Int64_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -273,7 +274,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Int64_Never()
         public void Average_Int64_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -296,7 +297,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Double_Empty()
         public void Average_Double_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -319,7 +320,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Double_Return()
         public void Average_Double_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -344,7 +345,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Double_Some()
         public void Average_Double_Some()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -371,7 +372,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Double_Throw()
         public void Average_Double_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -396,7 +397,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Double_Never()
         public void Average_Double_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -419,7 +420,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Float_Empty()
         public void Average_Float_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -442,7 +443,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Float_Return()
         public void Average_Float_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -467,7 +468,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Float_Some()
         public void Average_Float_Some()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -494,7 +495,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Float_Throw()
         public void Average_Float_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -519,7 +520,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Float_Never()
         public void Average_Float_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -542,7 +543,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Decimal_Empty()
         public void Average_Decimal_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -565,7 +566,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Decimal_Return()
         public void Average_Decimal_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -590,7 +591,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Decimal_Some()
         public void Average_Decimal_Some()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -617,7 +618,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Decimal_Throw()
         public void Average_Decimal_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -642,7 +643,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Decimal_Never()
         public void Average_Decimal_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -665,7 +666,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Int32_Empty()
         public void Average_Nullable_Int32_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -689,7 +690,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Int32_Return()
         public void Average_Nullable_Int32_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -714,7 +715,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Int32_Some()
         public void Average_Nullable_Int32_Some()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -741,7 +742,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Int32_Throw()
         public void Average_Nullable_Int32_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -766,7 +767,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Int32_Never()
         public void Average_Nullable_Int32_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -789,7 +790,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Int64_Empty()
         public void Average_Nullable_Int64_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -813,7 +814,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Int64_Return()
         public void Average_Nullable_Int64_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -838,7 +839,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Int64_Some()
         public void Average_Nullable_Int64_Some()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -865,7 +866,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Int64_Throw()
         public void Average_Nullable_Int64_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -890,7 +891,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Int64_Never()
         public void Average_Nullable_Int64_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -913,7 +914,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Double_Empty()
         public void Average_Nullable_Double_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -937,7 +938,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Double_Return()
         public void Average_Nullable_Double_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -962,7 +963,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Double_Some()
         public void Average_Nullable_Double_Some()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -989,7 +990,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Double_Throw()
         public void Average_Nullable_Double_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -1014,7 +1015,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Double_Never()
         public void Average_Nullable_Double_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -1037,7 +1038,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Float_Empty()
         public void Average_Nullable_Float_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1061,7 +1062,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Float_Return()
         public void Average_Nullable_Float_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1086,7 +1087,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Float_Some()
         public void Average_Nullable_Float_Some()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1113,7 +1114,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Float_Throw()
         public void Average_Nullable_Float_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -1138,7 +1139,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Float_Never()
         public void Average_Nullable_Float_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -1161,7 +1162,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Decimal_Empty()
         public void Average_Nullable_Decimal_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1185,7 +1186,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Decimal_Return()
         public void Average_Nullable_Decimal_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1210,7 +1211,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Decimal_Some()
         public void Average_Nullable_Decimal_Some()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1237,7 +1238,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Decimal_Throw()
         public void Average_Nullable_Decimal_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -1262,7 +1263,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Nullable_Decimal_Never()
         public void Average_Nullable_Decimal_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -1287,7 +1288,7 @@ namespace ReactiveTests.Tests
 
 
 #if !NO_PERF
 #if !NO_PERF
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void Average_InjectOverflow_Int32()
         public void Average_InjectOverflow_Int32()
         {
         {
             var xs = Observable.Return(42, ThreadPoolScheduler.Instance);
             var xs = Observable.Return(42, ThreadPoolScheduler.Instance);
@@ -1297,7 +1298,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_InjectOverflow_Int64()
         public void Average_InjectOverflow_Int64()
         {
         {
             var xs = Observable.Return(42L, ThreadPoolScheduler.Instance);
             var xs = Observable.Return(42L, ThreadPoolScheduler.Instance);
@@ -1307,7 +1308,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_InjectOverflow_Double()
         public void Average_InjectOverflow_Double()
         {
         {
             var xs = Observable.Return(42.0, ThreadPoolScheduler.Instance);
             var xs = Observable.Return(42.0, ThreadPoolScheduler.Instance);
@@ -1317,7 +1318,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_InjectOverflow_Single()
         public void Average_InjectOverflow_Single()
         {
         {
             var xs = Observable.Return(42.0f, ThreadPoolScheduler.Instance);
             var xs = Observable.Return(42.0f, ThreadPoolScheduler.Instance);
@@ -1327,7 +1328,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_InjectOverflow_Decimal()
         public void Average_InjectOverflow_Decimal()
         {
         {
             var xs = Observable.Return(42.0m, ThreadPoolScheduler.Instance);
             var xs = Observable.Return(42.0m, ThreadPoolScheduler.Instance);
@@ -1337,7 +1338,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_InjectOverflow_Int32_Nullable()
         public void Average_InjectOverflow_Int32_Nullable()
         {
         {
             var xs = Observable.Return((int?)42, ThreadPoolScheduler.Instance);
             var xs = Observable.Return((int?)42, ThreadPoolScheduler.Instance);
@@ -1347,7 +1348,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_InjectOverflow_Int64_Nullable()
         public void Average_InjectOverflow_Int64_Nullable()
         {
         {
             var xs = Observable.Return((long?)42L, ThreadPoolScheduler.Instance);
             var xs = Observable.Return((long?)42L, ThreadPoolScheduler.Instance);
@@ -1357,7 +1358,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_InjectOverflow_Double_Nullable()
         public void Average_InjectOverflow_Double_Nullable()
         {
         {
             var xs = Observable.Return((double?)42.0, ThreadPoolScheduler.Instance);
             var xs = Observable.Return((double?)42.0, ThreadPoolScheduler.Instance);
@@ -1367,7 +1368,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_InjectOverflow_Single_Nullable()
         public void Average_InjectOverflow_Single_Nullable()
         {
         {
             var xs = Observable.Return((float?)42.0f, ThreadPoolScheduler.Instance);
             var xs = Observable.Return((float?)42.0f, ThreadPoolScheduler.Instance);
@@ -1377,7 +1378,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
             ReactiveAssert.Throws<OverflowException>(() => res.ForEach(_ => { }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_InjectOverflow_Decimal_Nullable()
         public void Average_InjectOverflow_Decimal_Nullable()
         {
         {
             var xs = Observable.Return((decimal?)42.0m, ThreadPoolScheduler.Instance);
             var xs = Observable.Return((decimal?)42.0m, ThreadPoolScheduler.Instance);
@@ -1410,7 +1411,7 @@ namespace ReactiveTests.Tests
 #endif
 #endif
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Selector_Regular_Int32()
         public void Average_Selector_Regular_Int32()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1434,7 +1435,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Selector_Regular_Int64()
         public void Average_Selector_Regular_Int64()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1458,7 +1459,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Selector_Regular_Single()
         public void Average_Selector_Regular_Single()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1482,7 +1483,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Selector_Regular_Double()
         public void Average_Selector_Regular_Double()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1506,7 +1507,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Selector_Regular_Decimal()
         public void Average_Selector_Regular_Decimal()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1530,7 +1531,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Selector_Regular_Int32_Nullable()
         public void Average_Selector_Regular_Int32_Nullable()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1554,7 +1555,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Selector_Regular_Int64_Nullable()
         public void Average_Selector_Regular_Int64_Nullable()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1578,7 +1579,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Selector_Regular_Single_Nullable()
         public void Average_Selector_Regular_Single_Nullable()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1602,7 +1603,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Selector_Regular_Double_Nullable()
         public void Average_Selector_Regular_Double_Nullable()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1626,7 +1627,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Average_Selector_Regular_Decimal_Nullable()
         public void Average_Selector_Regular_Decimal_Nullable()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 10 - 7
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/AwaitTest.cs

@@ -9,13 +9,16 @@ using System.Reactive.Linq;
 using System.Reactive.Subjects;
 using System.Reactive.Subjects;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class AwaitTest : ReactiveTest
     public class AwaitTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Await_ArgumentChecking()
         public void Await_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.GetAwaiter(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.GetAwaiter(default(IObservable<int>)));
@@ -24,7 +27,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.GetAwaiter(Observable.Empty<int>()).OnCompleted(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.GetAwaiter(Observable.Empty<int>()).OnCompleted(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Await()
         public void Await()
         {
         {
             SynchronizationContext.SetSynchronizationContext(null);
             SynchronizationContext.SetSynchronizationContext(null);
@@ -57,7 +60,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Await_Connectable()
         public void Await_Connectable()
         {
         {
             SynchronizationContext.SetSynchronizationContext(null);
             SynchronizationContext.SetSynchronizationContext(null);
@@ -92,7 +95,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(42, result);
             Assert.Equal(42, result);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Await_Error()
         public void Await_Error()
         {
         {
             SynchronizationContext.SetSynchronizationContext(null);
             SynchronizationContext.SetSynchronizationContext(null);
@@ -125,7 +128,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Await_Never()
         public void Await_Never()
         {
         {
             SynchronizationContext.SetSynchronizationContext(null);
             SynchronizationContext.SetSynchronizationContext(null);
@@ -157,7 +160,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Await_Empty()
         public void Await_Empty()
         {
         {
             SynchronizationContext.SetSynchronizationContext(null);
             SynchronizationContext.SetSynchronizationContext(null);

+ 43 - 42
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/BufferTest.cs

@@ -9,15 +9,16 @@ using System.Reactive.Concurrency;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class BufferTest : ReactiveTest
     public class BufferTest : ReactiveTest
     {
     {
         #region + Boundary +
         #region + Boundary +
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_ArgumentChecking()
         public void Buffer_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Buffer(default(IObservable<int>), DummyFunc<IObservable<int>>.Instance));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Buffer(default(IObservable<int>), DummyFunc<IObservable<int>>.Instance));
@@ -29,7 +30,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Buffer(DummyObservable<int>.Instance, default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Buffer(DummyObservable<int>.Instance, default(IObservable<int>)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Closings_Basic()
         public void Buffer_Closings_Basic()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -66,7 +67,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Closings_InnerSubscriptions()
         public void Buffer_Closings_InnerSubscriptions()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -139,7 +140,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Closings_Empty()
         public void Buffer_Closings_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -177,7 +178,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Closings_Dispose()
         public void Buffer_Closings_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -212,7 +213,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Closings_Error()
         public void Buffer_Closings_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -250,7 +251,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Closings_Throw()
         public void Buffer_Closings_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -284,7 +285,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Closings_WindowClose_Error()
         public void Buffer_Closings_WindowClose_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -318,7 +319,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_OpeningClosings_Basic()
         public void Buffer_OpeningClosings_Basic()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -372,7 +373,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Boundaries_Simple()
         public void Buffer_Boundaries_Simple()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -423,7 +424,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Boundaries_OnCompletedBoundaries()
         public void Buffer_Boundaries_OnCompletedBoundaries()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -470,7 +471,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Boundaries_OnErrorSource()
         public void Buffer_Boundaries_OnErrorSource()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -515,7 +516,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Boundaries_OnErrorBoundaries()
         public void Buffer_Boundaries_OnErrorBoundaries()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -567,7 +568,7 @@ namespace ReactiveTests.Tests
 
 
         #region + Count +
         #region + Count +
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Single_ArgumentChecking()
         public void Buffer_Single_ArgumentChecking()
         {
         {
             var someObservable = Observable.Empty<int>();
             var someObservable = Observable.Empty<int>();
@@ -580,7 +581,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.Buffer(someObservable, 0, 1));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.Buffer(someObservable, 0, 1));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Count_PartialWindow()
         public void Buffer_Count_PartialWindow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -608,7 +609,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Count_FullWindows()
         public void Buffer_Count_FullWindows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -637,7 +638,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Count_FullAndPartialWindows()
         public void Buffer_Count_FullAndPartialWindows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -666,7 +667,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Count_Error()
         public void Buffer_Count_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -695,7 +696,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Count_Skip_Less()
         public void Buffer_Count_Skip_Less()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -726,7 +727,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Count_Skip_More()
         public void Buffer_Count_Skip_More()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -755,7 +756,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithCount_ArgumentChecking()
         public void BufferWithCount_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Buffer(default(IObservable<int>), 1, 1));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Buffer(default(IObservable<int>), 1, 1));
@@ -765,7 +766,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.Buffer(DummyObservable<int>.Instance, 0));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.Buffer(DummyObservable<int>.Instance, 0));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithCount_Basic()
         public void BufferWithCount_Basic()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -800,7 +801,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithCount_Disposed()
         public void BufferWithCount_Disposed()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -832,7 +833,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithCount_Error()
         public void BufferWithCount_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -868,7 +869,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithCount_Default()
         public void BufferWithCount_Default()
         {
         {
             Observable.Range(1, 10).Buffer(3).Skip(1).First().AssertEqual(4, 5, 6);
             Observable.Range(1, 10).Buffer(3).Skip(1).First().AssertEqual(4, 5, 6);
@@ -879,7 +880,7 @@ namespace ReactiveTests.Tests
 
 
         #region + Time +
         #region + Time +
 
 
-        [Fact]
+        [TestMethod]
         public void Buffer_Time_ArgumentChecking()
         public void Buffer_Time_ArgumentChecking()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -893,7 +894,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Buffer(default(IObservable<int>), TimeSpan.Zero, TimeSpan.Zero, scheduler));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Buffer(default(IObservable<int>), TimeSpan.Zero, TimeSpan.Zero, scheduler));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTime_ArgumentChecking()
         public void BufferWithTime_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Buffer(default(IObservable<int>), TimeSpan.FromTicks(1), TimeSpan.FromTicks(1), DummyScheduler.Instance));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Buffer(default(IObservable<int>), TimeSpan.FromTicks(1), TimeSpan.FromTicks(1), DummyScheduler.Instance));
@@ -910,7 +911,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.Buffer(DummyObservable<int>.Instance, TimeSpan.FromTicks(-1)));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.Buffer(DummyObservable<int>.Instance, TimeSpan.FromTicks(-1)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTime_Basic1()
         public void BufferWithTime_Basic1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -947,7 +948,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTime_Basic2()
         public void BufferWithTime_Basic2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -982,7 +983,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTime_Error()
         public void BufferWithTime_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1020,7 +1021,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTime_Disposed()
         public void BufferWithTime_Disposed()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1052,7 +1053,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTime_Basic_Same()
         public void BufferWithTime_Basic_Same()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1087,7 +1088,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTime_Basic_Same_Periodic()
         public void BufferWithTime_Basic_Same_Periodic()
         {
         {
             var scheduler = new PeriodicTestScheduler();
             var scheduler = new PeriodicTestScheduler();
@@ -1128,7 +1129,7 @@ namespace ReactiveTests.Tests
 #endif
 #endif
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTime_Basic_Same_Periodic_Error()
         public void BufferWithTime_Basic_Same_Periodic_Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -1169,14 +1170,14 @@ namespace ReactiveTests.Tests
 #endif
 #endif
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTime_Default()
         public void BufferWithTime_Default()
         {
         {
             Observable.Range(0, 10).Buffer(TimeSpan.FromDays(1), TimeSpan.FromDays(1)).First().AssertEqual(Enumerable.Range(0, 10));
             Observable.Range(0, 10).Buffer(TimeSpan.FromDays(1), TimeSpan.FromDays(1)).First().AssertEqual(Enumerable.Range(0, 10));
             Observable.Range(0, 10).Buffer(TimeSpan.FromDays(1)).First().AssertEqual(Enumerable.Range(0, 10));
             Observable.Range(0, 10).Buffer(TimeSpan.FromDays(1)).First().AssertEqual(Enumerable.Range(0, 10));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTimeOrCount_ArgumentChecking()
         public void BufferWithTimeOrCount_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Buffer(default(IObservable<int>), TimeSpan.FromTicks(1), 1, DummyScheduler.Instance));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Buffer(default(IObservable<int>), TimeSpan.FromTicks(1), 1, DummyScheduler.Instance));
@@ -1188,7 +1189,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.Buffer(DummyObservable<int>.Instance, TimeSpan.FromTicks(1), 0));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.Buffer(DummyObservable<int>.Instance, TimeSpan.FromTicks(1), 0));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTimeOrCount_Basic()
         public void BufferWithTimeOrCount_Basic()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1226,7 +1227,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTimeOrCount_Error()
         public void BufferWithTimeOrCount_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1265,7 +1266,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTimeOrCount_Disposed()
         public void BufferWithTimeOrCount_Disposed()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1299,13 +1300,13 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTimeOrCount_Default()
         public void BufferWithTimeOrCount_Default()
         {
         {
             Observable.Range(1, 10, DefaultScheduler.Instance).Buffer(TimeSpan.FromDays(1), 3).Skip(1).First().AssertEqual(4, 5, 6);
             Observable.Range(1, 10, DefaultScheduler.Instance).Buffer(TimeSpan.FromDays(1), 3).Skip(1).First().AssertEqual(4, 5, 6);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void BufferWithTime_TickWhileOnCompleted()
         public void BufferWithTime_TickWhileOnCompleted()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 13 - 12
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CaseTest.cs

@@ -8,14 +8,15 @@ using System.Reactive.Concurrency;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class CaseTest : ReactiveTest
     public class CaseTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Case_ArgumentChecking()
         public void Case_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Case(null, new Dictionary<int, IObservable<int>>(), DummyObservable<int>.Instance));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Case(null, new Dictionary<int, IObservable<int>>(), DummyObservable<int>.Instance));
@@ -30,7 +31,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Case<int, int>(DummyFunc<int>.Instance, null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Case<int, int>(DummyFunc<int>.Instance, null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Case_One()
         public void Case_One()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -82,7 +83,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Case_Two()
         public void Case_Two()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -134,7 +135,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Case_Three()
         public void Case_Three()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -186,7 +187,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Case_Throw()
         public void Case_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -236,7 +237,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CaseWithDefault_One()
         public void CaseWithDefault_One()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -278,7 +279,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CaseWithDefault_Two()
         public void CaseWithDefault_Two()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -320,7 +321,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CaseWithDefault_Three()
         public void CaseWithDefault_Three()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -358,7 +359,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CaseWithDefault_Throw()
         public void CaseWithDefault_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -398,14 +399,14 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CaseWithDefault_CheckDefault()
         public void CaseWithDefault_CheckDefault()
         {
         {
             Observable.Case(() => 1, new Dictionary<int, IObservable<int>>(), DefaultScheduler.Instance)
             Observable.Case(() => 1, new Dictionary<int, IObservable<int>>(), DefaultScheduler.Instance)
                 .AssertEqual(Observable.Case(() => 1, new Dictionary<int, IObservable<int>>()));
                 .AssertEqual(Observable.Case(() => 1, new Dictionary<int, IObservable<int>>()));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Case_Error()
         public void Case_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 7 - 6
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CastTest.cs

@@ -7,21 +7,22 @@ using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class CastTest : ReactiveTest
     public class CastTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Cast_ArgumentChecking()
         public void Cast_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Cast<bool>(default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Cast<bool>(default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Cast<bool>(DummyObservable<object>.Instance).Subscribe(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Cast<bool>(DummyObservable<object>.Instance).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Cast_Complete()
         public void Cast_Complete()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -51,7 +52,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Cast_Error()
         public void Cast_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -83,7 +84,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Cast_Dispose()
         public void Cast_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -112,7 +113,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Cast_NotValid()
         public void Cast_NotValid()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 32 - 29
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CatchTest.cs

@@ -11,14 +11,17 @@ using System.Reactive.Linq;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class CatchTest : ReactiveTest
     public class CatchTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_ArgumentChecking()
         public void Catch_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Catch<int>(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Catch<int>(null));
@@ -29,7 +32,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Catch<int, Exception>(DummyObservable<int>.Instance, null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Catch<int, Exception>(DummyObservable<int>.Instance, null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_IEofIO_GetEnumeratorThrows()
         public void Catch_IEofIO_GetEnumeratorThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -47,7 +50,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_IEofIO()
         public void Catch_IEofIO()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -103,7 +106,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_NoErrors()
         public void Catch_NoErrors()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -138,7 +141,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Never()
         public void Catch_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -167,7 +170,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Empty()
         public void Catch_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -198,7 +201,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Return()
         public void Catch_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -231,7 +234,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Error()
         public void Catch_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -270,7 +273,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Error_Never()
         public void Catch_Error_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -306,7 +309,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Error_Error()
         public void Catch_Error_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -345,7 +348,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Multiple()
         public void Catch_Multiple()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -392,7 +395,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_ErrorSpecific_Caught()
         public void Catch_ErrorSpecific_Caught()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -435,7 +438,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_ErrorSpecific_Uncaught()
         public void Catch_ErrorSpecific_Uncaught()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -476,7 +479,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_HandlerThrows()
         public void Catch_HandlerThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -510,7 +513,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Nested_OuterCatches()
         public void Catch_Nested_OuterCatches()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -563,7 +566,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Nested_InnerCatches()
         public void Catch_Nested_InnerCatches()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -616,7 +619,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_ThrowFromNestedCatch()
         public void Catch_ThrowFromNestedCatch()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -672,7 +675,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_DefaultScheduler_Binary()
         public void Catch_DefaultScheduler_Binary()
         {
         {
             var evt = new ManualResetEvent(false);
             var evt = new ManualResetEvent(false);
@@ -688,7 +691,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(1, res);
             Assert.Equal(1, res);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_DefaultScheduler_Nary()
         public void Catch_DefaultScheduler_Nary()
         {
         {
             var evt = new ManualResetEvent(false);
             var evt = new ManualResetEvent(false);
@@ -704,7 +707,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(1, res);
             Assert.Equal(1, res);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_DefaultScheduler_NaryEnumerable()
         public void Catch_DefaultScheduler_NaryEnumerable()
         {
         {
             var evt = new ManualResetEvent(false);
             var evt = new ManualResetEvent(false);
@@ -722,7 +725,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(1, res);
             Assert.Equal(1, res);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_EmptyIterator()
         public void Catch_EmptyIterator()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -736,7 +739,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_IteratorThrows()
         public void Catch_IteratorThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -763,7 +766,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_EnumerableThrows()
         public void Catch_EnumerableThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -803,7 +806,7 @@ namespace ReactiveTests.Tests
             throw ex;
             throw ex;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_EnumerableTiming()
         public void Catch_EnumerableTiming()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -868,7 +871,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_Enumerable_Dispose()
         public void Catch_Enumerable_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -919,7 +922,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_PERF
 #if !NO_PERF
-        [Fact]
+        [TestMethod]
         public void Catch_TailRecursive1()
         public void Catch_TailRecursive1()
         {
         {
             var create = 0L;
             var create = 0L;
@@ -956,7 +959,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if HAS_STACKTRACE && !NO_THREAD
 #if HAS_STACKTRACE && !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void Catch_TailRecursive2()
         public void Catch_TailRecursive2()
         {
         {
             var f = default(Func<int, IObservable<int>>);
             var f = default(Func<int, IObservable<int>>);
@@ -969,7 +972,7 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void Catch_TailRecursive3()
         public void Catch_TailRecursive3()
         {
         {
             var ex = new Exception();
             var ex = new Exception();

+ 8 - 5
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ChunkifyTest.cs

@@ -8,20 +8,23 @@ using System.Linq;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class ChunkifyTest : ReactiveTest
     public class ChunkifyTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Chunkify_ArgumentChecking()
         public void Chunkify_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Chunkify(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Chunkify(default(IObservable<int>)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Chunkify_Regular1()
         public void Chunkify_Regular1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -75,7 +78,7 @@ namespace ReactiveTests.Tests
             Assert.True(res[6].SequenceEqual(new int[] { }));
             Assert.True(res[6].SequenceEqual(new int[] { }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Chunkify_Regular2()
         public void Chunkify_Regular2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -119,7 +122,7 @@ namespace ReactiveTests.Tests
             Assert.True(res[1].SequenceEqual(new int[] { 6, 7, 8 }));
             Assert.True(res[1].SequenceEqual(new int[] { 6, 7, 8 }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Chunkify_Error()
         public void Chunkify_Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();

+ 11 - 8
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CollectTest.cs

@@ -8,14 +8,17 @@ using System.Linq;
 using System.Reactive.Concurrency;
 using System.Reactive.Concurrency;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class CollectTest : ReactiveTest
     public class CollectTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Collect_ArgumentChecking()
         public void Collect_ArgumentChecking()
         {
         {
             var someObservable = Observable.Empty<int>();
             var someObservable = Observable.Empty<int>();
@@ -30,7 +33,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Collect(someObservable, () => 0, (x, y) => x, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Collect(someObservable, () => 0, (x, y) => x, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Collect_Regular1()
         public void Collect_Regular1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -84,7 +87,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(res[6], new int[] { }.Sum());
             Assert.Equal(res[6], new int[] { }.Sum());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Collect_Regular2()
         public void Collect_Regular2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -128,7 +131,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(res[1], new int[] { 6, 7, 8 }.Sum());
             Assert.Equal(res[1], new int[] { 6, 7, 8 }.Sum());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Collect_InitialCollectorThrows()
         public void Collect_InitialCollectorThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -166,7 +169,7 @@ namespace ReactiveTests.Tests
             Assert.Same(ex_, ex);
             Assert.Same(ex_, ex);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Collect_SecondCollectorThrows()
         public void Collect_SecondCollectorThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -218,7 +221,7 @@ namespace ReactiveTests.Tests
             Assert.Same(ex_, ex);
             Assert.Same(ex_, ex);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Collect_NewCollectorThrows()
         public void Collect_NewCollectorThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -259,7 +262,7 @@ namespace ReactiveTests.Tests
             Assert.Same(ex_, ex);
             Assert.Same(ex_, ex);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Collect_MergeThrows()
         public void Collect_MergeThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

文件差異過大導致無法顯示
+ 112 - 111
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CombineLatestTest.cs


+ 32 - 29
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ConcatTest.cs

@@ -13,14 +13,17 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class ConcatTest : ReactiveTest
     public class ConcatTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_ArgumentChecking()
         public void Concat_ArgumentChecking()
         {
         {
             var xs = DummyObservable<int>.Instance;
             var xs = DummyObservable<int>.Instance;
@@ -35,7 +38,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Concat(null, xs));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Concat(null, xs));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_DefaultScheduler()
         public void Concat_DefaultScheduler()
         {
         {
             var evt = new ManualResetEvent(false);
             var evt = new ManualResetEvent(false);
@@ -51,7 +54,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(6, sum);
             Assert.Equal(6, sum);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_IEofIO_DefaultScheduler()
         public void Concat_IEofIO_DefaultScheduler()
         {
         {
             var evt = new ManualResetEvent(false);
             var evt = new ManualResetEvent(false);
@@ -69,7 +72,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(6, sum);
             Assert.Equal(6, sum);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_IEofIO_GetEnumeratorThrows()
         public void Concat_IEofIO_GetEnumeratorThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -87,7 +90,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_IEofIO()
         public void Concat_IEofIO()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -143,7 +146,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_EmptyEmpty()
         public void Concat_EmptyEmpty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -175,7 +178,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_EmptyNever()
         public void Concat_EmptyNever()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -205,7 +208,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_NeverEmpty()
         public void Concat_NeverEmpty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -234,7 +237,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_NeverNever()
         public void Concat_NeverNever()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -262,7 +265,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_EmptyThrow()
         public void Concat_EmptyThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -296,7 +299,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_ThrowEmpty()
         public void Concat_ThrowEmpty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -329,7 +332,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_ThrowThrow()
         public void Concat_ThrowThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -362,7 +365,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_ReturnEmpty()
         public void Concat_ReturnEmpty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -396,7 +399,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_EmptyReturn()
         public void Concat_EmptyReturn()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -430,7 +433,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_ReturnNever()
         public void Concat_ReturnNever()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -462,7 +465,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_NeverReturn()
         public void Concat_NeverReturn()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -492,7 +495,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_ReturnReturn()
         public void Concat_ReturnReturn()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -530,7 +533,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_ThrowReturn()
         public void Concat_ThrowReturn()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -564,7 +567,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_ReturnThrow()
         public void Concat_ReturnThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -600,7 +603,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_SomeDataSomeData()
         public void Concat_SomeDataSomeData()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -642,7 +645,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_EnumerableThrows()
         public void Concat_EnumerableThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -682,7 +685,7 @@ namespace ReactiveTests.Tests
             throw ex;
             throw ex;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_EnumerableTiming()
         public void Concat_EnumerableTiming()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -751,7 +754,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_Enumerable_Dispose()
         public void Concat_Enumerable_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -801,7 +804,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_Optimization_DeferEvalTiming()
         public void Concat_Optimization_DeferEvalTiming()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -849,7 +852,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(230, invoked);
             Assert.Equal(230, invoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_Optimization_DeferExceptionPropagation()
         public void Concat_Optimization_DeferExceptionPropagation()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -883,7 +886,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_PERF
 #if !NO_PERF
-        [Fact]
+        [TestMethod]
         public void Concat_TailRecursive1()
         public void Concat_TailRecursive1()
         {
         {
             var create = 0L;
             var create = 0L;
@@ -920,7 +923,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD && !NETCOREAPP1_1 && !NETCOREAPP1_0
 #if !NO_THREAD && !NETCOREAPP1_1 && !NETCOREAPP1_0
-        [Fact]
+        [TestMethod]
         public void Concat_TailRecursive2()
         public void Concat_TailRecursive2()
         {
         {
             IObservable<int> f(int x) => Observable.Defer(() => Observable.Return(x, ThreadPoolScheduler.Instance).Concat(f(x + 1)));
             IObservable<int> f(int x) => Observable.Defer(() => Observable.Return(x, ThreadPoolScheduler.Instance).Concat(f(x + 1)));
@@ -932,7 +935,7 @@ namespace ReactiveTests.Tests
 #endif
 #endif
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void Concat_Task()
         public void Concat_Task()
         {
         {
             var tss = Observable.Concat(new[] { Task.Factory.StartNew(() => 1), Task.Factory.StartNew(() => 2), Task.Factory.StartNew(() => 3) }.ToObservable());
             var tss = Observable.Concat(new[] { Task.Factory.StartNew(() => 1), Task.Factory.StartNew(() => 2), Task.Factory.StartNew(() => 3) }.ToObservable());

+ 13 - 12
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ContainsTest.cs

@@ -8,14 +8,15 @@ using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class ContainsTest : ReactiveTest
     public class ContainsTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Contains_ArgumentChecking()
         public void Contains_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Contains(default, 42));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Contains(default, 42));
@@ -23,7 +24,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Contains(DummyObservable<int>.Instance, 42, null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Contains(DummyObservable<int>.Instance, 42, null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Contains_Empty()
         public void Contains_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -47,7 +48,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Contains_ReturnPositive()
         public void Contains_ReturnPositive()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -72,7 +73,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Contains_ReturnNegative()
         public void Contains_ReturnNegative()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -97,7 +98,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Contains_SomePositive()
         public void Contains_SomePositive()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -124,7 +125,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Contains_SomeNegative()
         public void Contains_SomeNegative()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -151,7 +152,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Contains_Throw()
         public void Contains_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -176,7 +177,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Contains_Never()
         public void Contains_Never()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -199,7 +200,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Contains_ComparerThrows()
         public void Contains_ComparerThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -237,7 +238,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Contains_ComparerContainsValue()
         public void Contains_ComparerContainsValue()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -266,7 +267,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Contains_ComparerDoesNotContainValue()
         public void Contains_ComparerDoesNotContainValue()
         {
         {
             var ex = new Exception();
             var ex = new Exception();

+ 21 - 20
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CountTest.cs

@@ -8,13 +8,14 @@ using System.Reactive.Concurrency;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class CountTest : ReactiveTest
     public class CountTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void Count_ArgumentChecking()
         public void Count_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Count(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Count(default(IObservable<int>)));
@@ -22,7 +23,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Count(DummyObservable<int>.Instance, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Count(DummyObservable<int>.Instance, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Empty()
         public void Count_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -46,7 +47,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Return()
         public void Count_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -71,7 +72,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Some()
         public void Count_Some()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -98,7 +99,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Throw()
         public void Count_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -123,7 +124,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Never()
         public void Count_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -145,7 +146,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_PERF && !NO_THREAD
 #if !NO_PERF && !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void Count_InjectOverflow()
         public void Count_InjectOverflow()
         {
         {
             var xs = Observable.Return(42, ThreadPoolScheduler.Instance);
             var xs = Observable.Return(42, ThreadPoolScheduler.Instance);
@@ -156,7 +157,7 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Predicate_Empty_True()
         public void Count_Predicate_Empty_True()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -180,7 +181,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Predicate_Empty_False()
         public void Count_Predicate_Empty_False()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -204,7 +205,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Predicate_Return_True()
         public void Count_Predicate_Return_True()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -229,7 +230,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Predicate_Return_False()
         public void Count_Predicate_Return_False()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -254,7 +255,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Predicate_Some_All()
         public void Count_Predicate_Some_All()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -281,7 +282,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Predicate_Some_None()
         public void Count_Predicate_Some_None()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -308,7 +309,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Predicate_Some_Even()
         public void Count_Predicate_Some_Even()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -335,7 +336,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Predicate_Throw_True()
         public void Count_Predicate_Throw_True()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -360,7 +361,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Predicate_Throw_False()
         public void Count_Predicate_Throw_False()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -385,7 +386,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Predicate_Never()
         public void Count_Predicate_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -406,7 +407,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Predicate_PredicateThrows()
         public void Count_Predicate_PredicateThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -443,7 +444,7 @@ namespace ReactiveTests.Tests
 
 
 #if !NO_PERF && !NO_THREAD && !CRIPPLED_REFLECTION
 #if !NO_PERF && !NO_THREAD && !CRIPPLED_REFLECTION
 
 
-        [Fact]
+        [TestMethod]
         public void Count_Predicate_InjectOverflow()
         public void Count_Predicate_InjectOverflow()
         {
         {
             var xs = Observable.Return(42, ThreadPoolScheduler.Instance);
             var xs = Observable.Return(42, ThreadPoolScheduler.Instance);

+ 39 - 26
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CreateAsyncTest.cs

@@ -12,14 +12,17 @@ using System.Reactive.Linq;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class CreateAsyncTest : ReactiveTest
     public class CreateAsyncTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_ArgumentChecking()
         public void CreateAsync_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Create(default(Func<IObserver<int>, Task>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Create(default(Func<IObserver<int>, Task>)));
@@ -30,7 +33,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Create(default(Func<IObserver<int>, CancellationToken, Task<Action>>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Create(default(Func<IObserver<int>, CancellationToken, Task<Action>>)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_NullCoalescingAction1()
         public void CreateAsync_NullCoalescingAction1()
         {
         {
             var xs = Observable.Create<int>(o =>
             var xs = Observable.Create<int>(o =>
@@ -46,7 +49,7 @@ namespace ReactiveTests.Tests
             Assert.True(lst.SequenceEqual(new[] { 42 }));
             Assert.True(lst.SequenceEqual(new[] { 42 }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_NullCoalescingAction2()
         public void CreateAsync_NullCoalescingAction2()
         {
         {
             var xs = Observable.Create<int>((o, ct) =>
             var xs = Observable.Create<int>((o, ct) =>
@@ -62,7 +65,7 @@ namespace ReactiveTests.Tests
             Assert.True(lst.SequenceEqual(new[] { 42 }));
             Assert.True(lst.SequenceEqual(new[] { 42 }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_NullCoalescingDisposable1()
         public void CreateAsync_NullCoalescingDisposable1()
         {
         {
             var xs = Observable.Create<int>(o =>
             var xs = Observable.Create<int>(o =>
@@ -78,7 +81,7 @@ namespace ReactiveTests.Tests
             Assert.True(lst.SequenceEqual(new[] { 42 }));
             Assert.True(lst.SequenceEqual(new[] { 42 }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_NullCoalescingDisposable2()
         public void CreateAsync_NullCoalescingDisposable2()
         {
         {
             var xs = Observable.Create<int>((o, ct) =>
             var xs = Observable.Create<int>((o, ct) =>
@@ -111,7 +114,7 @@ namespace ReactiveTests.Tests
             return tcs.Task;
             return tcs.Task;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Never()
         public void CreateAsync_Never()
         {
         {
             RunSynchronously(() =>
             RunSynchronously(() =>
@@ -155,7 +158,7 @@ namespace ReactiveTests.Tests
             return tcs.Task;
             return tcs.Task;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Completed1()
         public void CreateAsync_Completed1()
         {
         {
             RunSynchronously(() =>
             RunSynchronously(() =>
@@ -197,7 +200,7 @@ namespace ReactiveTests.Tests
             return tcs.Task;
             return tcs.Task;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Completed2()
         public void CreateAsync_Completed2()
         {
         {
             RunSynchronously(() =>
             RunSynchronously(() =>
@@ -239,7 +242,7 @@ namespace ReactiveTests.Tests
             return tcs.Task;
             return tcs.Task;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Error1()
         public void CreateAsync_Error1()
         {
         {
             RunSynchronously(() =>
             RunSynchronously(() =>
@@ -283,7 +286,7 @@ namespace ReactiveTests.Tests
             return tcs.Task;
             return tcs.Task;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Error2()
         public void CreateAsync_Error2()
         {
         {
             RunSynchronously(() =>
             RunSynchronously(() =>
@@ -311,7 +314,7 @@ namespace ReactiveTests.Tests
             throw exception;
             throw exception;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Error3()
         public void CreateAsync_Error3()
         {
         {
             RunSynchronously(() =>
             RunSynchronously(() =>
@@ -351,7 +354,7 @@ namespace ReactiveTests.Tests
             return tcs.Task;
             return tcs.Task;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Cancel1()
         public void CreateAsync_Cancel1()
         {
         {
             RunSynchronously(() =>
             RunSynchronously(() =>
@@ -393,7 +396,7 @@ namespace ReactiveTests.Tests
             return tcs.Task;
             return tcs.Task;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Cancel2()
         public void CreateAsync_Cancel2()
         {
         {
             RunSynchronously(() =>
             RunSynchronously(() =>
@@ -435,7 +438,7 @@ namespace ReactiveTests.Tests
             return tcs.Task;
             return tcs.Task;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Cancel3()
         public void CreateAsync_Cancel3()
         {
         {
             RunSynchronously(() =>
             RunSynchronously(() =>
@@ -478,7 +481,7 @@ namespace ReactiveTests.Tests
             return tcs.Task;
             return tcs.Task;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Cancel4()
         public void CreateAsync_Cancel4()
         {
         {
             RunSynchronously(() =>
             RunSynchronously(() =>
@@ -529,7 +532,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Task_Simple()
         public void CreateAsync_Task_Simple()
         {
         {
             var xs = Observable.Create<int>(observer =>
             var xs = Observable.Create<int>(observer =>
@@ -547,7 +550,7 @@ namespace ReactiveTests.Tests
             Assert.True(new[] { 42 }.SequenceEqual(lst));
             Assert.True(new[] { 42 }.SequenceEqual(lst));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Task_Token()
         public void CreateAsync_Task_Token()
         {
         {
             var e = new ManualResetEvent(false);
             var e = new ManualResetEvent(false);
@@ -571,15 +574,25 @@ namespace ReactiveTests.Tests
             });
             });
 
 
             var lst = new List<int>();
             var lst = new List<int>();
-            var d = xs.Subscribe(lst.Add);
+            var d = xs.Subscribe(i => { lock (lst) { lst.Add(i); } });
 
 
             e.WaitOne();
             e.WaitOne();
             d.Dispose();
             d.Dispose();
 
 
-            Assert.True(lst.Take(10).SequenceEqual(Enumerable.Repeat(42, 10)));
+            // Although Dispose will set the _isStopped gate in the AutoDetachObserver that our
+            // observer gets wrapped in, it's possible that the thread we kicked off had just
+            // made one of its calls to observer.OnNext, and that this had just got past the
+            // _isStopped gate when we called Dispose, meaning that it might right now be inside
+            // List<int>.Add. We're synchronizing access to the list to ensure that any such
+            // call has completed by the time we try to inspect the list.
+
+            lock (lst)
+            {
+                Assert.True(lst.Take(10).SequenceEqual(Enumerable.Repeat(42, 10)));
+            }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_IDisposable_Simple()
         public void CreateAsync_IDisposable_Simple()
         {
         {
             var stopped = new ManualResetEvent(false);
             var stopped = new ManualResetEvent(false);
@@ -604,7 +617,7 @@ namespace ReactiveTests.Tests
             Assert.True(new[] { 42 }.SequenceEqual(lst));
             Assert.True(new[] { 42 }.SequenceEqual(lst));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_IDisposable_Token()
         public void CreateAsync_IDisposable_Token()
         {
         {
             var stopped = new ManualResetEvent(false);
             var stopped = new ManualResetEvent(false);
@@ -642,7 +655,7 @@ namespace ReactiveTests.Tests
             Assert.True(lst.Take(10).SequenceEqual(Enumerable.Repeat(42, 10)));
             Assert.True(lst.Take(10).SequenceEqual(Enumerable.Repeat(42, 10)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Action_Simple()
         public void CreateAsync_Action_Simple()
         {
         {
             var stopped = new ManualResetEvent(false);
             var stopped = new ManualResetEvent(false);
@@ -667,7 +680,7 @@ namespace ReactiveTests.Tests
             Assert.True(new[] { 42 }.SequenceEqual(lst));
             Assert.True(new[] { 42 }.SequenceEqual(lst));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateAsync_Action_Token()
         public void CreateAsync_Action_Token()
         {
         {
             var stopped = new ManualResetEvent(false);
             var stopped = new ManualResetEvent(false);
@@ -706,7 +719,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 
 
-        [Fact]
+        [TestMethod]
         public void CreateWithTaskDisposable_NoPrematureTermination()
         public void CreateWithTaskDisposable_NoPrematureTermination()
         {
         {
             var obs = Observable.Create<int>(async o =>
             var obs = Observable.Create<int>(async o =>
@@ -725,7 +738,7 @@ namespace ReactiveTests.Tests
             var result = obs.Take(1).Wait();
             var result = obs.Take(1).Wait();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateWithTaskAction_NoPrematureTermination()
         public void CreateWithTaskAction_NoPrematureTermination()
         {
         {
             var obs = Observable.Create<int>(async o =>
             var obs = Observable.Create<int>(async o =>

+ 34 - 31
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/CreateTest.cs

@@ -11,14 +11,17 @@ using System.Reactive.Disposables;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class CreateTest : ReactiveTest
     public class CreateTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Create_ArgumentChecking()
         public void Create_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Create(default(Func<IObserver<int>, Action>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Create(default(Func<IObserver<int>, Action>)));
@@ -37,7 +40,7 @@ namespace ReactiveTests.Tests
             }).Subscribe(null));
             }).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Create_NullCoalescingAction()
         public void Create_NullCoalescingAction()
         {
         {
             var xs = Observable.Create<int>(o =>
             var xs = Observable.Create<int>(o =>
@@ -53,7 +56,7 @@ namespace ReactiveTests.Tests
             Assert.True(lst.SequenceEqual(new[] { 42 }));
             Assert.True(lst.SequenceEqual(new[] { 42 }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Create_Next()
         public void Create_Next()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -73,7 +76,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Create_Completed()
         public void Create_Completed()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -94,7 +97,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Create_Error()
         public void Create_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -117,14 +120,14 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Create_Exception()
         public void Create_Exception()
         {
         {
             ReactiveAssert.Throws<InvalidOperationException>(() =>
             ReactiveAssert.Throws<InvalidOperationException>(() =>
                 Observable.Create(new Func<IObserver<int>, Action>(o => { throw new InvalidOperationException(); })).Subscribe());
                 Observable.Create(new Func<IObserver<int>, Action>(o => { throw new InvalidOperationException(); })).Subscribe());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Create_Dispose()
         public void Create_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -177,7 +180,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Create_ObserverThrows()
         public void Create_ObserverThrows()
         {
         {
             ReactiveAssert.Throws<InvalidOperationException>(() =>
             ReactiveAssert.Throws<InvalidOperationException>(() =>
@@ -200,7 +203,7 @@ namespace ReactiveTests.Tests
                 }).Subscribe(x => { }, ex => { }, () => { throw new InvalidOperationException(); }));
                 }).Subscribe(x => { }, ex => { }, () => { throw new InvalidOperationException(); }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateWithDisposable_ArgumentChecking()
         public void CreateWithDisposable_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Create(default(Func<IObserver<int>, IDisposable>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Create(default(Func<IObserver<int>, IDisposable>)));
@@ -212,7 +215,7 @@ namespace ReactiveTests.Tests
             }).Subscribe(null));
             }).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateWithDisposable_NullCoalescingAction()
         public void CreateWithDisposable_NullCoalescingAction()
         {
         {
             var xs = Observable.Create<int>(o =>
             var xs = Observable.Create<int>(o =>
@@ -228,7 +231,7 @@ namespace ReactiveTests.Tests
             Assert.True(lst.SequenceEqual(new[] { 42 }));
             Assert.True(lst.SequenceEqual(new[] { 42 }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateWithDisposable_Next()
         public void CreateWithDisposable_Next()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -248,7 +251,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateWithDisposable_Completed()
         public void CreateWithDisposable_Completed()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -269,7 +272,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateWithDisposable_Error()
         public void CreateWithDisposable_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -292,14 +295,14 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateWithDisposable_Exception()
         public void CreateWithDisposable_Exception()
         {
         {
             ReactiveAssert.Throws<InvalidOperationException>(() =>
             ReactiveAssert.Throws<InvalidOperationException>(() =>
                 Observable.Create(new Func<IObserver<int>, IDisposable>(o => { throw new InvalidOperationException(); })).Subscribe());
                 Observable.Create(new Func<IObserver<int>, IDisposable>(o => { throw new InvalidOperationException(); })).Subscribe());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateWithDisposable_Dispose()
         public void CreateWithDisposable_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -352,7 +355,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void CreateWithDisposable_ObserverThrows()
         public void CreateWithDisposable_ObserverThrows()
         {
         {
             ReactiveAssert.Throws<InvalidOperationException>(() =>
             ReactiveAssert.Throws<InvalidOperationException>(() =>
@@ -375,7 +378,7 @@ namespace ReactiveTests.Tests
                 }).Subscribe(x => { }, ex => { }, () => { throw new InvalidOperationException(); }));
                 }).Subscribe(x => { }, ex => { }, () => { throw new InvalidOperationException(); }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Iterate_ArgumentChecking()
         public void Iterate_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ObservableEx.Create<int>(default));
             ReactiveAssert.Throws<ArgumentNullException>(() => ObservableEx.Create<int>(default));
@@ -397,7 +400,7 @@ namespace ReactiveTests.Tests
             observer.OnNext(4);
             observer.OnNext(4);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Iterate_Complete()
         public void Iterate_Complete()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -461,7 +464,7 @@ namespace ReactiveTests.Tests
             observer.OnNext(4);
             observer.OnNext(4);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Iterate_Complete_Implicit()
         public void Iterate_Complete_Implicit()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -533,7 +536,7 @@ namespace ReactiveTests.Tests
             observer.OnCompleted();
             observer.OnCompleted();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Iterate_Iterator_Throw()
         public void Iterate_Iterator_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -602,7 +605,7 @@ namespace ReactiveTests.Tests
             observer.OnCompleted();
             observer.OnCompleted();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Iterate_Iterator_Error()
         public void Iterate_Iterator_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -666,7 +669,7 @@ namespace ReactiveTests.Tests
             observer.OnNext(4);
             observer.OnNext(4);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Iterate_Complete_Dispose()
         public void Iterate_Complete_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -719,7 +722,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void IteratorScenario()
         public void IteratorScenario()
         {
         {
             var xs = ObservableEx.Create<int>(o => _IteratorScenario(100, 1000, o));
             var xs = ObservableEx.Create<int>(o => _IteratorScenario(100, 1000, o));
@@ -740,7 +743,7 @@ namespace ReactiveTests.Tests
             results.OnNext(ys.Value);
             results.OnNext(ys.Value);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Iterate_Void_ArgumentChecking()
         public void Iterate_Void_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ObservableEx.Create(default));
             ReactiveAssert.Throws<ArgumentNullException>(() => ObservableEx.Create(default));
@@ -756,7 +759,7 @@ namespace ReactiveTests.Tests
             yield return zs.Select(x => new object());
             yield return zs.Select(x => new object());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Iterate_Void_Complete()
         public void Iterate_Void_Complete()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -812,7 +815,7 @@ namespace ReactiveTests.Tests
             yield return zs.Select(x => new object());
             yield return zs.Select(x => new object());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Iterate_Void_Complete_Implicit()
         public void Iterate_Void_Complete_Implicit()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -873,7 +876,7 @@ namespace ReactiveTests.Tests
             yield return zs.Select(x => new object());
             yield return zs.Select(x => new object());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Iterate_Void_Iterator_Throw()
         public void Iterate_Void_Iterator_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -930,7 +933,7 @@ namespace ReactiveTests.Tests
             yield return zs.Select(x => new object());
             yield return zs.Select(x => new object());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Iterate_Void_Complete_Dispose()
         public void Iterate_Void_Complete_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -980,7 +983,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Iterate_Void_Func_Throw()
         public void Iterate_Void_Func_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1003,7 +1006,7 @@ namespace ReactiveTests.Tests
             yield return ys;
             yield return ys;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void IteratorScenario_Void()
         public void IteratorScenario_Void()
         {
         {
             var xs = ObservableEx.Create(() => _IteratorScenario_Void(100, 1000));
             var xs = ObservableEx.Create(() => _IteratorScenario_Void(100, 1000));

+ 9 - 8
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DefaultIfEmptyTest.cs

@@ -6,21 +6,22 @@ using System;
 using System.Linq;
 using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class DefaultIfEmptyTest : ReactiveTest
     public class DefaultIfEmptyTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void DefaultIfEmpty_ArgumentChecking()
         public void DefaultIfEmpty_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DefaultIfEmpty(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DefaultIfEmpty(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DefaultIfEmpty(default, 42));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DefaultIfEmpty(default, 42));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DefaultIfEmpty_NonEmpty1()
         public void DefaultIfEmpty_NonEmpty1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -46,7 +47,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DefaultIfEmpty_NonEmpty2()
         public void DefaultIfEmpty_NonEmpty2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -72,7 +73,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DefaultIfEmpty_Empty1()
         public void DefaultIfEmpty_Empty1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -95,7 +96,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DefaultIfEmpty_Empty2()
         public void DefaultIfEmpty_Empty2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -118,7 +119,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DefaultIfEmpty_Throw1()
         public void DefaultIfEmpty_Throw1()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -142,7 +143,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DefaultIfEmpty_Throw2()
         public void DefaultIfEmpty_Throw2()
         {
         {
             var ex = new Exception();
             var ex = new Exception();

+ 8 - 5
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DeferAsyncTest.cs

@@ -8,21 +8,24 @@ using System.Reactive.Linq;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class DeferAsyncTest : ReactiveTest
     public class DeferAsyncTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void DeferAsync_ArgumentChecking()
         public void DeferAsync_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Defer(default(Func<Task<IObservable<int>>>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Defer(default(Func<Task<IObservable<int>>>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DeferAsync(default(Func<CancellationToken, Task<IObservable<int>>>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DeferAsync(default(Func<CancellationToken, Task<IObservable<int>>>)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DeferAsync_Simple()
         public void DeferAsync_Simple()
         {
         {
             var xs = Observable.Defer(() => Task.Factory.StartNew(() => Observable.Return(42)));
             var xs = Observable.Defer(() => Task.Factory.StartNew(() => Observable.Return(42)));
@@ -32,7 +35,7 @@ namespace ReactiveTests.Tests
             Assert.True(new[] { 42 }.SequenceEqual(res));
             Assert.True(new[] { 42 }.SequenceEqual(res));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DeferAsync_WithCancel_Simple()
         public void DeferAsync_WithCancel_Simple()
         {
         {
             var xs = Observable.DeferAsync(ct => Task.Factory.StartNew(() => Observable.Return(42)));
             var xs = Observable.DeferAsync(ct => Task.Factory.StartNew(() => Observable.Return(42)));
@@ -42,7 +45,7 @@ namespace ReactiveTests.Tests
             Assert.True(new[] { 42 }.SequenceEqual(res));
             Assert.True(new[] { 42 }.SequenceEqual(res));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DeferAsync_WithCancel_Cancel()
         public void DeferAsync_WithCancel_Cancel()
         {
         {
             var N = 10;// 0000;
             var N = 10;// 0000;

+ 9 - 6
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DeferTest.cs

@@ -6,14 +6,17 @@ using System;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class DeferTest : ReactiveTest
     public class DeferTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Defer_ArgumentChecking()
         public void Defer_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Defer(default(Func<IObservable<int>>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Defer(default(Func<IObservable<int>>)));
@@ -21,7 +24,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws</*some*/Exception>(() => Observable.Defer(() => default(IObservable<int>)).Subscribe());
             ReactiveAssert.Throws</*some*/Exception>(() => Observable.Defer(() => default(IObservable<int>)).Subscribe());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Defer_Complete()
         public void Defer_Complete()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -52,7 +55,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Defer_Error()
         public void Defer_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -84,7 +87,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Defer_Dispose()
         public void Defer_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -116,7 +119,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Defer_Throw()
         public void Defer_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 11 - 8
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DelaySubscriptionTest.cs

@@ -9,14 +9,17 @@ using System.Reactive.Concurrency;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class DelaySubscriptionTest : ReactiveTest
     public class DelaySubscriptionTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void DelaySubscription_ArgumentChecking()
         public void DelaySubscription_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DelaySubscription(default(IObservable<int>), DateTimeOffset.Now));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DelaySubscription(default(IObservable<int>), DateTimeOffset.Now));
@@ -31,7 +34,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.DelaySubscription(DummyObservable<int>.Instance, TimeSpan.FromSeconds(-1), Scheduler.Immediate));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.DelaySubscription(DummyObservable<int>.Instance, TimeSpan.FromSeconds(-1), Scheduler.Immediate));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DelaySubscription_TimeSpan_Default()
         public void DelaySubscription_TimeSpan_Default()
         {
         {
             var lst = new List<int>();
             var lst = new List<int>();
@@ -39,7 +42,7 @@ namespace ReactiveTests.Tests
             Assert.True(Enumerable.Range(0, 10).SequenceEqual(lst));
             Assert.True(Enumerable.Range(0, 10).SequenceEqual(lst));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DelaySubscription_TimeSpan_Simple()
         public void DelaySubscription_TimeSpan_Simple()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -65,7 +68,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DelaySubscription_TimeSpan_Error()
         public void DelaySubscription_TimeSpan_Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -93,7 +96,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DelaySubscription_DateTimeOffset_Default()
         public void DelaySubscription_DateTimeOffset_Default()
         {
         {
             var lst = new List<int>();
             var lst = new List<int>();
@@ -101,7 +104,7 @@ namespace ReactiveTests.Tests
             Assert.True(Enumerable.Range(0, 10).SequenceEqual(lst));
             Assert.True(Enumerable.Range(0, 10).SequenceEqual(lst));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DelaySubscription_DateTimeOffset_Simple()
         public void DelaySubscription_DateTimeOffset_Simple()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -127,7 +130,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DelaySubscription_DateTimeOffset_Error()
         public void DelaySubscription_DateTimeOffset_Error()
         {
         {
             var ex = new Exception();
             var ex = new Exception();

+ 69 - 66
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DelayTest.cs

@@ -14,14 +14,17 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class DelayTest : ReactiveTest
     public class DelayTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_ArgumentChecking()
         public void Delay_ArgumentChecking()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -38,13 +41,13 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.Delay(someObservable, TimeSpan.FromSeconds(-1), scheduler));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.Delay(someObservable, TimeSpan.FromSeconds(-1), scheduler));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Simple1()
         public void Delay_TimeSpan_Simple1()
         {
         {
             Delay_TimeSpan_Simple1_Impl(false);
             Delay_TimeSpan_Simple1_Impl(false);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Simple1_Stopwatch()
         public void Delay_TimeSpan_Simple1_Stopwatch()
         {
         {
             Delay_TimeSpan_Simple1_Impl(true);
             Delay_TimeSpan_Simple1_Impl(true);
@@ -78,13 +81,13 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DateTimeOffset_Simple1()
         public void Delay_DateTimeOffset_Simple1()
         {
         {
             Delay_DateTimeOffset_Simple1_Impl(false);
             Delay_DateTimeOffset_Simple1_Impl(false);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DateTimeOffset_Simple1_Stopwatch()
         public void Delay_DateTimeOffset_Simple1_Stopwatch()
         {
         {
             Delay_DateTimeOffset_Simple1_Impl(true);
             Delay_DateTimeOffset_Simple1_Impl(true);
@@ -118,13 +121,13 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Simple2()
         public void Delay_TimeSpan_Simple2()
         {
         {
             Delay_TimeSpan_Simple2_Impl(false);
             Delay_TimeSpan_Simple2_Impl(false);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Simple2_Stopwatch()
         public void Delay_TimeSpan_Simple2_Stopwatch()
         {
         {
             Delay_TimeSpan_Simple2_Impl(true);
             Delay_TimeSpan_Simple2_Impl(true);
@@ -158,13 +161,13 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DateTimeOffset_Simple2()
         public void Delay_DateTimeOffset_Simple2()
         {
         {
             Delay_DateTimeOffset_Simple2_Impl(false);
             Delay_DateTimeOffset_Simple2_Impl(false);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DateTimeOffset_Simple2_Stopwatch()
         public void Delay_DateTimeOffset_Simple2_Stopwatch()
         {
         {
             Delay_DateTimeOffset_Simple2_Impl(true);
             Delay_DateTimeOffset_Simple2_Impl(true);
@@ -198,13 +201,13 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Simple3()
         public void Delay_TimeSpan_Simple3()
         {
         {
             Delay_TimeSpan_Simple3_Impl(false);
             Delay_TimeSpan_Simple3_Impl(false);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Simple3_Stopwatch()
         public void Delay_TimeSpan_Simple3_Stopwatch()
         {
         {
             Delay_TimeSpan_Simple3_Impl(true);
             Delay_TimeSpan_Simple3_Impl(true);
@@ -238,13 +241,13 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DateTimeOffset_Simple3()
         public void Delay_DateTimeOffset_Simple3()
         {
         {
             Delay_DateTimeOffset_Simple3_Impl(false);
             Delay_DateTimeOffset_Simple3_Impl(false);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DateTimeOffset_Simple3_Stopwatch()
         public void Delay_DateTimeOffset_Simple3_Stopwatch()
         {
         {
             Delay_DateTimeOffset_Simple3_Impl(true);
             Delay_DateTimeOffset_Simple3_Impl(true);
@@ -278,13 +281,13 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Error1()
         public void Delay_TimeSpan_Error1()
         {
         {
             Delay_TimeSpan_Error1_Impl(false);
             Delay_TimeSpan_Error1_Impl(false);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Error1_Stopwatch()
         public void Delay_TimeSpan_Error1_Stopwatch()
         {
         {
             Delay_TimeSpan_Error1_Impl(true);
             Delay_TimeSpan_Error1_Impl(true);
@@ -320,13 +323,13 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DateTimeOffset_Error1()
         public void Delay_DateTimeOffset_Error1()
         {
         {
             Delay_DateTimeOffset_Error1_Impl(false);
             Delay_DateTimeOffset_Error1_Impl(false);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DateTimeOffset_Error1_Stopwatch()
         public void Delay_DateTimeOffset_Error1_Stopwatch()
         {
         {
             Delay_DateTimeOffset_Error1_Impl(true);
             Delay_DateTimeOffset_Error1_Impl(true);
@@ -362,13 +365,13 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Error2()
         public void Delay_TimeSpan_Error2()
         {
         {
             Delay_TimeSpan_Error2_Impl(false);
             Delay_TimeSpan_Error2_Impl(false);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Error2_Stopwatch()
         public void Delay_TimeSpan_Error2_Stopwatch()
         {
         {
             Delay_TimeSpan_Error2_Impl(true);
             Delay_TimeSpan_Error2_Impl(true);
@@ -403,13 +406,13 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DateTimeOffset_Error2()
         public void Delay_DateTimeOffset_Error2()
         {
         {
             Delay_DateTimeOffset_Error2_Impl(false);
             Delay_DateTimeOffset_Error2_Impl(false);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DateTimeOffset_Error2_Stopwatch()
         public void Delay_DateTimeOffset_Error2_Stopwatch()
         {
         {
             Delay_DateTimeOffset_Error2_Impl(true);
             Delay_DateTimeOffset_Error2_Impl(true);
@@ -445,13 +448,13 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Real_Simple1()
         public void Delay_TimeSpan_Real_Simple1()
         {
         {
             Delay_TimeSpan_Real_Simple1_Impl(ThreadPoolScheduler.Instance.DisableOptimizations());
             Delay_TimeSpan_Real_Simple1_Impl(ThreadPoolScheduler.Instance.DisableOptimizations());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Real_Simple1_Stopwatch()
         public void Delay_TimeSpan_Real_Simple1_Stopwatch()
         {
         {
             Delay_TimeSpan_Real_Simple1_Impl(ThreadPoolScheduler.Instance);
             Delay_TimeSpan_Real_Simple1_Impl(ThreadPoolScheduler.Instance);
@@ -481,13 +484,13 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Real_Error1()
         public void Delay_TimeSpan_Real_Error1()
         {
         {
             Delay_TimeSpan_Real_Error1_Impl(ThreadPoolScheduler.Instance.DisableOptimizations());
             Delay_TimeSpan_Real_Error1_Impl(ThreadPoolScheduler.Instance.DisableOptimizations());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Real_Error1_Stopwatch()
         public void Delay_TimeSpan_Real_Error1_Stopwatch()
         {
         {
             Delay_TimeSpan_Real_Error1_Impl(ThreadPoolScheduler.Instance);
             Delay_TimeSpan_Real_Error1_Impl(ThreadPoolScheduler.Instance);
@@ -519,13 +522,13 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Real_Error2()
         public void Delay_TimeSpan_Real_Error2()
         {
         {
             Delay_TimeSpan_Real_Error2_Impl(ThreadPoolScheduler.Instance.DisableOptimizations());
             Delay_TimeSpan_Real_Error2_Impl(ThreadPoolScheduler.Instance.DisableOptimizations());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Real_Error2_Stopwatch()
         public void Delay_TimeSpan_Real_Error2_Stopwatch()
         {
         {
             Delay_TimeSpan_Real_Error2_Impl(ThreadPoolScheduler.Instance);
             Delay_TimeSpan_Real_Error2_Impl(ThreadPoolScheduler.Instance);
@@ -558,13 +561,13 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Real_Error3()
         public void Delay_TimeSpan_Real_Error3()
         {
         {
             Delay_TimeSpan_Real_Error3_Impl(ThreadPoolScheduler.Instance.DisableOptimizations());
             Delay_TimeSpan_Real_Error3_Impl(ThreadPoolScheduler.Instance.DisableOptimizations());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Real_Error3_Stopwatch()
         public void Delay_TimeSpan_Real_Error3_Stopwatch()
         {
         {
             Delay_TimeSpan_Real_Error3_Impl(ThreadPoolScheduler.Instance);
             Delay_TimeSpan_Real_Error3_Impl(ThreadPoolScheduler.Instance);
@@ -599,7 +602,7 @@ namespace ReactiveTests.Tests
             Assert.Same(ex, err);
             Assert.Same(ex, err);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_Positive()
         public void Delay_TimeSpan_Positive()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -627,7 +630,7 @@ namespace ReactiveTests.Tests
             res.Messages.AssertEqual(expected);
             res.Messages.AssertEqual(expected);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Empty()
         public void Delay_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -650,7 +653,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Error()
         public void Delay_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -675,7 +678,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Never()
         public void Delay_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -696,19 +699,19 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_TimeSpan_DefaultScheduler()
         public void Delay_TimeSpan_DefaultScheduler()
         {
         {
             Assert.True(Observable.Return(1).Delay(TimeSpan.FromMilliseconds(1)).ToEnumerable().SequenceEqual(new[] { 1 }));
             Assert.True(Observable.Return(1).Delay(TimeSpan.FromMilliseconds(1)).ToEnumerable().SequenceEqual(new[] { 1 }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DateTimeOffset_DefaultScheduler()
         public void Delay_DateTimeOffset_DefaultScheduler()
         {
         {
             Assert.True(Observable.Return(1).Delay(DateTimeOffset.UtcNow + TimeSpan.FromMilliseconds(1)).ToEnumerable().SequenceEqual(new[] { 1 }));
             Assert.True(Observable.Return(1).Delay(DateTimeOffset.UtcNow + TimeSpan.FromMilliseconds(1)).ToEnumerable().SequenceEqual(new[] { 1 }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_CrossingMessages()
         public void Delay_CrossingMessages()
         {
         {
             var lst = new List<int>();
             var lst = new List<int>();
@@ -738,7 +741,7 @@ namespace ReactiveTests.Tests
             Assert.True(Enumerable.Range(0, 10).SequenceEqual(lst));
             Assert.True(Enumerable.Range(0, 10).SequenceEqual(lst));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_ArgumentChecking()
         public void Delay_Duration_ArgumentChecking()
         {
         {
             var someObservable = DummyObservable<int>.Instance;
             var someObservable = DummyObservable<int>.Instance;
@@ -750,7 +753,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Delay(someObservable, someObservable, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Delay(someObservable, someObservable, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_Simple1()
         public void Delay_Duration_Simple1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -783,7 +786,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_Simple2()
         public void Delay_Duration_Simple2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -828,7 +831,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_Simple3()
         public void Delay_Duration_Simple3()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -873,7 +876,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_Simple4_InnerEmpty()
         public void Delay_Duration_Simple4_InnerEmpty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -918,7 +921,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_Dispose1()
         public void Delay_Duration_Dispose1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -960,7 +963,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_Dispose2()
         public void Delay_Duration_Dispose2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -994,7 +997,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_OuterError1()
         public void Delay_Duration_OuterError1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1036,7 +1039,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_OuterError2()
         public void Delay_Duration_OuterError2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1083,7 +1086,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_InnerError1()
         public void Delay_Duration_InnerError1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1131,7 +1134,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_InnerError2()
         public void Delay_Duration_InnerError2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1173,7 +1176,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_SelectorThrows1()
         public void Delay_Duration_SelectorThrows1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1221,7 +1224,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_Simple()
         public void Delay_Duration_Simple()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1255,7 +1258,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_DeferOnCompleted()
         public void Delay_Duration_DeferOnCompleted()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1289,7 +1292,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_InnerError()
         public void Delay_Duration_InnerError()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1327,7 +1330,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_OuterError()
         public void Delay_Duration_OuterError()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1362,7 +1365,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_SelectorThrows2()
         public void Delay_Duration_SelectorThrows2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1405,7 +1408,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_Selector_Immediately()
         public void Delay_Duration_Selector_Immediately()
         {
         {
             var list = new List<int>();
             var list = new List<int>();
@@ -1417,7 +1420,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(new List<int>() { 1, 2, 3, 4, 5 }, list);
             Assert.Equal(new List<int>() { 1, 2, 3, 4, 5 }, list);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_InnerDone()
         public void Delay_Duration_InnerDone()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1452,7 +1455,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Duration_InnerSubscriptionTimes()
         public void Delay_Duration_InnerSubscriptionTimes()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1500,7 +1503,7 @@ namespace ReactiveTests.Tests
             ys[2].Subscriptions.AssertEqual(Subscribe(450, 450 + 30));
             ys[2].Subscriptions.AssertEqual(Subscribe(450, 450 + 30));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DurationAndSubscription_Simple1()
         public void Delay_DurationAndSubscription_Simple1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1540,7 +1543,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DurationAndSubscription_Simple2()
         public void Delay_DurationAndSubscription_Simple2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1580,7 +1583,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DurationAndSubscription_Dispose1()
         public void Delay_DurationAndSubscription_Dispose1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1617,7 +1620,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DurationAndSubscription_Dispose2()
         public void Delay_DurationAndSubscription_Dispose2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1652,7 +1655,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_DurationAndSubscription_Error()
         public void Delay_DurationAndSubscription_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1689,7 +1692,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_ErrorHandling1()
         public void Delay_ErrorHandling1()
         {
         {
             //
             //
@@ -1756,7 +1759,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_LongRunning_CancelEarly()
         public void Delay_LongRunning_CancelEarly()
         {
         {
             var xs = Observable.Create<int>(observer =>
             var xs = Observable.Create<int>(observer =>
@@ -1808,7 +1811,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_LongRunning_CancelLate()
         public void Delay_LongRunning_CancelLate()
         {
         {
             var xs = Observable.Return(42);
             var xs = Observable.Return(42);
@@ -1825,7 +1828,7 @@ namespace ReactiveTests.Tests
             e.WaitOne();
             e.WaitOne();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Delay_Selector_Immediate()
         public void Delay_Selector_Immediate()
         {
         {
             var result = 0;
             var result = 0;

+ 11 - 10
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DematerializeTest.cs

@@ -6,20 +6,21 @@ using System;
 using System.Reactive;
 using System.Reactive;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class DematerializeTest : ReactiveTest
     public class DematerializeTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Dematerialize_ArgumentChecking()
         public void Dematerialize_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Dematerialize<int>(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Dematerialize<int>(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Dematerialize_Range1()
         public void Dematerialize_Range1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -45,7 +46,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Dematerialize_Range2()
         public void Dematerialize_Range2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -71,7 +72,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Dematerialize_Error1()
         public void Dematerialize_Error1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -99,7 +100,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Dematerialize_Error2()
         public void Dematerialize_Error2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -127,7 +128,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Materialize_Dematerialize_Never()
         public void Materialize_Dematerialize_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -142,7 +143,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Materialize_Dematerialize_Empty()
         public void Materialize_Dematerialize_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -165,7 +166,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Materialize_Dematerialize_Return()
         public void Materialize_Dematerialize_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -190,7 +191,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Materialize_Dematerialize_Throw()
         public void Materialize_Dematerialize_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 15 - 14
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DistinctTest.cs

@@ -8,14 +8,15 @@ using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class DistinctTest : ReactiveTest
     public class DistinctTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Distinct_ArgumentChecking()
         public void Distinct_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Distinct(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Distinct(default(IObservable<int>)));
@@ -28,7 +29,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Distinct(DummyObservable<int>.Instance, x => x, default(EqualityComparer<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Distinct(DummyObservable<int>.Instance, x => x, default(EqualityComparer<int>)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Distinct_DefaultComparer_AllDistinct()
         public void Distinct_DefaultComparer_AllDistinct()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -60,7 +61,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Distinct_DefaultComparer_SomeDuplicates()
         public void Distinct_DefaultComparer_SomeDuplicates()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -90,7 +91,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Distinct_CustomComparer_AllDistinct()
         public void Distinct_CustomComparer_AllDistinct()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -122,7 +123,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Distinct_CustomComparer_SomeDuplicates()
         public void Distinct_CustomComparer_SomeDuplicates()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -172,7 +173,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Distinct_KeySelector_DefaultComparer_AllDistinct()
         public void Distinct_KeySelector_DefaultComparer_AllDistinct()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -204,7 +205,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Distinct_KeySelector_DefaultComparer_SomeDuplicates()
         public void Distinct_KeySelector_DefaultComparer_SomeDuplicates()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -234,7 +235,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Distinct_KeySelector_CustomComparer_AllDistinct()
         public void Distinct_KeySelector_CustomComparer_AllDistinct()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -266,7 +267,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Distinct_KeySelector_CustomComparer_SomeDuplicates()
         public void Distinct_KeySelector_CustomComparer_SomeDuplicates()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -296,7 +297,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Distinct_KeySelector_Throws()
         public void Distinct_KeySelector_Throws()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -327,7 +328,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Distinct_CustomComparer_Throws()
         public void Distinct_CustomComparer_Throws()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -386,7 +387,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Distinct_Throw()
         public void Distinct_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -416,7 +417,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Distinct_Null()
         public void Distinct_Null()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 16 - 15
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DistinctUntilChangedTest.cs

@@ -6,14 +6,15 @@ using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class DistinctUntilChangedTest : ReactiveTest
     public class DistinctUntilChangedTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_ArgumentChecking()
         public void DistinctUntilChanged_ArgumentChecking()
         {
         {
             var someObservable = Observable.Empty<int>();
             var someObservable = Observable.Empty<int>();
@@ -28,7 +29,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DistinctUntilChanged(someObservable, null, EqualityComparer<int>.Default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DistinctUntilChanged(someObservable, null, EqualityComparer<int>.Default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_Never()
         public void DistinctUntilChanged_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -43,7 +44,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_Empty()
         public void DistinctUntilChanged_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -66,7 +67,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_Return()
         public void DistinctUntilChanged_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -91,7 +92,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_Throw()
         public void DistinctUntilChanged_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -115,7 +116,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_AllChanges()
         public void DistinctUntilChanged_AllChanges()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -146,7 +147,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_AllSame()
         public void DistinctUntilChanged_AllSame()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -174,7 +175,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_SomeChanges()
         public void DistinctUntilChanged_SomeChanges()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -209,7 +210,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_Comparer_AllEqual()
         public void DistinctUntilChanged_Comparer_AllEqual()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -237,7 +238,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_Comparer_AllDifferent()
         public void DistinctUntilChanged_Comparer_AllDifferent()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -268,7 +269,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_KeySelector_Div2()
         public void DistinctUntilChanged_KeySelector_Div2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -317,7 +318,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_KeySelectorThrows()
         public void DistinctUntilChanged_KeySelectorThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -339,7 +340,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_ComparerThrows()
         public void DistinctUntilChanged_ComparerThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -383,7 +384,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DistinctUntilChanged_KeySelector_Comparer()
         public void DistinctUntilChanged_KeySelector_Comparer()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 27 - 24
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DoTest.cs

@@ -6,14 +6,17 @@ using System;
 using System.Reactive;
 using System.Reactive;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class DoTest : ReactiveTest
     public class DoTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Do_ArgumentChecking()
         public void Do_ArgumentChecking()
         {
         {
             var someObservable = Observable.Empty<int>();
             var someObservable = Observable.Empty<int>();
@@ -34,7 +37,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Do(someObservable, default(IObserver<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Do(someObservable, default(IObserver<int>)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do_ShouldSeeAllValues()
         public void Do_ShouldSeeAllValues()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -70,7 +73,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do_PlainAction()
         public void Do_PlainAction()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -104,7 +107,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do_NextCompleted()
         public void Do_NextCompleted()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -142,7 +145,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do_NextCompleted_Never()
         public void Do_NextCompleted_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -166,7 +169,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do_NextError()
         public void Do_NextError()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -206,7 +209,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do_NextErrorNot()
         public void Do_NextErrorNot()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -244,7 +247,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do_NextErrorCompleted()
         public void Do_NextErrorCompleted()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -284,7 +287,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do_NextErrorCompletedError()
         public void Do_NextErrorCompletedError()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -326,7 +329,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do_NextErrorCompletedNever()
         public void Do_NextErrorCompletedNever()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -352,7 +355,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do_Observer_SomeDataWithError()
         public void Do_Observer_SomeDataWithError()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -394,7 +397,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do_Observer_SomeDataWithoutError()
         public void Do_Observer_SomeDataWithoutError()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -434,7 +437,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do1422_Next_NextThrows()
         public void Do1422_Next_NextThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -460,7 +463,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do1422_NextCompleted_NextThrows()
         public void Do1422_NextCompleted_NextThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -486,7 +489,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do1422_NextCompleted_CompletedThrows()
         public void Do1422_NextCompleted_CompletedThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -513,7 +516,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do1422_NextError_NextThrows()
         public void Do1422_NextError_NextThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -539,7 +542,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do1422_NextError_ErrorThrows()
         public void Do1422_NextError_ErrorThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -565,7 +568,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do1422_NextErrorCompleted_NextThrows()
         public void Do1422_NextErrorCompleted_NextThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -591,7 +594,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do1422_NextErrorCompleted_ErrorThrows()
         public void Do1422_NextErrorCompleted_ErrorThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -617,7 +620,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do1422_NextErrorCompleted_CompletedThrows()
         public void Do1422_NextErrorCompleted_CompletedThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -644,7 +647,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do1422_Observer_NextThrows()
         public void Do1422_Observer_NextThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -670,7 +673,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do1422_Observer_ErrorThrows()
         public void Do1422_Observer_ErrorThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -696,7 +699,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Do1422_Observer_CompletedThrows()
         public void Do1422_Observer_CompletedThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 9 - 8
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/DoWhileTest.cs

@@ -6,21 +6,22 @@ using System;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class DoWhileTest : ReactiveTest
     public class DoWhileTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void DoWhile_ArgumentChecking()
         public void DoWhile_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DoWhile(DummyObservable<int>.Instance, null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DoWhile(DummyObservable<int>.Instance, null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DoWhile(default(IObservable<int>), DummyFunc<bool>.Instance));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.DoWhile(default(IObservable<int>), DummyFunc<bool>.Instance));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DoWhile_AlwaysFalse()
         public void DoWhile_AlwaysFalse()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -48,7 +49,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DoWhile_AlwaysTrue()
         public void DoWhile_AlwaysTrue()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -86,7 +87,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DoWhile_AlwaysTrue_Throw()
         public void DoWhile_AlwaysTrue_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -108,7 +109,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DoWhile_AlwaysTrue_Infinite()
         public void DoWhile_AlwaysTrue_Infinite()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -128,7 +129,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DoWhile_SometimesTrue()
         public void DoWhile_SometimesTrue()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -168,7 +169,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void DoWhile_SometimesThrows()
         public void DoWhile_SometimesThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 7 - 6
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ElementAtOrDefaultTest.cs

@@ -7,21 +7,22 @@ using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class ElementAtOrDefaultTest : ReactiveTest
     public class ElementAtOrDefaultTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void ElementAtOrDefault_ArgumentChecking()
         public void ElementAtOrDefault_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.ElementAtOrDefault(default(IObservable<int>), 2));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.ElementAtOrDefault(default(IObservable<int>), 2));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.ElementAtOrDefault(DummyObservable<int>.Instance, -1));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.ElementAtOrDefault(DummyObservable<int>.Instance, -1));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ElementAtOrDefault_First()
         public void ElementAtOrDefault_First()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -47,7 +48,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ElementAtOrDefault_Other()
         public void ElementAtOrDefault_Other()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -73,7 +74,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ElementAtOrDefault_OutOfRange()
         public void ElementAtOrDefault_OutOfRange()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -99,7 +100,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ElementAtOrDefault_Error()
         public void ElementAtOrDefault_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 7 - 6
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ElementAtTest.cs

@@ -7,21 +7,22 @@ using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class ElementAtTest : ReactiveTest
     public class ElementAtTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void ElementAt_ArgumentChecking()
         public void ElementAt_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.ElementAt(default(IObservable<int>), 2));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.ElementAt(default(IObservable<int>), 2));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.ElementAt(DummyObservable<int>.Instance, -1));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => Observable.ElementAt(DummyObservable<int>.Instance, -1));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ElementAt_First()
         public void ElementAt_First()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -47,7 +48,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ElementAt_Other()
         public void ElementAt_Other()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -73,7 +74,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ElementAt_OutOfRange()
         public void ElementAt_OutOfRange()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -94,7 +95,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ElementAt_Error()
         public void ElementAt_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 11 - 8
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/EmptyTest.cs

@@ -8,14 +8,17 @@ using System.Reactive.Linq;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class EmptyTest : ReactiveTest
     public class EmptyTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Empty_ArgumentChecking()
         public void Empty_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Empty<int>(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Empty<int>(null));
@@ -23,7 +26,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Empty<int>(DummyScheduler.Instance).Subscribe(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Empty<int>(DummyScheduler.Instance).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Empty_Basic()
         public void Empty_Basic()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -37,7 +40,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Empty_Disposed()
         public void Empty_Disposed()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -51,7 +54,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Empty_ObserverThrows()
         public void Empty_ObserverThrows()
         {
         {
             var scheduler1 = new TestScheduler();
             var scheduler1 = new TestScheduler();
@@ -63,13 +66,13 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<InvalidOperationException>(() => scheduler1.Start());
             ReactiveAssert.Throws<InvalidOperationException>(() => scheduler1.Start());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Empty_DefaultScheduler()
         public void Empty_DefaultScheduler()
         {
         {
             Observable.Empty<int>().AssertEqual(Observable.Empty<int>(DefaultScheduler.Instance));
             Observable.Empty<int>().AssertEqual(Observable.Empty<int>(DefaultScheduler.Instance));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Empty_Basic_Witness1()
         public void Empty_Basic_Witness1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -83,7 +86,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Empty_Basic_Witness2()
         public void Empty_Basic_Witness2()
         {
         {
             var e = new ManualResetEvent(false);
             var e = new ManualResetEvent(false);

+ 11 - 8
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ExpandTest.cs

@@ -7,14 +7,17 @@ using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class ExpandTest : ReactiveTest
     public class ExpandTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Expand_ArgumentChecking()
         public void Expand_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ObservableEx.Expand(null, DummyFunc<int, IObservable<int>>.Instance, DummyScheduler.Instance));
             ReactiveAssert.Throws<ArgumentNullException>(() => ObservableEx.Expand(null, DummyFunc<int, IObservable<int>>.Instance, DummyScheduler.Instance));
@@ -24,7 +27,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => ObservableEx.Expand(DummyObservable<int>.Instance, null));
             ReactiveAssert.Throws<ArgumentNullException>(() => ObservableEx.Expand(DummyObservable<int>.Instance, null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Expand_Default()
         public void Expand_Default()
         {
         {
             var b = Observable.Return(1).Expand(x => x < 10 ? Observable.Return(x + 1) : Observable.Empty<int>())
             var b = Observable.Return(1).Expand(x => x < 10 ? Observable.Return(x + 1) : Observable.Empty<int>())
@@ -33,7 +36,7 @@ namespace ReactiveTests.Tests
             Assert.True(b);
             Assert.True(b);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Expand_Empty()
         public void Expand_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -59,7 +62,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Expand_Error()
         public void Expand_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -87,7 +90,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Expand_Never()
         public void Expand_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -111,7 +114,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Expand_Basic()
         public void Expand_Basic()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -152,7 +155,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Expand_Throw()
         public void Expand_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 14 - 11
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FinallyTest.cs

@@ -6,14 +6,17 @@ using System;
 using System.Reactive;
 using System.Reactive;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class FinallyTest : ReactiveTest
     public class FinallyTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void Finally_ArgumentChecking()
         public void Finally_ArgumentChecking()
         {
         {
             var someObservable = Observable.Empty<int>();
             var someObservable = Observable.Empty<int>();
@@ -22,7 +25,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Finally(someObservable, null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Finally(someObservable, null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Finally_Never()
         public void Finally_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -38,7 +41,7 @@ namespace ReactiveTests.Tests
             Assert.True(invoked); // due to unsubscribe; see 1356
             Assert.True(invoked); // due to unsubscribe; see 1356
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Finally_OnlyCalledOnce_Never()
         public void Finally_OnlyCalledOnce_Never()
         {
         {
             var invokeCount = 0;
             var invokeCount = 0;
@@ -50,7 +53,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(1, invokeCount);
             Assert.Equal(1, invokeCount);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Finally_OnlyCalledOnce_Empty()
         public void Finally_OnlyCalledOnce_Empty()
         {
         {
             var invokeCount = 0;
             var invokeCount = 0;
@@ -62,7 +65,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(1, invokeCount);
             Assert.Equal(1, invokeCount);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Finally_Empty()
         public void Finally_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -88,7 +91,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Finally_Return()
         public void Finally_Return()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -116,7 +119,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Finally_Throw()
         public void Finally_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -143,7 +146,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Finally_DisposeOrder_Empty()
         public void Finally_DisposeOrder_Empty()
         {
         {
             var order = "";
             var order = "";
@@ -157,7 +160,7 @@ namespace ReactiveTests.Tests
             Assert.Equal("123", order);
             Assert.Equal("123", order);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Finally_DisposeOrder_Return()
         public void Finally_DisposeOrder_Return()
         {
         {
             var order = "";
             var order = "";
@@ -171,7 +174,7 @@ namespace ReactiveTests.Tests
             Assert.Equal("123", order);
             Assert.Equal("123", order);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Finally_DisposeOrder_Never()
         public void Finally_DisposeOrder_Never()
         {
         {
             var order = "";
             var order = "";

+ 11 - 10
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FirstAsyncTest.cs

@@ -6,13 +6,14 @@ using System;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class FirstAsyncTest : ReactiveTest
     public class FirstAsyncTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void FirstAsync_ArgumentChecking()
         public void FirstAsync_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FirstAsync(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FirstAsync(default(IObservable<int>)));
@@ -20,7 +21,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FirstAsync(DummyObservable<int>.Instance, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FirstAsync(DummyObservable<int>.Instance, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstAsync_Empty()
         public void FirstAsync_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -43,7 +44,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstAsync_One()
         public void FirstAsync_One()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -68,7 +69,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstAsync_Many()
         public void FirstAsync_Many()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -94,7 +95,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstAsync_Error()
         public void FirstAsync_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -119,7 +120,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstAsync_Predicate()
         public void FirstAsync_Predicate()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -147,7 +148,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstAsync_Predicate_None()
         public void FirstAsync_Predicate_None()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -174,7 +175,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstAsync_Predicate_Throw()
         public void FirstAsync_Predicate_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -200,7 +201,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstAsync_PredicateThrows()
         public void FirstAsync_PredicateThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 11 - 10
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FirstOrDefaultAsyncTest.cs

@@ -6,13 +6,14 @@ using System;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class FirstOrDefaultAsyncTest : ReactiveTest
     public class FirstOrDefaultAsyncTest : ReactiveTest
     {
     {
-        [Fact]
+        [TestMethod]
         public void FirstOrDefaultAsync_ArgumentChecking()
         public void FirstOrDefaultAsync_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FirstOrDefaultAsync(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FirstOrDefaultAsync(default(IObservable<int>)));
@@ -20,7 +21,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FirstOrDefaultAsync(DummyObservable<int>.Instance, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FirstOrDefaultAsync(DummyObservable<int>.Instance, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefaultAsync_Empty()
         public void FirstOrDefaultAsync_Empty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -44,7 +45,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefaultAsync_One()
         public void FirstOrDefaultAsync_One()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -69,7 +70,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefaultAsync_Many()
         public void FirstOrDefaultAsync_Many()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -95,7 +96,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefaultAsync_Error()
         public void FirstOrDefaultAsync_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -120,7 +121,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefaultAsync_Predicate()
         public void FirstOrDefaultAsync_Predicate()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -150,7 +151,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefaultAsync_Predicate_None()
         public void FirstOrDefaultAsync_Predicate_None()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -180,7 +181,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefaultAsync_Predicate_Throw()
         public void FirstOrDefaultAsync_Predicate_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -206,7 +207,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefaultAsync_PredicateThrows()
         public void FirstOrDefaultAsync_PredicateThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 11 - 8
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FirstOrDefaultTest.cs

@@ -10,14 +10,17 @@ using System.Reactive.Linq;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class FirstOrDefaultTest : ReactiveTest
     public class FirstOrDefaultTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefault_ArgumentChecking()
         public void FirstOrDefault_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FirstOrDefault(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FirstOrDefault(default(IObservable<int>)));
@@ -25,26 +28,26 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FirstOrDefault(DummyObservable<int>.Instance, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FirstOrDefault(DummyObservable<int>.Instance, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefault_Empty()
         public void FirstOrDefault_Empty()
         {
         {
             Assert.Equal(default, Observable.Empty<int>().FirstOrDefault());
             Assert.Equal(default, Observable.Empty<int>().FirstOrDefault());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefaultPredicate_Empty()
         public void FirstOrDefaultPredicate_Empty()
         {
         {
             Assert.Equal(default, Observable.Empty<int>().FirstOrDefault(_ => true));
             Assert.Equal(default, Observable.Empty<int>().FirstOrDefault(_ => true));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefault_Return()
         public void FirstOrDefault_Return()
         {
         {
             var value = 42;
             var value = 42;
             Assert.Equal(value, Observable.Return(value).FirstOrDefault());
             Assert.Equal(value, Observable.Return(value).FirstOrDefault());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefault_Throw()
         public void FirstOrDefault_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -54,7 +57,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.FirstOrDefault());
             ReactiveAssert.Throws(ex, () => xs.FirstOrDefault());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstOrDefault_Range()
         public void FirstOrDefault_Range()
         {
         {
             var value = 42;
             var value = 42;
@@ -62,7 +65,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void FirstOrDefault_NoDoubleSet()
         public void FirstOrDefault_NoDoubleSet()
         {
         {
             //
             //

+ 14 - 11
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FirstTest.cs

@@ -7,14 +7,17 @@ using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class FirstTest : ReactiveTest
     public class FirstTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void First_ArgumentChecking()
         public void First_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.First(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.First(default(IObservable<int>)));
@@ -22,40 +25,40 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.First(DummyObservable<int>.Instance, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.First(DummyObservable<int>.Instance, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void First_Empty()
         public void First_Empty()
         {
         {
             ReactiveAssert.Throws<InvalidOperationException>(() => Observable.Empty<int>().First());
             ReactiveAssert.Throws<InvalidOperationException>(() => Observable.Empty<int>().First());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstPredicate_Empty()
         public void FirstPredicate_Empty()
         {
         {
             ReactiveAssert.Throws<InvalidOperationException>(() => Observable.Empty<int>().First(_ => true));
             ReactiveAssert.Throws<InvalidOperationException>(() => Observable.Empty<int>().First(_ => true));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void First_Return()
         public void First_Return()
         {
         {
             var value = 42;
             var value = 42;
             Assert.Equal(value, Observable.Return(value).First());
             Assert.Equal(value, Observable.Return(value).First());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstPredicate_Return()
         public void FirstPredicate_Return()
         {
         {
             var value = 42;
             var value = 42;
             Assert.Equal(value, Observable.Return(value).First(i => i % 2 == 0));
             Assert.Equal(value, Observable.Return(value).First(i => i % 2 == 0));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstPredicate_Return_NoMatch()
         public void FirstPredicate_Return_NoMatch()
         {
         {
             var value = 42;
             var value = 42;
             ReactiveAssert.Throws<InvalidOperationException>(() => Observable.Return(value).First(i => i % 2 != 0));
             ReactiveAssert.Throws<InvalidOperationException>(() => Observable.Return(value).First(i => i % 2 != 0));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void First_Throw()
         public void First_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -65,7 +68,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.First());
             ReactiveAssert.Throws(ex, () => xs.First());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstPredicate_Throw()
         public void FirstPredicate_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -75,14 +78,14 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.First(_ => true));
             ReactiveAssert.Throws(ex, () => xs.First(_ => true));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void First_Range()
         public void First_Range()
         {
         {
             var value = 42;
             var value = 42;
             Assert.Equal(value, Observable.Range(value, 10).First());
             Assert.Equal(value, Observable.Range(value, 10).First());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FirstPredicate_Range()
         public void FirstPredicate_Range()
         {
         {
             var value = 42;
             var value = 42;

+ 21 - 18
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ForEachAsyncTest.cs

@@ -10,14 +10,17 @@ using System.Reactive.Linq;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class ForEachAsyncTest : ReactiveTest
     public class ForEachAsyncTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_ArgumentChecking()
         public void ForEachAsync_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.ForEachAsync(default(IObservable<int>), x => { }));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.ForEachAsync(default(IObservable<int>), x => { }));
@@ -31,7 +34,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.ForEachAsync(Observable.Never<int>(), default(Action<int, int>), CancellationToken.None));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.ForEachAsync(Observable.Never<int>(), default(Action<int, int>), CancellationToken.None));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_Never()
         public void ForEachAsync_Never()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -66,7 +69,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(TaskStatus.WaitingForActivation, task.Status);
             Assert.Equal(TaskStatus.WaitingForActivation, task.Status);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_Completed()
         public void ForEachAsync_Completed()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -102,7 +105,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(TaskStatus.RanToCompletion, task.Status);
             Assert.Equal(TaskStatus.RanToCompletion, task.Status);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_Error()
         public void ForEachAsync_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -141,7 +144,7 @@ namespace ReactiveTests.Tests
             Assert.Same(exception, task.Exception.InnerException);
             Assert.Same(exception, task.Exception.InnerException);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_Throw()
         public void ForEachAsync_Throw()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -187,7 +190,7 @@ namespace ReactiveTests.Tests
             Assert.Same(exception, task.Exception.InnerException);
             Assert.Same(exception, task.Exception.InnerException);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_CancelDuring()
         public void ForEachAsync_CancelDuring()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -222,7 +225,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(TaskStatus.Canceled, task.Status);
             Assert.Equal(TaskStatus.Canceled, task.Status);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_CancelBefore()
         public void ForEachAsync_CancelBefore()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -255,7 +258,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(TaskStatus.Canceled, task.Status);
             Assert.Equal(TaskStatus.Canceled, task.Status);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_CancelAfter()
         public void ForEachAsync_CancelAfter()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -292,7 +295,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(TaskStatus.RanToCompletion, task.Status);
             Assert.Equal(TaskStatus.RanToCompletion, task.Status);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_Default()
         public void ForEachAsync_Default()
         {
         {
             var list = new List<int>();
             var list = new List<int>();
@@ -300,7 +303,7 @@ namespace ReactiveTests.Tests
             list.AssertEqual(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
             list.AssertEqual(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_Index()
         public void ForEachAsync_Index()
         {
         {
             var list = new List<int>();
             var list = new List<int>();
@@ -308,7 +311,7 @@ namespace ReactiveTests.Tests
             list.AssertEqual(3 * 0, 4 * 1, 5 * 2, 6 * 3, 7 * 4);
             list.AssertEqual(3 * 0, 4 * 1, 5 * 2, 6 * 3, 7 * 4);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_Default_Cancel()
         public void ForEachAsync_Default_Cancel()
         {
         {
             var N = 10;
             var N = 10;
@@ -367,7 +370,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_Index_Cancel()
         public void ForEachAsync_Index_Cancel()
         {
         {
             var N = 10;
             var N = 10;
@@ -426,7 +429,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_DisposeThrows1()
         public void ForEachAsync_DisposeThrows1()
         {
         {
             var cts = new CancellationTokenSource();
             var cts = new CancellationTokenSource();
@@ -464,7 +467,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_DisposeThrows2()
         public void ForEachAsync_DisposeThrows2()
         {
         {
             var cts = new CancellationTokenSource();
             var cts = new CancellationTokenSource();
@@ -507,8 +510,8 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
-        [Trait("SkipCI", "true")]
+        [TestMethod]
+        [TestCategory("SkipCI")]
         public void ForEachAsync_DisposeThrows()
         public void ForEachAsync_DisposeThrows()
         {
         {
             //
             //
@@ -561,7 +564,7 @@ namespace ReactiveTests.Tests
             }
             }
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEachAsync_SubscribeThrows()
         public void ForEachAsync_SubscribeThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();

+ 15 - 12
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ForEachTest.cs

@@ -7,14 +7,17 @@ using System.Collections.Generic;
 using System.Linq;
 using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class ForEachTest : ReactiveTest
     public class ForEachTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void ForEach_ArgumentChecking()
         public void ForEach_ArgumentChecking()
         {
         {
             var someObservable = Observable.Empty<int>();
             var someObservable = Observable.Empty<int>();
@@ -26,7 +29,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.ForEach(someObservable, default(Action<int, int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.ForEach(someObservable, default(Action<int, int>)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEach_Empty()
         public void ForEach_Empty()
         {
         {
             var lst = new List<int>();
             var lst = new List<int>();
@@ -34,7 +37,7 @@ namespace ReactiveTests.Tests
             Assert.True(lst.SequenceEqual(Enumerable.Empty<int>()));
             Assert.True(lst.SequenceEqual(Enumerable.Empty<int>()));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEach_Index_Empty()
         public void ForEach_Index_Empty()
         {
         {
             var lstX = new List<int>();
             var lstX = new List<int>();
@@ -42,7 +45,7 @@ namespace ReactiveTests.Tests
             Assert.True(lstX.SequenceEqual(Enumerable.Empty<int>()));
             Assert.True(lstX.SequenceEqual(Enumerable.Empty<int>()));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEach_Return()
         public void ForEach_Return()
         {
         {
             var lst = new List<int>();
             var lst = new List<int>();
@@ -50,7 +53,7 @@ namespace ReactiveTests.Tests
             Assert.True(lst.SequenceEqual(new[] { 42 }));
             Assert.True(lst.SequenceEqual(new[] { 42 }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEach_Index_Return()
         public void ForEach_Index_Return()
         {
         {
             var lstX = new List<int>();
             var lstX = new List<int>();
@@ -60,7 +63,7 @@ namespace ReactiveTests.Tests
             Assert.True(lstI.SequenceEqual(new[] { 0 }));
             Assert.True(lstI.SequenceEqual(new[] { 0 }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEach_Throw()
         public void ForEach_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -70,7 +73,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.ForEach(x => { Assert.True(false); }));
             ReactiveAssert.Throws(ex, () => xs.ForEach(x => { Assert.True(false); }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEach_Index_Throw()
         public void ForEach_Index_Throw()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -80,7 +83,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.ForEach((x, i) => { Assert.True(false); }));
             ReactiveAssert.Throws(ex, () => xs.ForEach((x, i) => { Assert.True(false); }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEach_SomeData()
         public void ForEach_SomeData()
         {
         {
             var lstX = new List<int>();
             var lstX = new List<int>();
@@ -88,7 +91,7 @@ namespace ReactiveTests.Tests
             Assert.True(lstX.SequenceEqual(Enumerable.Range(10, 10)));
             Assert.True(lstX.SequenceEqual(Enumerable.Range(10, 10)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEach_Index_SomeData()
         public void ForEach_Index_SomeData()
         {
         {
             var lstX = new List<int>();
             var lstX = new List<int>();
@@ -98,7 +101,7 @@ namespace ReactiveTests.Tests
             Assert.True(lstI.SequenceEqual(Enumerable.Range(0, 10)));
             Assert.True(lstI.SequenceEqual(Enumerable.Range(0, 10)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEach_OnNextThrows()
         public void ForEach_OnNextThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -108,7 +111,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.ForEach(x => { throw ex; }));
             ReactiveAssert.Throws(ex, () => xs.ForEach(x => { throw ex; }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForEach_Index_OnNextThrows()
         public void ForEach_Index_OnNextThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();

+ 7 - 6
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ForTest.cs

@@ -7,21 +7,22 @@ using System.Collections.Generic;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class ForTest : ReactiveTest
     public class ForTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void For_ArgumentChecking()
         public void For_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.For(DummyEnumerable<int>.Instance, default(Func<int, IObservable<int>>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.For(DummyEnumerable<int>.Instance, default(Func<int, IObservable<int>>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.For(null, DummyFunc<int, IObservable<int>>.Instance));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.For(null, DummyFunc<int, IObservable<int>>.Instance));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void For_Basic()
         public void For_Basic()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -54,7 +55,7 @@ namespace ReactiveTests.Tests
             throw ex;
             throw ex;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void For_Error_Iterator()
         public void For_Error_Iterator()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -81,7 +82,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void For_Error_Source()
         public void For_Error_Source()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -95,7 +96,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void For_SelectorThrows()
         public void For_SelectorThrows()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 24 - 23
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/ForkJoinTest.cs

@@ -8,14 +8,15 @@ using System.Linq;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class ForkJoinTest : ReactiveTest
     public class ForkJoinTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_ArgumentChecking()
         public void ForkJoin_ArgumentChecking()
         {
         {
             var someObservable = DummyObservable<int>.Instance;
             var someObservable = DummyObservable<int>.Instance;
@@ -27,7 +28,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => ObservableEx.ForkJoin((IEnumerable<IObservable<int>>)null));
             ReactiveAssert.Throws<ArgumentNullException>(() => ObservableEx.ForkJoin((IEnumerable<IObservable<int>>)null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_EmptyEmpty()
         public void ForkJoin_EmptyEmpty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -51,7 +52,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_None()
         public void ForkJoin_None()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -62,7 +63,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_EmptyReturn()
         public void ForkJoin_EmptyReturn()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -87,7 +88,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_ReturnEmpty()
         public void ForkJoin_ReturnEmpty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -112,7 +113,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_ReturnReturn()
         public void ForkJoin_ReturnReturn()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -139,7 +140,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_EmptyThrow()
         public void ForkJoin_EmptyThrow()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -166,7 +167,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_ThrowEmpty()
         public void ForkJoin_ThrowEmpty()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -193,7 +194,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_ReturnThrow()
         public void ForkJoin_ReturnThrow()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -221,7 +222,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_ThrowReturn()
         public void ForkJoin_ThrowReturn()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -249,7 +250,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_Binary()
         public void ForkJoin_Binary()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -278,7 +279,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_NaryParams()
         public void ForkJoin_NaryParams()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -316,7 +317,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_NaryParamsEmpty()
         public void ForkJoin_NaryParamsEmpty()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -350,7 +351,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_NaryParamsEmptyBeforeEnd()
         public void ForkJoin_NaryParamsEmptyBeforeEnd()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -384,13 +385,13 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_Nary_Immediate()
         public void ForkJoin_Nary_Immediate()
         {
         {
             ObservableEx.ForkJoin(Observable.Return(1), Observable.Return(2)).First().SequenceEqual(new[] { 1, 2 });
             ObservableEx.ForkJoin(Observable.Return(1), Observable.Return(2)).First().SequenceEqual(new[] { 1, 2 });
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_Nary_Virtual_And_Immediate()
         public void ForkJoin_Nary_Virtual_And_Immediate()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -428,7 +429,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_Nary_Immediate_And_Virtual()
         public void ForkJoin_Nary_Immediate_And_Virtual()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -466,7 +467,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void ForkJoin_Nary()
         public void ForkJoin_Nary()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -504,7 +505,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Bug_1302_SelectorThrows_LeftLast()
         public void Bug_1302_SelectorThrows_LeftLast()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -536,7 +537,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Bug_1302_SelectorThrows_RightLast()
         public void Bug_1302_SelectorThrows_RightLast()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -568,7 +569,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Bug_1302_RightLast_NoLeft()
         public void Bug_1302_RightLast_NoLeft()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -597,7 +598,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Bug_1302_RightLast_NoRight()
         public void Bug_1302_RightLast_NoRight()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 65 - 62
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FromAsyncPatternTest.cs

@@ -8,11 +8,14 @@ using System.Reactive;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
 #pragma warning disable IDE0039 // Use local function
 #pragma warning disable IDE0039 // Use local function
+    [TestClass]
     public class FromAsyncPatternTest : ReactiveTest
     public class FromAsyncPatternTest : ReactiveTest
     {
     {
         private readonly Task<int> _doneTask;
         private readonly Task<int> _doneTask;
@@ -24,7 +27,7 @@ namespace ReactiveTests.Tests
             _doneTask = tcs.Task;
             _doneTask = tcs.Task;
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern_ArgumentChecking()
         public void FromAsyncPattern_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromAsyncPattern(null, iar => { }));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromAsyncPattern(null, iar => { }));
@@ -90,7 +93,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromAsyncPattern<int, int, int, int, int, int, int, int, int, int, int, int, int, int, int>((a, b, c, d, e, f, g, h, i, j, k, l, m, n, cb, o) => null, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromAsyncPattern<int, int, int, int, int, int, int, int, int, int, int, int, int, int, int>((a, b, c, d, e, f, g, h, i, j, k, l, m, n, cb, o) => null, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern0()
         public void FromAsyncPattern0()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -102,7 +105,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction0()
         public void FromAsyncPatternAction0()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -114,7 +117,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern0_Error()
         public void FromAsyncPattern0_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -127,7 +130,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern0_ErrorBegin()
         public void FromAsyncPattern0_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -140,7 +143,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern1()
         public void FromAsyncPattern1()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -157,7 +160,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction1()
         public void FromAsyncPatternAction1()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -174,7 +177,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern1_Error()
         public void FromAsyncPattern1_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -187,7 +190,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern1_ErrorBegin()
         public void FromAsyncPattern1_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -200,7 +203,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern2()
         public void FromAsyncPattern2()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -218,7 +221,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction2()
         public void FromAsyncPatternAction2()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -236,7 +239,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern2_Error()
         public void FromAsyncPattern2_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -249,7 +252,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern2_ErrorBegin()
         public void FromAsyncPattern2_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -262,7 +265,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern3()
         public void FromAsyncPattern3()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -280,7 +283,7 @@ namespace ReactiveTests.Tests
             var res = Observable.FromAsyncPattern(begin, end)(2, 3, 4).Materialize().ToEnumerable().ToArray();
             var res = Observable.FromAsyncPattern(begin, end)(2, 3, 4).Materialize().ToEnumerable().ToArray();
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction3()
         public void FromAsyncPatternAction3()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -299,7 +302,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern3_Error()
         public void FromAsyncPattern3_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -312,7 +315,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern3_ErrorBegin()
         public void FromAsyncPattern3_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -325,7 +328,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern4()
         public void FromAsyncPattern4()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -345,7 +348,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction4()
         public void FromAsyncPatternAction4()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -365,7 +368,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern4_Error()
         public void FromAsyncPattern4_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -378,7 +381,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern4_ErrorBegin()
         public void FromAsyncPattern4_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -391,7 +394,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern5()
         public void FromAsyncPattern5()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -412,7 +415,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction5()
         public void FromAsyncPatternAction5()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -433,7 +436,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern5_Error()
         public void FromAsyncPattern5_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -446,7 +449,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern5_ErrorBegin()
         public void FromAsyncPattern5_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -459,7 +462,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern6()
         public void FromAsyncPattern6()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -481,7 +484,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction6()
         public void FromAsyncPatternAction6()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -503,7 +506,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern6_Error()
         public void FromAsyncPattern6_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -516,7 +519,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern6_ErrorBegin()
         public void FromAsyncPattern6_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -529,7 +532,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern7()
         public void FromAsyncPattern7()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -552,7 +555,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction7()
         public void FromAsyncPatternAction7()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -575,7 +578,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern7_Error()
         public void FromAsyncPattern7_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -588,7 +591,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern7_ErrorBegin()
         public void FromAsyncPattern7_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -601,7 +604,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern8()
         public void FromAsyncPattern8()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -625,7 +628,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction8()
         public void FromAsyncPatternAction8()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -649,7 +652,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern8_Error()
         public void FromAsyncPattern8_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -662,7 +665,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern8_ErrorBegin()
         public void FromAsyncPattern8_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -675,7 +678,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern9()
         public void FromAsyncPattern9()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -700,7 +703,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction9()
         public void FromAsyncPatternAction9()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -725,7 +728,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern9_Error()
         public void FromAsyncPattern9_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -738,7 +741,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern9_ErrorBegin()
         public void FromAsyncPattern9_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -751,7 +754,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern10()
         public void FromAsyncPattern10()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -777,7 +780,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction10()
         public void FromAsyncPatternAction10()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -803,7 +806,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern10_Error()
         public void FromAsyncPattern10_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -816,7 +819,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern10_ErrorBegin()
         public void FromAsyncPattern10_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -829,7 +832,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern11()
         public void FromAsyncPattern11()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -856,7 +859,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction11()
         public void FromAsyncPatternAction11()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -883,7 +886,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern11_Error()
         public void FromAsyncPattern11_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -896,7 +899,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern11_ErrorBegin()
         public void FromAsyncPattern11_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -909,7 +912,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern12()
         public void FromAsyncPattern12()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -937,7 +940,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction12()
         public void FromAsyncPatternAction12()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -965,7 +968,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern12_Error()
         public void FromAsyncPattern12_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -978,7 +981,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern12_ErrorBegin()
         public void FromAsyncPattern12_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -991,7 +994,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern13()
         public void FromAsyncPattern13()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -1020,7 +1023,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction13()
         public void FromAsyncPatternAction13()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -1049,7 +1052,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern13_Error()
         public void FromAsyncPattern13_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -1062,7 +1065,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern13_ErrorBegin()
         public void FromAsyncPattern13_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -1075,7 +1078,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern14()
         public void FromAsyncPattern14()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -1105,7 +1108,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnNext(1), Notification.CreateOnCompleted<int>() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPatternAction14()
         public void FromAsyncPatternAction14()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -1135,7 +1138,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
             Assert.True(res.SequenceEqual(new[] { new Unit() }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern14_Error()
         public void FromAsyncPattern14_Error()
         {
         {
             var x = new Result();
             var x = new Result();
@@ -1148,7 +1151,7 @@ namespace ReactiveTests.Tests
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
             Assert.True(res.SequenceEqual(new Notification<int>[] { Notification.CreateOnError<int>(ex) }));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsyncPattern14_ErrorBegin()
         public void FromAsyncPattern14_ErrorBegin()
         {
         {
             var x = new Result();
             var x = new Result();

+ 24 - 21
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FromAsyncTest.cs

@@ -10,10 +10,13 @@ using System.Reactive.Linq;
 using System.Threading;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class FromAsyncTest : ReactiveTest
     public class FromAsyncTest : ReactiveTest
     {
     {
         private readonly Task<int> _doneTask;
         private readonly Task<int> _doneTask;
@@ -27,7 +30,7 @@ namespace ReactiveTests.Tests
 
 
         #region Func
         #region Func
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_Func_ArgumentChecking()
         public void FromAsync_Func_ArgumentChecking()
         {
         {
             var s = Scheduler.Immediate;
             var s = Scheduler.Immediate;
@@ -41,7 +44,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromAsync(ct => _doneTask, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromAsync(ct => _doneTask, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_Func_Success()
         public void FromAsync_Func_Success()
         {
         {
             var n = 42;
             var n = 42;
@@ -60,7 +63,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(2, i);
             Assert.Equal(2, i);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_Func_Throw_Synchronous()
         public void FromAsync_Func_Throw_Synchronous()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -73,7 +76,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.Single());
             ReactiveAssert.Throws(ex, () => xs.Single());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_Func_Throw_Asynchronous()
         public void FromAsync_Func_Throw_Asynchronous()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -85,7 +88,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.Single());
             ReactiveAssert.Throws(ex, () => xs.Single());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_FuncWithCancel_Success()
         public void FromAsync_FuncWithCancel_Success()
         {
         {
             var n = 42;
             var n = 42;
@@ -104,7 +107,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(2, i);
             Assert.Equal(2, i);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_FuncWithCancel_Throw_Synchronous()
         public void FromAsync_FuncWithCancel_Throw_Synchronous()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -117,7 +120,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.Single());
             ReactiveAssert.Throws(ex, () => xs.Single());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_FuncWithCancel_Throw_Asynchronous()
         public void FromAsync_FuncWithCancel_Throw_Asynchronous()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -129,7 +132,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.Single());
             ReactiveAssert.Throws(ex, () => xs.Single());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_FuncWithCancel_Cancel()
         public void FromAsync_FuncWithCancel_Cancel()
         {
         {
             var e = new ManualResetEvent(false);
             var e = new ManualResetEvent(false);
@@ -166,7 +169,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if DESKTOPCLR
 #if DESKTOPCLR
-        [Fact]
+        [TestMethod]
         public void FromAsync_Func_Scheduler1()
         public void FromAsync_Func_Scheduler1()
         {
         {
             var e = new ManualResetEvent(false);
             var e = new ManualResetEvent(false);
@@ -191,7 +194,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(Thread.CurrentThread.ManagedThreadId, t);
             Assert.Equal(Thread.CurrentThread.ManagedThreadId, t);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_Func_Scheduler2()
         public void FromAsync_Func_Scheduler2()
         {
         {
             var e = new ManualResetEvent(false);
             var e = new ManualResetEvent(false);
@@ -221,7 +224,7 @@ namespace ReactiveTests.Tests
 
 
         #region Action
         #region Action
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_Action_ArgumentChecking()
         public void FromAsync_Action_ArgumentChecking()
         {
         {
             var s = Scheduler.Immediate;
             var s = Scheduler.Immediate;
@@ -235,7 +238,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromAsync(ct => (Task)_doneTask, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromAsync(ct => (Task)_doneTask, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_Action_Success()
         public void FromAsync_Action_Success()
         {
         {
             var i = 0;
             var i = 0;
@@ -252,7 +255,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(2, i);
             Assert.Equal(2, i);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_Action_Throw_Synchronous()
         public void FromAsync_Action_Throw_Synchronous()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -265,7 +268,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.Single());
             ReactiveAssert.Throws(ex, () => xs.Single());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_Action_Throw_Asynchronous()
         public void FromAsync_Action_Throw_Asynchronous()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -277,7 +280,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.Single());
             ReactiveAssert.Throws(ex, () => xs.Single());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_ActionWithCancel_Success()
         public void FromAsync_ActionWithCancel_Success()
         {
         {
             var i = 0;
             var i = 0;
@@ -294,7 +297,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(2, i);
             Assert.Equal(2, i);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_ActionWithCancel_Throw_Synchronous()
         public void FromAsync_ActionWithCancel_Throw_Synchronous()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -307,7 +310,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.Single());
             ReactiveAssert.Throws(ex, () => xs.Single());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_ActionWithCancel_Throw_Asynchronous()
         public void FromAsync_ActionWithCancel_Throw_Asynchronous()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -319,7 +322,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws(ex, () => xs.Single());
             ReactiveAssert.Throws(ex, () => xs.Single());
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_ActionWithCancel_Cancel()
         public void FromAsync_ActionWithCancel_Cancel()
         {
         {
             var e = new ManualResetEvent(false);
             var e = new ManualResetEvent(false);
@@ -356,7 +359,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if DESKTOPCLR
 #if DESKTOPCLR
-        [Fact]
+        [TestMethod]
         public void FromAsync_Action_Scheduler1()
         public void FromAsync_Action_Scheduler1()
         {
         {
             var e = new ManualResetEvent(false);
             var e = new ManualResetEvent(false);
@@ -378,7 +381,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(Thread.CurrentThread.ManagedThreadId, t);
             Assert.Equal(Thread.CurrentThread.ManagedThreadId, t);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromAsync_Action_Scheduler2()
         public void FromAsync_Action_Scheduler2()
         {
         {
             var e = new ManualResetEvent(false);
             var e = new ManualResetEvent(false);

+ 38 - 35
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FromEventPatternTest.cs

@@ -13,16 +13,19 @@ using System.Reactive.Linq;
 using System.Reflection;
 using System.Reflection;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class FromEventPatternTest : ReactiveTest
     public class FromEventPatternTest : ReactiveTest
     {
     {
 
 
         #region Strongly typed
         #region Strongly typed
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Conversion_ArgumentChecking()
         public void FromEventPattern_Conversion_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromEventPattern(null, h => { }));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromEventPattern(null, h => { }));
@@ -42,7 +45,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromEventPattern<EventHandler, EventArgs>(h => new EventHandler(h), h => { }, h => { }, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromEventPattern<EventHandler, EventArgs>(h => new EventHandler(h), h => { }, h => { }, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_E2()
         public void FromEventPattern_E2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -69,7 +72,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Conversion_E4()
         public void FromEventPattern_Conversion_E4()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -97,7 +100,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Conversion_E5()
         public void FromEventPattern_Conversion_E5()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -124,7 +127,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_ConversionThrows()
         public void FromEventPattern_ConversionThrows()
         {
         {
             var ex = new Exception();
             var ex = new Exception();
@@ -144,7 +147,7 @@ namespace ReactiveTests.Tests
             Assert.Same(ex, err);
             Assert.Same(ex, err);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_E2_WithSender()
         public void FromEventPattern_E2_WithSender()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -171,7 +174,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_AddRemove_ArgumentChecking()
         public void FromEventPattern_AddRemove_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromEventPattern<EventArgs>(null, h => { }));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromEventPattern<EventArgs>(null, h => { }));
@@ -196,7 +199,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromEventPattern<EventHandler, object, EventArgs>(h => { }, h => { }, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromEventPattern<EventHandler, object, EventArgs>(h => { }, h => { }, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_AddRemove_E4()
         public void FromEventPattern_AddRemove_E4()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -229,7 +232,7 @@ namespace ReactiveTests.Tests
 
 
         #region Instance events
         #region Instance events
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Instance_ArgumentChecking()
         public void FromEventPattern_Reflection_Instance_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws</**/ArgumentNullException>(() => Observable.FromEventPattern(default(object), "foo"));
             ReactiveAssert.Throws</**/ArgumentNullException>(() => Observable.FromEventPattern(default(object), "foo"));
@@ -269,13 +272,13 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<InvalidOperationException>(() => Observable.FromEventPattern<FromEventPattern_ArgCheck, EventArgs>(new FromEventPattern_ArgCheck(), "foo"));
             ReactiveAssert.Throws<InvalidOperationException>(() => Observable.FromEventPattern<FromEventPattern_ArgCheck, EventArgs>(new FromEventPattern_ArgCheck(), "foo"));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Instance_InvalidVariance()
         public void FromEventPattern_Reflection_Instance_InvalidVariance()
         {
         {
             ReactiveAssert.Throws<InvalidOperationException>(() => Observable.FromEventPattern<CancelEventArgs>(new FromEventPattern_VarianceCheck(), "E1"));
             ReactiveAssert.Throws<InvalidOperationException>(() => Observable.FromEventPattern<CancelEventArgs>(new FromEventPattern_VarianceCheck(), "E1"));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Instance_VarianceArgs()
         public void FromEventPattern_Reflection_Instance_VarianceArgs()
         {
         {
             var src = new FromEventPattern_VarianceCheck();
             var src = new FromEventPattern_VarianceCheck();
@@ -299,7 +302,7 @@ namespace ReactiveTests.Tests
             Assert.True(ReferenceEquals(e2, lst[1].EventArgs), "Second");
             Assert.True(ReferenceEquals(e2, lst[1].EventArgs), "Second");
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Instance_VarianceSender()
         public void FromEventPattern_Reflection_Instance_VarianceSender()
         {
         {
             var src = new FromEventPattern_VarianceCheck();
             var src = new FromEventPattern_VarianceCheck();
@@ -323,7 +326,7 @@ namespace ReactiveTests.Tests
             Assert.True(ReferenceEquals(s2, lst[1].Sender), "Second");
             Assert.True(ReferenceEquals(s2, lst[1].Sender), "Second");
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Instance_NonGeneric()
         public void FromEventPattern_Reflection_Instance_NonGeneric()
         {
         {
             var src = new FromEventPattern_VarianceCheck();
             var src = new FromEventPattern_VarianceCheck();
@@ -347,7 +350,7 @@ namespace ReactiveTests.Tests
             Assert.True(ReferenceEquals(e2, lst[1].EventArgs), "Second");
             Assert.True(ReferenceEquals(e2, lst[1].EventArgs), "Second");
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Instance_Throws()
         public void FromEventPattern_Reflection_Instance_Throws()
         {
         {
             //
             //
@@ -374,7 +377,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<InvalidOperationException>(d.Dispose);
             ReactiveAssert.Throws<InvalidOperationException>(d.Dispose);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Instance_E1()
         public void FromEventPattern_Reflection_Instance_E1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -399,7 +402,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Instance_E2()
         public void FromEventPattern_Reflection_Instance_E2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -424,7 +427,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Instance_E2_WithSender()
         public void FromEventPattern_Reflection_Instance_E2_WithSender()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -449,7 +452,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Instance_E3()
         public void FromEventPattern_Reflection_Instance_E3()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -475,7 +478,7 @@ namespace ReactiveTests.Tests
         }
         }
 
 
 #if DESKTOPCLR && NET472
 #if DESKTOPCLR && NET472
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Instance_MissingAccessors()
         public void FromEventPattern_Reflection_Instance_MissingAccessors()
         {
         {
             var asm = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("EventsTest"), System.Reflection.Emit.AssemblyBuilderAccess.RunAndSave);
             var asm = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("EventsTest"), System.Reflection.Emit.AssemblyBuilderAccess.RunAndSave);
@@ -511,7 +514,7 @@ namespace ReactiveTests.Tests
 
 
         #region Static events
         #region Static events
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Static_ArgumentChecking()
         public void FromEventPattern_Reflection_Static_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws</**/ArgumentNullException>(() => Observable.FromEventPattern(default, "foo"));
             ReactiveAssert.Throws</**/ArgumentNullException>(() => Observable.FromEventPattern(default, "foo"));
@@ -536,7 +539,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<InvalidOperationException>(() => Observable.FromEventPattern<object, EventArgs>(typeof(FromEventPattern_ArgCheck), "foo"));
             ReactiveAssert.Throws<InvalidOperationException>(() => Observable.FromEventPattern<object, EventArgs>(typeof(FromEventPattern_ArgCheck), "foo"));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Static_E6()
         public void FromEventPattern_Reflection_Static_E6()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -559,7 +562,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Static_E6_WithSender()
         public void FromEventPattern_Reflection_Static_E6_WithSender()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -582,7 +585,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Reflection_Static_NonGeneric_E6()
         public void FromEventPattern_Reflection_Static_NonGeneric_E6()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -612,13 +615,13 @@ namespace ReactiveTests.Tests
 
 
         #region Rx v2.0 behavior
         #region Rx v2.0 behavior
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Scheduler1()
         public void FromEventPattern_Scheduler1()
         {
         {
             RunWithScheduler((s, add, remove) => Observable.FromEventPattern<MyEventArgs>(h => { add(); }, h => { remove(); }, s));
             RunWithScheduler((s, add, remove) => Observable.FromEventPattern<MyEventArgs>(h => { add(); }, h => { remove(); }, s));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Scheduler2()
         public void FromEventPattern_Scheduler2()
         {
         {
             RunWithScheduler((s, add, remove) =>
             RunWithScheduler((s, add, remove) =>
@@ -629,7 +632,7 @@ namespace ReactiveTests.Tests
             });
             });
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Scheduler3()
         public void FromEventPattern_Scheduler3()
         {
         {
             RunWithScheduler((s, add, remove) =>
             RunWithScheduler((s, add, remove) =>
@@ -640,13 +643,13 @@ namespace ReactiveTests.Tests
             });
             });
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Scheduler4()
         public void FromEventPattern_Scheduler4()
         {
         {
             RunWithScheduler((s, add, remove) => Observable.FromEventPattern(h => { add(); }, h => { remove(); }, s));
             RunWithScheduler((s, add, remove) => Observable.FromEventPattern(h => { add(); }, h => { remove(); }, s));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Scheduler5()
         public void FromEventPattern_Scheduler5()
         {
         {
             RunWithScheduler((s, add, remove) =>
             RunWithScheduler((s, add, remove) =>
@@ -657,7 +660,7 @@ namespace ReactiveTests.Tests
             });
             });
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Scheduler6()
         public void FromEventPattern_Scheduler6()
         {
         {
             RunWithScheduler((s, add, remove) =>
             RunWithScheduler((s, add, remove) =>
@@ -668,19 +671,19 @@ namespace ReactiveTests.Tests
             });
             });
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Scheduler7()
         public void FromEventPattern_Scheduler7()
         {
         {
             RunWithScheduler((s, add, remove) => Observable.FromEventPattern<EventHandler<MyEventArgs>, MyEventArgs>(h => { add(); }, h => { remove(); }, s));
             RunWithScheduler((s, add, remove) => Observable.FromEventPattern<EventHandler<MyEventArgs>, MyEventArgs>(h => { add(); }, h => { remove(); }, s));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Scheduler8()
         public void FromEventPattern_Scheduler8()
         {
         {
             RunWithScheduler((s, add, remove) => Observable.FromEventPattern<EventHandler<MyEventArgs>, MyEventArgs>(h => h, h => { add(); }, h => { remove(); }, s));
             RunWithScheduler((s, add, remove) => Observable.FromEventPattern<EventHandler<MyEventArgs>, MyEventArgs>(h => h, h => { add(); }, h => { remove(); }, s));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Scheduler9()
         public void FromEventPattern_Scheduler9()
         {
         {
             RunWithScheduler((s, add, remove) =>
             RunWithScheduler((s, add, remove) =>
@@ -691,7 +694,7 @@ namespace ReactiveTests.Tests
             });
             });
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Scheduler10()
         public void FromEventPattern_Scheduler10()
         {
         {
             RunWithScheduler((s, add, remove) =>
             RunWithScheduler((s, add, remove) =>
@@ -702,7 +705,7 @@ namespace ReactiveTests.Tests
             });
             });
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEventPattern_Scheduler11()
         public void FromEventPattern_Scheduler11()
         {
         {
             RunWithScheduler((s, add, remove) => Observable.FromEventPattern<EventHandler<MyEventArgs>, object, MyEventArgs>(h => { add(); }, h => { remove(); }, s));
             RunWithScheduler((s, add, remove) => Observable.FromEventPattern<EventHandler<MyEventArgs>, object, MyEventArgs>(h => { add(); }, h => { remove(); }, s));

+ 16 - 13
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/FromEventTest.cs

@@ -9,14 +9,17 @@ using System.Reactive.Concurrency;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using System.Threading;
 using System.Threading;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class FromEventTest : ReactiveTest
     public class FromEventTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void FromEvent_ArgumentChecking()
         public void FromEvent_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromEvent<Action<int>, int>(default, h => { }, h => { }));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromEvent<Action<int>, int>(default, h => { }, h => { }));
@@ -50,7 +53,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromEvent(h => { }, h => { }, default));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.FromEvent(h => { }, h => { }, default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEvent_Action()
         public void FromEvent_Action()
         {
         {
             var fe = new FromEvent();
             var fe = new FromEvent();
@@ -72,7 +75,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(2, n);
             Assert.Equal(2, n);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEvent_ActionOfInt()
         public void FromEvent_ActionOfInt()
         {
         {
             var fe = new FromEvent();
             var fe = new FromEvent();
@@ -94,7 +97,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(2 + 3, n);
             Assert.Equal(2 + 3, n);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEvent_ActionOfInt_SpecifiedExplicitly()
         public void FromEvent_ActionOfInt_SpecifiedExplicitly()
         {
         {
             var fe = new FromEvent();
             var fe = new FromEvent();
@@ -116,7 +119,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(2 + 3, n);
             Assert.Equal(2 + 3, n);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEvent_ActionOfInt_SpecifiedExplicitly_TrivialConversion()
         public void FromEvent_ActionOfInt_SpecifiedExplicitly_TrivialConversion()
         {
         {
             var fe = new FromEvent();
             var fe = new FromEvent();
@@ -138,7 +141,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(2 + 3, n);
             Assert.Equal(2 + 3, n);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEvent_MyAction()
         public void FromEvent_MyAction()
         {
         {
             var fe = new FromEvent();
             var fe = new FromEvent();
@@ -162,7 +165,7 @@ namespace ReactiveTests.Tests
 
 
         #region Rx v2.0 behavior
         #region Rx v2.0 behavior
 
 
-        [Fact]
+        [TestMethod]
         public void FromEvent_ImplicitPublish()
         public void FromEvent_ImplicitPublish()
         {
         {
             var src = new MyEventSource();
             var src = new MyEventSource();
@@ -238,7 +241,7 @@ namespace ReactiveTests.Tests
             Assert.True(thd.SequenceEqual(new[] { 44, 45 }));
             Assert.True(thd.SequenceEqual(new[] { 44, 45 }));
         }
         }
 #if !NO_THREAD
 #if !NO_THREAD
-        [Fact]
+        [TestMethod]
         public void FromEvent_SynchronizationContext()
         public void FromEvent_SynchronizationContext()
         {
         {
             var beforeSubscribeNull = false;
             var beforeSubscribeNull = false;
@@ -336,25 +339,25 @@ namespace ReactiveTests.Tests
         }
         }
 #endif
 #endif
 
 
-        [Fact]
+        [TestMethod]
         public void FromEvent_Scheduler1()
         public void FromEvent_Scheduler1()
         {
         {
             RunWithScheduler((s, add, remove) => Observable.FromEvent<MyEventArgs>(h => { add(); }, h => { remove(); }, s));
             RunWithScheduler((s, add, remove) => Observable.FromEvent<MyEventArgs>(h => { add(); }, h => { remove(); }, s));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEvent_Scheduler2()
         public void FromEvent_Scheduler2()
         {
         {
             RunWithScheduler((s, add, remove) => Observable.FromEvent(h => { add(); }, h => { remove(); }, s));
             RunWithScheduler((s, add, remove) => Observable.FromEvent(h => { add(); }, h => { remove(); }, s));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEvent_Scheduler3()
         public void FromEvent_Scheduler3()
         {
         {
             RunWithScheduler((s, add, remove) => Observable.FromEvent<Action<MyEventArgs>, MyEventArgs>(h => { add(); }, h => { remove(); }, s));
             RunWithScheduler((s, add, remove) => Observable.FromEvent<Action<MyEventArgs>, MyEventArgs>(h => { add(); }, h => { remove(); }, s));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void FromEvent_Scheduler4()
         public void FromEvent_Scheduler4()
         {
         {
             RunWithScheduler((s, add, remove) => Observable.FromEvent<Action, MyEventArgs>(h => () => { }, h => { add(); }, h => { remove(); }, s));
             RunWithScheduler((s, add, remove) => Observable.FromEvent<Action, MyEventArgs>(h => () => { }, h => { add(); }, h => { remove(); }, s));

+ 35 - 32
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/GenerateTest.cs

@@ -12,15 +12,18 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class GenerateTest : ReactiveTest
     public class GenerateTest : ReactiveTest
     {
     {
         #region + Non-timed +
         #region + Non-timed +
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_ArgumentChecking()
         public void Generate_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, (IScheduler)null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, (IScheduler)null));
@@ -30,7 +33,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyScheduler.Instance).Subscribe(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyScheduler.Instance).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_Finite()
         public void Generate_Finite()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -48,7 +51,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_Throw_Condition()
         public void Generate_Throw_Condition()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -64,7 +67,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_Throw_ResultSelector()
         public void Generate_Throw_ResultSelector()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -80,7 +83,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_Throw_Iterate()
         public void Generate_Throw_Iterate()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -97,7 +100,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_Dispose()
         public void Generate_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -113,7 +116,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_DefaultScheduler_ArgumentChecking()
         public void Generate_DefaultScheduler_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, null, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, null, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance));
@@ -122,14 +125,14 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance).Subscribe(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_DefaultScheduler()
         public void Generate_DefaultScheduler()
         {
         {
             Observable.Generate(0, x => x < 10, x => x + 1, x => x).AssertEqual(Observable.Generate(0, x => x < 10, x => x + 1, x => x, DefaultScheduler.Instance));
             Observable.Generate(0, x => x < 10, x => x + 1, x => x).AssertEqual(Observable.Generate(0, x => x < 10, x => x + 1, x => x, DefaultScheduler.Instance));
         }
         }
 
 
 #if !NO_PERF
 #if !NO_PERF
-        [Fact]
+        [TestMethod]
         public void Generate_LongRunning1()
         public void Generate_LongRunning1()
         {
         {
             var start = default(ManualResetEvent);
             var start = default(ManualResetEvent);
@@ -148,7 +151,7 @@ namespace ReactiveTests.Tests
             Assert.True(done);
             Assert.True(done);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         [MethodImpl(MethodImplOptions.NoOptimization)]
         [MethodImpl(MethodImplOptions.NoOptimization)]
         public void Generate_LongRunning2()
         public void Generate_LongRunning2()
         {
         {
@@ -174,7 +177,7 @@ namespace ReactiveTests.Tests
             Assert.True(lst.Take(100).SequenceEqual(Enumerable.Range(0, 100)));
             Assert.True(lst.Take(100).SequenceEqual(Enumerable.Range(0, 100)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_LongRunning_Throw()
         public void Generate_LongRunning_Throw()
         {
         {
             var start = default(ManualResetEvent);
             var start = default(ManualResetEvent);
@@ -201,7 +204,7 @@ namespace ReactiveTests.Tests
 
 
         #region + Timed +
         #region + Timed +
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_TimeSpan_ArgumentChecking()
         public void Generate_TimeSpan_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, TimeSpan>.Instance, null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, TimeSpan>.Instance, null));
@@ -212,7 +215,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, TimeSpan>.Instance, DummyScheduler.Instance).Subscribe(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, TimeSpan>.Instance, DummyScheduler.Instance).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_TimeSpan_Finite()
         public void Generate_TimeSpan_Finite()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -230,7 +233,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_TimeSpan_Throw_Condition()
         public void Generate_TimeSpan_Throw_Condition()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -246,7 +249,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_TimeSpan_Throw_ResultSelector()
         public void Generate_TimeSpan_Throw_ResultSelector()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -262,7 +265,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_TimeSpan_Throw_Iterate()
         public void Generate_TimeSpan_Throw_Iterate()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -279,7 +282,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_TimeSpan_Throw_TimeSelector()
         public void Generate_TimeSpan_Throw_TimeSelector()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -295,7 +298,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_TimeSpan_Dispose()
         public void Generate_TimeSpan_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -312,7 +315,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_TimeSpan_DefaultScheduler_ArgumentChecking()
         public void Generate_TimeSpan_DefaultScheduler_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, null, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, TimeSpan>.Instance));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, null, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, TimeSpan>.Instance));
@@ -322,13 +325,13 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, TimeSpan>.Instance).Subscribe(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, TimeSpan>.Instance).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_TimeSpan_DefaultScheduler()
         public void Generate_TimeSpan_DefaultScheduler()
         {
         {
             Observable.Generate(0, x => x < 10, x => x + 1, x => x, x => TimeSpan.FromMilliseconds(x)).AssertEqual(Observable.Generate(0, x => x < 10, x => x + 1, x => x, x => TimeSpan.FromMilliseconds(x), DefaultScheduler.Instance));
             Observable.Generate(0, x => x < 10, x => x + 1, x => x, x => TimeSpan.FromMilliseconds(x)).AssertEqual(Observable.Generate(0, x => x < 10, x => x + 1, x => x, x => TimeSpan.FromMilliseconds(x), DefaultScheduler.Instance));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_DateTimeOffset_ArgumentChecking()
         public void Generate_DateTimeOffset_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, DateTimeOffset>.Instance, null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, DateTimeOffset>.Instance, null));
@@ -339,7 +342,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, DateTimeOffset>.Instance, DummyScheduler.Instance).Subscribe(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, DateTimeOffset>.Instance, DummyScheduler.Instance).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_DateTimeOffset_Finite()
         public void Generate_DateTimeOffset_Finite()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -357,7 +360,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_DateTimeOffset_Throw_Condition()
         public void Generate_DateTimeOffset_Throw_Condition()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -373,7 +376,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_DateTimeOffset_Throw_ResultSelector()
         public void Generate_DateTimeOffset_Throw_ResultSelector()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -389,7 +392,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_DateTimeOffset_Throw_Iterate()
         public void Generate_DateTimeOffset_Throw_Iterate()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -406,7 +409,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_DateTimeOffset_Throw_TimeSelector()
         public void Generate_DateTimeOffset_Throw_TimeSelector()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -422,7 +425,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_DateTimeOffset_Dispose()
         public void Generate_DateTimeOffset_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -439,7 +442,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_DateTimeOffset_DefaultScheduler_ArgumentChecking()
         public void Generate_DateTimeOffset_DefaultScheduler_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, null, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, DateTimeOffset>.Instance));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, null, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, DateTimeOffset>.Instance));
@@ -449,13 +452,13 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, DateTimeOffset>.Instance).Subscribe(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.Generate(0, DummyFunc<int, bool>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, DummyFunc<int, DateTimeOffset>.Instance).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_DateTimeOffset_DefaultScheduler()
         public void Generate_DateTimeOffset_DefaultScheduler()
         {
         {
             Observable.Generate(0, x => x < 10, x => x + 1, x => x, x => DateTimeOffset.Now.AddMilliseconds(x)).AssertEqual(Observable.Generate(0, x => x < 10, x => x + 1, x => x, x => DateTimeOffset.Now.AddMilliseconds(x), DefaultScheduler.Instance));
             Observable.Generate(0, x => x < 10, x => x + 1, x => x, x => DateTimeOffset.Now.AddMilliseconds(x)).AssertEqual(Observable.Generate(0, x => x < 10, x => x + 1, x => x, x => DateTimeOffset.Now.AddMilliseconds(x), DefaultScheduler.Instance));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_TimeSpan_DisposeLater()
         public void Generate_TimeSpan_DisposeLater()
         {
         {
             var count = 0;
             var count = 0;
@@ -471,7 +474,7 @@ namespace ReactiveTests.Tests
             d.Dispose();
             d.Dispose();
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void Generate_DateTimeOffset_DisposeLater()
         public void Generate_DateTimeOffset_DisposeLater()
         {
         {
             var count = 0;
             var count = 0;

+ 8 - 5
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/GetEnumeratorTest.cs

@@ -9,20 +9,23 @@ using System.Reactive;
 using System.Reactive.Disposables;
 using System.Reactive.Disposables;
 using System.Reactive.Linq;
 using System.Reactive.Linq;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class GetEnumeratorTest : ReactiveTest
     public class GetEnumeratorTest : ReactiveTest
     {
     {
 
 
-        [Fact]
+        [TestMethod]
         public void GetEnumerator_ArgumentChecking()
         public void GetEnumerator_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.GetEnumerator(default(IObservable<int>)));
             ReactiveAssert.Throws<ArgumentNullException>(() => Observable.GetEnumerator(default(IObservable<int>)));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GetEnumerator_Regular1()
         public void GetEnumerator_Regular1()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -74,7 +77,7 @@ namespace ReactiveTests.Tests
             Assert.True(vals[3].Item1 == 230 && vals[3].Item2 == 7);
             Assert.True(vals[3].Item1 == 230 && vals[3].Item2 == 7);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GetEnumerator_Regular2()
         public void GetEnumerator_Regular2()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -126,7 +129,7 @@ namespace ReactiveTests.Tests
             Assert.True(vals[3].Item1 == 180 && vals[3].Item2 == 7);
             Assert.True(vals[3].Item1 == 180 && vals[3].Item2 == 7);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GetEnumerator_Dispose()
         public void GetEnumerator_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

+ 60 - 57
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/GroupByTest.cs

@@ -10,15 +10,18 @@ using System.Reactive.Linq;
 using System.Text;
 using System.Text;
 using Microsoft.Reactive.Testing;
 using Microsoft.Reactive.Testing;
 using ReactiveTests.Dummies;
 using ReactiveTests.Dummies;
-using Xunit;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+using Assert = Xunit.Assert;
 
 
 namespace ReactiveTests.Tests
 namespace ReactiveTests.Tests
 {
 {
+    [TestClass]
     public class GroupByTest : ReactiveTest
     public class GroupByTest : ReactiveTest
     {
     {
         #region + GroupBy +
         #region + GroupBy +
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_ArgumentChecking()
         public void GroupBy_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, EqualityComparer<int>.Default));
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, EqualityComparer<int>.Default));
@@ -28,7 +31,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, EqualityComparer<int>.Default).Subscribe(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, EqualityComparer<int>.Default).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_KeyEle_ArgumentChecking()
         public void GroupBy_KeyEle_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance));
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance));
@@ -37,7 +40,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance).Subscribe(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_KeyComparer_ArgumentChecking()
         public void GroupBy_KeyComparer_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, EqualityComparer<int>.Default));
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, EqualityComparer<int>.Default));
@@ -46,7 +49,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, EqualityComparer<int>.Default).Subscribe(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, EqualityComparer<int>.Default).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Key_ArgumentChecking()
         public void GroupBy_Key_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance));
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance));
@@ -54,7 +57,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentNullException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance).Subscribe(null));
             ReactiveAssert.Throws<ArgumentNullException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance).Subscribe(null));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_WithKeyComparer()
         public void GroupBy_WithKeyComparer()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -108,7 +111,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(12, keyInvoked);
             Assert.Equal(12, keyInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Outer_Complete()
         public void GroupBy_Outer_Complete()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -172,7 +175,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(12, eleInvoked);
             Assert.Equal(12, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Outer_Error()
         public void GroupBy_Outer_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -237,7 +240,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(12, eleInvoked);
             Assert.Equal(12, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Outer_Dispose()
         public void GroupBy_Outer_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -298,7 +301,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(5, eleInvoked);
             Assert.Equal(5, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Outer_KeyThrow()
         public void GroupBy_Outer_KeyThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -368,7 +371,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(9, eleInvoked);
             Assert.Equal(9, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Outer_EleThrow()
         public void GroupBy_Outer_EleThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -438,7 +441,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(10, eleInvoked);
             Assert.Equal(10, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Outer_ComparerEqualsThrow()
         public void GroupBy_Outer_ComparerEqualsThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -500,7 +503,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(3, eleInvoked);
             Assert.Equal(3, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Outer_ComparerGetHashCodeThrow()
         public void GroupBy_Outer_ComparerGetHashCodeThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -564,7 +567,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(7, eleInvoked);
             Assert.Equal(7, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Inner_Complete()
         public void GroupBy_Inner_Complete()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -648,7 +651,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Inner_Complete_All()
         public void GroupBy_Inner_Complete_All()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -738,7 +741,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Inner_Error()
         public void GroupBy_Inner_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -824,7 +827,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Inner_Dispose()
         public void GroupBy_Inner_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -905,7 +908,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Inner_KeyThrow()
         public void GroupBy_Inner_KeyThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -997,7 +1000,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Inner_EleThrow()
         public void GroupBy_Inner_EleThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1093,7 +1096,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Inner_Comparer_EqualsThrow()
         public void GroupBy_Inner_Comparer_EqualsThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1178,7 +1181,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Inner_Comparer_GetHashCodeThrow()
         public void GroupBy_Inner_Comparer_GetHashCodeThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1263,7 +1266,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Outer_Independence()
         public void GroupBy_Outer_Independence()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1350,7 +1353,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Inner_Independence()
         public void GroupBy_Inner_Independence()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1441,7 +1444,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Inner_Multiple_Independence()
         public void GroupBy_Inner_Multiple_Independence()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1528,7 +1531,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Inner_Escape_Complete()
         public void GroupBy_Inner_Escape_Complete()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1574,7 +1577,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Inner_Escape_Error()
         public void GroupBy_Inner_Escape_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1622,7 +1625,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Inner_Escape_Dispose()
         public void GroupBy_Inner_Escape_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1668,7 +1671,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_NullKeys_Simple()
         public void GroupBy_NullKeys_Simple()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1696,7 +1699,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_NullKeys_Error()
         public void GroupBy_NullKeys_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1748,7 +1751,7 @@ namespace ReactiveTests.Tests
 
 
         private const int _groupByCapacity = 1024;
         private const int _groupByCapacity = 1024;
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_ArgumentChecking()
         public void GroupBy_Capacity_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, _groupByCapacity, EqualityComparer<int>.Default));
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, _groupByCapacity, EqualityComparer<int>.Default));
@@ -1760,7 +1763,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, -1, EqualityComparer<int>.Default));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, -1, EqualityComparer<int>.Default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_KeyEle_ArgumentChecking()
         public void GroupBy_Capacity_KeyEle_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, _groupByCapacity));
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, _groupByCapacity));
@@ -1771,7 +1774,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, -1));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, DummyFunc<int, int>.Instance, -1));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_KeyComparer_ArgumentChecking()
         public void GroupBy_Capacity_KeyComparer_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, _groupByCapacity, EqualityComparer<int>.Default));
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, _groupByCapacity, EqualityComparer<int>.Default));
@@ -1782,7 +1785,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, -1, EqualityComparer<int>.Default));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, -1, EqualityComparer<int>.Default));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Key_ArgumentChecking()
         public void GroupBy_Capacity_Key_ArgumentChecking()
         {
         {
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, _groupByCapacity));
             ReactiveAssert.Throws<ArgumentNullException>(() => ((IObservable<int>)null).GroupBy(DummyFunc<int, int>.Instance, _groupByCapacity));
@@ -1792,7 +1795,7 @@ namespace ReactiveTests.Tests
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, -1));
             ReactiveAssert.Throws<ArgumentOutOfRangeException>(() => DummyObservable<int>.Instance.GroupBy(DummyFunc<int, int>.Instance, -1));
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_WithKeyComparer()
         public void GroupBy_Capacity_WithKeyComparer()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1846,7 +1849,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(12, keyInvoked);
             Assert.Equal(12, keyInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Outer_Complete()
         public void GroupBy_Capacity_Outer_Complete()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1911,7 +1914,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(12, eleInvoked);
             Assert.Equal(12, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Outer_Error()
         public void GroupBy_Capacity_Outer_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -1977,7 +1980,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(12, eleInvoked);
             Assert.Equal(12, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Outer_Dispose()
         public void GroupBy_Capacity_Outer_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -2038,7 +2041,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(5, eleInvoked);
             Assert.Equal(5, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Outer_KeyThrow()
         public void GroupBy_Capacity_Outer_KeyThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -2109,7 +2112,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(9, eleInvoked);
             Assert.Equal(9, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Outer_EleThrow()
         public void GroupBy_Capacity_Outer_EleThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -2180,7 +2183,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(10, eleInvoked);
             Assert.Equal(10, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Outer_ComparerEqualsThrow()
         public void GroupBy_Capacity_Outer_ComparerEqualsThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -2243,7 +2246,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(3, eleInvoked);
             Assert.Equal(3, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Outer_ComparerGetHashCodeThrow()
         public void GroupBy_Capacity_Outer_ComparerGetHashCodeThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -2308,7 +2311,7 @@ namespace ReactiveTests.Tests
             Assert.Equal(7, eleInvoked);
             Assert.Equal(7, eleInvoked);
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Inner_Complete()
         public void GroupBy_Capacity_Inner_Complete()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -2392,7 +2395,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Inner_Complete_All()
         public void GroupBy_Capacity_Inner_Complete_All()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -2482,7 +2485,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Inner_Error()
         public void GroupBy_Capacity_Inner_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -2568,7 +2571,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Inner_Dispose()
         public void GroupBy_Capacity_Inner_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -2649,7 +2652,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Inner_KeyThrow()
         public void GroupBy_Capacity_Inner_KeyThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -2741,7 +2744,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Inner_EleThrow()
         public void GroupBy_Capacity_Inner_EleThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -2837,7 +2840,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Inner_Comparer_EqualsThrow()
         public void GroupBy_Capacity_Inner_Comparer_EqualsThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -2922,7 +2925,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Inner_Comparer_GetHashCodeThrow()
         public void GroupBy_Capacity_Inner_Comparer_GetHashCodeThrow()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -3007,7 +3010,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Outer_Independence()
         public void GroupBy_Capacity_Outer_Independence()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -3094,7 +3097,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Inner_Independence()
         public void GroupBy_Capacity_Inner_Independence()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -3185,7 +3188,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Inner_Multiple_Independence()
         public void GroupBy_Capacity_Inner_Multiple_Independence()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -3272,7 +3275,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Inner_Escape_Complete()
         public void GroupBy_Capacity_Inner_Escape_Complete()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -3318,7 +3321,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Inner_Escape_Error()
         public void GroupBy_Capacity_Inner_Escape_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -3366,7 +3369,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_Inner_Escape_Dispose()
         public void GroupBy_Capacity_Inner_Escape_Dispose()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -3412,7 +3415,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_NullKeys_Simple()
         public void GroupBy_Capacity_NullKeys_Simple()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();
@@ -3440,7 +3443,7 @@ namespace ReactiveTests.Tests
             );
             );
         }
         }
 
 
-        [Fact]
+        [TestMethod]
         public void GroupBy_Capacity_NullKeys_Error()
         public void GroupBy_Capacity_NullKeys_Error()
         {
         {
             var scheduler = new TestScheduler();
             var scheduler = new TestScheduler();

部分文件因文件數量過多而無法顯示