public void Ctor_NullAppDomain()
 {
     Assert.Throws(typeof(ArgumentNullException), () =>
     {
         var target = new DisposableAppDomain(null);
     });
 }
        public void Dispose_ValidAppDomain()
        {
            var target = new DisposableAppDomain(AppDomain.CreateDomain("My domain"));
            target.Dispose();

            Assert.True(target.IsDisposed);
        }
Exemplo n.º 3
0
 public void Ctor_NullAppDomain()
 {
     Assert.Throws(typeof(ArgumentNullException), () =>
     {
         var target = new DisposableAppDomain(null);
     });
 }
        public void Dispose_CurrentAppDomain()
        {
            // The current app domain should NOT be unloaded, but the object should be disposed.
            var target = new DisposableAppDomain(AppDomain.CurrentDomain);
            target.Dispose();

            Assert.True(target.IsDisposed);
        }
        public void Ctor_CurrentApplicationDomain()
        {
            var target = new DisposableAppDomain(AppDomain.CurrentDomain);

            Assert.NotNull(target);
            Assert.NotNull(target.Domain);
            Assert.False(target.IsDisposed);
        }
Exemplo n.º 6
0
        public void Dispose_ValidAppDomain()
        {
            var target = new DisposableAppDomain(AppDomain.CreateDomain("My domain"));

            target.Dispose();

            Assert.True(target.IsDisposed);
        }
Exemplo n.º 7
0
        public void Ctor_CurrentApplicationDomain()
        {
            var target = new DisposableAppDomain(AppDomain.CurrentDomain);

            Assert.NotNull(target);
            Assert.NotNull(target.Domain);
            Assert.False(target.IsDisposed);
        }
Exemplo n.º 8
0
        public void Dispose_CurrentAppDomain()
        {
            // The current app domain should NOT be unloaded, but the object should be disposed.
            var target = new DisposableAppDomain(AppDomain.CurrentDomain);

            target.Dispose();

            Assert.True(target.IsDisposed);
        }
        public void Dispose_DomainProp()
        {
            // The current app domain should NOT be unloaded, but the object should be disposed.
            var target = new DisposableAppDomain(AppDomain.CreateDomain("My domain"));
            target.Dispose();

            Assert.IsTrue(target.IsDisposed);

            var domain = target.Domain;
        }
Exemplo n.º 10
0
        public void Dispose_DomainProp()
        {
            // The current app domain should NOT be unloaded, but the object should be disposed.
            var target = new DisposableAppDomain(AppDomain.CreateDomain("My domain"));

            target.Dispose();

            Assert.IsTrue(target.IsDisposed);

            var domain = target.Domain;
        }
        public void Dispose_DomainProp()
        {
            Assert.Throws(typeof(ObjectDisposedException), () =>
            {
                // The current app domain should NOT be unloaded, but the object should be disposed.
                var target = new DisposableAppDomain(AppDomain.CreateDomain("My domain"));
                target.Dispose();

                Assert.True(target.IsDisposed);

                var domain = target.Domain;
            });
        }
Exemplo n.º 12
0
        public void Dispose_DomainProp()
        {
            Assert.Throws(typeof(ObjectDisposedException), () =>
            {
                // The current app domain should NOT be unloaded, but the object should be disposed.
                var target = new DisposableAppDomain(AppDomain.CreateDomain("My domain"));
                target.Dispose();

                Assert.True(target.IsDisposed);

                var domain = target.Domain;
            });
        }
Exemplo n.º 13
0
    /// <summary>
    /// Runs the task (either launched as task or application).
    /// </summary>
    /// <param name="fromExe"></param>
    /// <returns></returns>
    protected override bool Run(bool fromExe)
    {
        try
        {
            var parameters = new StringDictionary();
            foreach (var propertyInfo in GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy).Where(p => p.PropertyType == typeof(string)))
            {
                parameters[propertyInfo.Name] = (string)propertyInfo.GetValue(this);
            }

            // when run from a .debugTask exe, there is no need to wrap in a separate AppDomain
            if (fromExe)
            {
                var singleStitcher = (IStitcher)Activator.CreateInstance(typeof(TSingleStitcher));
                singleStitcher.Logging = Logging;
                return(singleStitcher.Process(parameters, BuildID, BuildTime, GetType().Assembly.Location));
            }

            // the weaver runs isolated, since it it is going to load other modules
            var type              = typeof(TSingleStitcher);
            var assemblyPath      = type.Assembly.Location;
            var assemblyDirectory = Path.GetDirectoryName(assemblyPath);
            var thisAssemblyBytes = File.ReadAllBytes(assemblyPath);
            using (var taskAppDomain = new DisposableAppDomain("StitcherBoy", assemblyDirectory))
            {
                var sticherProcessor = taskAppDomain.CreateInstanceAndUnwrap <StitcherProcessor>();
                taskAppDomain.Load(thisAssemblyBytes);
                sticherProcessor.Logging = new RemoteLogging(Logging);
                sticherProcessor.Load(type.FullName);
                return(sticherProcessor.Process(parameters, BuildID, BuildTime, GetType().Assembly.Location));
            }
        }
        catch (Exception e)
        {
            Logging.WriteError("Unhandled exception: {0}", e);
        }
        return(false);
    }
 public void Ctor_NullAppDomain()
 {
     var target = new DisposableAppDomain(null);
 }
Exemplo n.º 15
0
 public void Ctor_NullAppDomain()
 {
     var target = new DisposableAppDomain(null);
 }