public void Flag_value_is_nothing_when_fetching_value_for_missing_flag_aliases()
        {
            var arguments = new ArgumentList();

            Assert.IsTrue(arguments.GetFlagValue("flag", "f").IsNothing);
        }
        public void Multiple_flag_names_can_be_used_when_fetching_flag_value()
        {
            var arguments1 = new ArgumentList("-flag", "value");
            var arguments2 = new ArgumentList("-f", "value");

            var value1 = arguments1.GetFlagValue("flag", "f");
            var value2 = arguments2.GetFlagValue("flag", "f");

            Assert.IsTrue(value1.HasValue);
            Assert.IsTrue(value2.HasValue);
            Assert.AreEqual("value", value1.Value);
            Assert.AreEqual("value", value2.Value);
        }
        public void Retrieving_flag_value_directly_returns_first_flag_value()
        {
            var arguments = new ArgumentList("-flag", "value1", "value2");

            var flagValue = arguments.GetFlagValue("flag");

            Assert.AreEqual("value1", flagValue.Value);
        }
        public void Retrieving_flag_value_directly_returns_nothing_for_flag_without_values()
        {
            var arguments = new ArgumentList("-flag");

            var flagValue = arguments.GetFlagValue("flag");

            Assert.IsTrue(flagValue.IsNothing);
        }
        public void Retrieving_flag_value_directly_returns_nothing_for_missing_flag()
        {
            var arguments = new ArgumentList();

            var value = arguments.GetFlagValue("missingflag");

            Assert.IsTrue(value.IsNothing);
        }