public static bool TryParse(string value, out ParsedNormalizedString @object, out IReadOnlyCollection <string> errorMessages)
        {
            var errorMessageList = new List <string>();

            errorMessages = errorMessageList;

            if (value == null)
            {
                // TryParse should never fail, so report null as an error instead of ArgumentNullException.
                errorMessageList.Add("Value required");
            }
            else
            {
                if (value.Trim().Length < 2)
                {
                    errorMessageList.Add("Length must be at least 2 characters");
                }
            }

            if (errorMessageList.Count > 0)
            {
                @object = null;
                return(false);
            }

            @object = new ParsedNormalizedString
            {
                Value = value
            };

            return(true);
        }
예제 #2
0
        public void ItShouldParseCustomPrimitiveReferenceTypes()
        {
            var data   = this.NewInstance();
            var parsed = data.Parse();

            Assert.AreEqual(parsed.SomeParsedString, ParsedString.Parse(data.SomeParsedString));
            Assert.AreEqual(parsed.OptionalParsedString, ParsedString.Parse(data.OptionalParsedString));

            Assert.AreEqual(
                parsed.SomeParsedNormalizedString,
                ParsedNormalizedString.Parse(data.SomeParsedNormalizedString));
            Assert.AreEqual(
                parsed.OptionalParsedNormalizedString,
                ParsedNormalizedString.Parse(data.OptionalParsedNormalizedString));
        }