public void IntegerArgument_ParseShouldFail_BecauseNumberIsTooLow()
        {
            // Arrange
            IntegerArgument argument = new IntegerArgument(minimum: 0);
            IStringReader   reader   = new StringReader("-10");

            // Act
            ReadResults readResults = argument.Parse(reader, out _);

            // Assert
            Assert.IsFalse(readResults.Successful);
        }
        public void IntegerResult_ShouldHaveCorrectValue()
        {
            // Arrange
            IntegerArgument argument = new IntegerArgument();
            IStringReader   reader   = new StringReader("123");

            // Act
            argument.Parse(reader, out int result);

            // Assert
            Assert.AreEqual(result, 123);
        }
        public void IntegerArgument_ParseShouldFail_BecauseInvalidInteger()
        {
            // Arrange
            IntegerArgument argument = new IntegerArgument();
            IStringReader   reader   = new StringReader("1.5");

            // Act
            ReadResults readResults = argument.Parse(reader, out _);

            // Assert
            Assert.IsFalse(readResults.Successful);
        }
        public void IntegerArgument_ParseShouldSucceed()
        {
            // Arrange
            IntegerArgument argument = new IntegerArgument();
            IStringReader   reader   = new StringReader("123");

            // Act
            ReadResults readResults = argument.Parse(reader, out _);

            // Assert
            Assert.IsTrue(readResults.Successful);
        }