public void WillThrowApplictionExcpetionIfIndexIsOutOfRange() { var versionIncrementer = new VersionIncrementer(); var parsedVersionString = new ParsedVersionString() { IsValid = true, VersionParts = new List <ParsedPart>() { new ParsedPart() { IsChar = false, Value = 1 }, new ParsedPart() { IsChar = true, Value = (int)'a' }, new ParsedPart() { IsChar = false, Value = 1 }, new ParsedPart() { IsChar = true, Value = (int)'x' }, } }; var ex = Assert.Throws <ApplicationException>(() => { var incremented = versionIncrementer.Increment(parsedVersionString, 10); } ); Assert.AreEqual(ex.Message, "Index out of Range of parsed version parts"); }
public void CanIncrementMixed() { var versionIncrementer = new VersionIncrementer(); var parsedVersionString = new ParsedVersionString() { IsValid = true, VersionParts = new List <ParsedPart>() { new ParsedPart() { IsChar = false, Value = 1 }, new ParsedPart() { IsChar = true, Value = (int)'a' }, new ParsedPart() { IsChar = false, Value = 1 }, new ParsedPart() { IsChar = true, Value = (int)'x' }, } }; var incremented = versionIncrementer.Increment(parsedVersionString, 1); var incrementedVersion = incremented.Aggregate("", (combined, part) => String.Concat(combined, ".", part.IsChar ? ((char)part.Value).ToString() : part.Value.ToString())); Assert.AreEqual(incrementedVersion.TrimStart('.'), "1.b.0.a"); }