public void TestCreateWrapperClassAndCallQuarantinableMethod() { qap = new QuarantinableAppDomain("TestOffendingCppLib"); Assert.IsNotNull(qap); var obj = new TestWrapperClass(qap); var startInstanceCounter = AppDomainWrapper.InstanceCounter; Assert.IsNotNull(obj); Assert.AreEqual(startInstanceCounter, AppDomainWrapper.InstanceCounter); var initialSelfTestCallCounter = obj.SelfTestCallsCount(); try { obj.SelfTest(); Assert.AreEqual(initialSelfTestCallCounter + 1, obj.SelfTestCallsCount()); obj.SelfTest(); Assert.AreEqual(initialSelfTestCallCounter + 2, obj.SelfTestCallsCount()); obj.ThrowAccessViolation(); Assert.Fail("Should have thrown quarantinable Exception"); } catch (QuarantinableException) { } qap.UnloadCurrentAppDomain(); obj = new TestWrapperClass(qap); Assert.IsNotNull(obj); Assert.AreNotEqual(startInstanceCounter, AppDomainWrapper.InstanceCounter); obj.SelfTest(); Assert.AreEqual(1, obj.SelfTestCallsCount()); }
public void TestCreateWrapperClass() { qap = new QuarantinableAppDomain("TestOffendingCppLib"); Assert.IsNotNull(qap); var obj = new TestWrapperClass(qap); Assert.IsNotNull(obj); }
public void TestQuarantinableAppDomainCreateInstance() { var qap = new QuarantinableAppDomain("TestOffendingCppLib"); Assert.IsNotNull(qap); dynamic obj = qap.CurrentAppDomainWrapper.LinkedAssembly.CreateInstance("TestOffendingCppLib.TesterClass"); Assert.IsNotNull(obj); }
private void Internal_TestCreateWrapperClassAndSelfTest() { qap = new QuarantinableAppDomain("TestOffendingCppLib"); Assert.IsNotNull(qap); Assert.IsNotNull(qap.CurrentAppDomainWrapper); var obj = new TestWrapperClass(qap); Assert.IsNotNull(obj); Assert.IsTrue(obj.SelfTest()); obj = new TestWrapperClass(qap); Assert.IsNotNull(obj); Assert.IsTrue(obj.SelfTest()); }
public void TestCleanup() { if (_appDomain != null) { AppDomain.Unload(_appDomain); _appDomain = null; } if (qap != null) { qap.UnloadCurrentAppDomain(); qap = null; } }
public void TestCreateWrapperClassAndFailCallingUnloadedAppDomain() { qap = new QuarantinableAppDomain("TestOffendingCppLib"); Assert.IsNotNull(qap); Assert.IsNotNull(qap.CurrentAppDomainWrapper); var obj = new TestWrapperClass(qap); Assert.IsNotNull(obj); Assert.IsTrue(obj.SelfTest()); qap.UnloadCurrentAppDomain(); try { obj.SelfTest(); Assert.Fail("Should have error out after unloading appDomain"); } catch (AppDomainUnloadedException) { } }
public void TestCreateQuarantinableAppDomain() { var qap = new QuarantinableAppDomain("TestOffendingCppLib"); Assert.IsNotNull(qap); }
public TestWrapperClass(QuarantinableAppDomain appDomain) : base(appDomain) { _wrapperObject = appDomain.CreateInstance("TestOffendingCppLib.TesterClass"); }