Пример #1
0
        public void CanUpdateSettings_should_throw_exception_if_settings_is_null()
        {
            var command = new UpdateAppSettings();

            ValidationAssert.Throws(() => GuardApp.CanUpdateSettings(command),
                                    new ValidationError("Settings is required.", "Settings"));
        }
Пример #2
0
        public void CanUpdateSettings_should_not_throw_exception_if_setting_is_valid()
        {
            var command = new UpdateAppSettings
            {
                Settings = new AppSettings
                {
                    Patterns = ReadonlyList.Create(
                        new Pattern("name", "[a-z]")),
                    Editors = ReadonlyList.Create(
                        new Editor("name", "url/to/editor"))
                }
            };

            GuardApp.CanUpdateSettings(command);
        }
Пример #3
0
 private void UpdateSettings(UpdateAppSettings command)
 {
     Raise(command, new AppSettingsUpdated());
 }
Пример #4
0
        public static void CanUpdateSettings(UpdateAppSettings command)
        {
            Guard.NotNull(command, nameof(command));

            Validate.It(e =>
            {
                var prefix = nameof(command.Settings);

                var settings = command.Settings;

                if (settings == null)
                {
                    e(Not.Defined(nameof(settings)), prefix);
                    return;
                }

                var patternsPrefix = $"{prefix}.{nameof(settings.Patterns)}";

                if (settings.Patterns == null)
                {
                    e(Not.Defined(nameof(settings.Patterns)), patternsPrefix);
                }
                else
                {
                    settings.Patterns.Foreach((pattern, index) =>
                    {
                        var patternPrefix = $"{patternsPrefix}[{index}]";

                        if (string.IsNullOrWhiteSpace(pattern.Name))
                        {
                            e(Not.Defined(nameof(pattern.Name)), $"{patternPrefix}.{nameof(pattern.Name)}");
                        }

                        if (string.IsNullOrWhiteSpace(pattern.Regex))
                        {
                            e(Not.Defined(nameof(pattern.Regex)), $"{patternPrefix}.{nameof(pattern.Regex)}");
                        }
                    });
                }

                var editorsPrefix = $"{prefix}.{nameof(settings.Editors)}";

                if (settings.Editors == null)
                {
                    e(Not.Defined(nameof(settings.Editors)), editorsPrefix);
                }
                else
                {
                    settings.Editors.Foreach((editor, index) =>
                    {
                        var editorPrefix = $"{editorsPrefix}[{index}]";

                        if (string.IsNullOrWhiteSpace(editor.Name))
                        {
                            e(Not.Defined(nameof(editor.Name)), $"{editorPrefix}.{nameof(editor.Name)}");
                        }

                        if (string.IsNullOrWhiteSpace(editor.Url))
                        {
                            e(Not.Defined(nameof(editor.Url)), $"{editorPrefix}.{nameof(editor.Url)}");
                        }
                    });
                }
            });
        }