public void No_Localized_String_Found(FormatErrorAction errorAction) { var smart = GetFormatterWithRegisteredResource(CaseSensitivityType.CaseSensitive, errorAction); string?result; switch (errorAction) { case FormatErrorAction.ThrowError: Assert.That(() => smart.Format("{:L(es):NonExisting}"), Throws.InstanceOf <FormattingException>()); break; case FormatErrorAction.OutputErrorInResult: result = smart.Format("{:L(es):NonExisting}"); Assert.That(result, Contains.Substring("No localized string found")); break; case FormatErrorAction.Ignore: result = smart.Format("{:L(es):NonExisting}"); Assert.That(result, Is.EqualTo(string.Empty)); break; case FormatErrorAction.MaintainTokens: result = smart.Format("{:L(es):NonExisting}"); Assert.That(result, Is.EqualTo("{:L(es):NonExisting}")); break; default: throw new ArgumentOutOfRangeException(nameof(errorAction), errorAction, null); } }
private static SmartFormatter GetFormatterWithRegisteredResource(CaseSensitivityType caseSensitivity = CaseSensitivityType.CaseSensitive, FormatErrorAction formatErrorAction = FormatErrorAction.ThrowError) { var localizationFormatter = new LocalizationFormatter { CanAutoDetect = false }; var smart = Smart.CreateDefaultSmartFormat(new SmartSettings { CaseSensitivity = caseSensitivity, Localization = { LocalizationProvider = new LocalizationProvider(true, LocTest1.ResourceManager) { FallbackCulture = null, ReturnNameIfNotFound= false } }, Formatter = { ErrorAction = formatErrorAction } }) .AddExtensions(localizationFormatter) .AddExtensions(new PluralLocalizationFormatter()); return(smart); }