public void Deactivate_FromDisposedState_ShouldThrow()
        {
            using var scope = new ManuallyActivatedScope(1, AmbientScopeOption.ForceCreateNew);
            scope.Dispose();

            Assert.Throws <InvalidOperationException>(() => scope.Deactivate());
        }
        public void Deactivate_FromActivateState_ShouldResultInStateNew()
        {
            using var scope = new ManuallyActivatedScope(1, AmbientScopeOption.ForceCreateNew);
            scope.Activate();

            scope.Deactivate();

            Assert.Equal(AmbientScopeState.New, scope.State);
        }
        public void Deactivate_FromActivateState_ShouldResultInNullParents()
        {
            using var outerScope = new ManuallyActivatedScope(1, AmbientScopeOption.ForceCreateNew);
            using var innerScope = new ManuallyActivatedScope(1, AmbientScopeOption.JoinExisting);

            outerScope.Activate();
            innerScope.Activate();

            innerScope.Deactivate();

            Assert.Null(innerScope.PhysicalParentScope);
            Assert.Null(innerScope.EffectiveParentScope);
        }