public void Should_Initialize_RootReferenceModel()
        {
            var model = new object();

            var settings = new ReferenceLoopProtectionSettings(model);

            settings.RootModelReference.Should().BeSameAs(model);
        }
            public void Should_Initialize_WithReferenceLoopProtectionSettings()
            {
                var modelScheme = Substitute.For <IModelScheme>();

                modelScheme.RootModelType.Returns(typeof(object));

                var referenceLoopProtectionSettings = new ReferenceLoopProtectionSettings();

                var validationContext = new IsValidValidationContext(modelScheme, referenceLoopProtectionSettings);

                validationContext.ReferenceLoopProtectionSettings.Should().BeSameAs(referenceLoopProtectionSettings);
            }
Exemple #3
0
        public IsValidValidationContext(IModelScheme modelScheme, ReferenceLoopProtectionSettings referenceLoopProtectionSettings)
        {
            _modelScheme = modelScheme;

            ReferenceLoopProtectionSettings = referenceLoopProtectionSettings;

            if (!(referenceLoopProtectionSettings is null))
            {
                _referencesLoopProtectionEnabled = true;

                _referencesStack = new ReferencesStack();

                if (_modelScheme.RootModelType.IsClass && !(referenceLoopProtectionSettings.RootModelReference is null))
                {
                    _ = _referencesStack.TryPush(_modelScheme.RootSpecificationScopeId, string.Empty, referenceLoopProtectionSettings.RootModelReference, out _);
                }
            }
        }
        public ValidationContext(IModelScheme modelScheme, bool failFast, ReferenceLoopProtectionSettings referenceLoopProtectionSettings)
        {
            _modelScheme = modelScheme;

            FailFast = failFast;

            ReferenceLoopProtectionSettings = referenceLoopProtectionSettings;

            if (!(referenceLoopProtectionSettings is null))
            {
                _referencesLoopProtectionEnabled = true;

                _referencesStack = new ReferencesStack();

                if (_modelScheme.RootModelType.IsClass && !(referenceLoopProtectionSettings.RootModelReference is null))
                {
                    _referencesStack.TryPush(_modelScheme.RootSpecificationScopeId, GetCurrentPath(), referenceLoopProtectionSettings.RootModelReference, out _);
                }
            }
        }
        public void Should_Initialize_RootReferenceModel_WithNull()
        {
            var settings = new ReferenceLoopProtectionSettings();

            settings.RootModelReference.Should().BeNull();
        }