Mercurial > pub > ImplabNet
view Implab.Fx.Test/StaApartmentTests.cs @ 238:bdfdba6b645b v2
fixed unpredictable Safe.Dispose behaviour
author | cin |
---|---|
date | Fri, 01 Dec 2017 01:28:56 +0300 |
parents | 5dc21f6a3222 |
children |
line wrap: on
line source
using System; using System.Reflection; using System.Threading; using Implab.Parallels; using Implab.Components; #if MONO using NUnit.Framework; using TestClassAttribute = NUnit.Framework.TestFixtureAttribute; using TestMethodAttribute = NUnit.Framework.TestAttribute; using AssertFailedException = NUnit.Framework.AssertionException; #else using Microsoft.VisualStudio.TestTools.UnitTesting; #endif namespace Implab.Fx.Test { [TestClass] public class StaApartmentTests { [TestMethod] public void CreateDestroyApartment() { var apartment = new StaApartment(); try { Assert.IsNotNull(apartment.SyncContext); Assert.Fail(); } catch (InvalidOperationException) { // OK } apartment.Start().Join(); Assert.AreEqual(apartment.State, ExecutionState.Running); Assert.IsNotNull(apartment.SyncContext); apartment.Stop().Join(); Assert.IsTrue(apartment.State == ExecutionState.Disposed); } [TestMethod] public void InvokeInApartment() { var apartment = new StaApartment(); apartment.Start().Join(); var apType = apartment.Invoke(() => { return Thread.CurrentThread.GetApartmentState(); }).Join(); Assert.AreEqual(apType, ApartmentState.STA); apartment.Stop().Join(); } } }