/// <summary>
    /// Creates a new implementation version from a a string.
    /// </summary>
    /// <param name="value">The string containing the version information.</param>
    /// <exception cref="FormatException"><paramref name="value"/> is not a valid version string.</exception>
    public ImplementationVersion(string value)
    {
        if (string.IsNullOrEmpty(value))
        {
            throw new FormatException(Resources.MustStartWithDottedList);
        }

        if (ModelUtils.ContainsTemplateVariables(value))
        {
            _verbatimString = value;
            return;
        }

        var parts = value.Split('-');

        // Ensure the first part is a dotted list
        if (!VersionDottedList.IsValid(parts[0]))
        {
            throw new FormatException(Resources.MustStartWithDottedList);
        }
        FirstPart = new VersionDottedList(parts[0]);

        // Iterate through all additional parts
        var additionalParts = new VersionPart[parts.Length - 1];

        for (int i = 1; i < parts.Length; i++)
        {
            additionalParts[i - 1] = new VersionPart(parts[i]);
        }
        AdditionalParts = additionalParts;
    }
Exemplo n.º 2
0
 public void ContainsTemplateVariables()
 {
     ModelUtils.ContainsTemplateVariables("").Should().BeFalse();
     ModelUtils.ContainsTemplateVariables("x").Should().BeFalse();
     ModelUtils.ContainsTemplateVariables("}{").Should().BeFalse();
     ModelUtils.ContainsTemplateVariables("{}").Should().BeTrue();
     ModelUtils.ContainsTemplateVariables("{var}").Should().BeTrue();
     ModelUtils.ContainsTemplateVariables("x{var}x").Should().BeTrue();
 }