private TypedArgumentPack GetPack(params string[] arguments)
        {
            var argumentPack = new ArgumentPack(arguments);
            var provider     = new ArgumentParseProvider();

            provider.SeedAssembly(Assembly.GetExecutingAssembly());
            return(new TypedArgumentPack(argumentPack, provider));
        }
        public void CanParseIntTest()
        {
            ArgumentPack pack = new ArgumentPack("1000");

            var parser = new IntArgumentParser();

            Assert.True(parser.CanParse(pack, typeof(int)));

            var result = (int)parser.Parse(pack, typeof(int));

            Assert.Equal(1000, result);
        }
        public void CanParseBoolTest()
        {
            ArgumentPack pack = new ArgumentPack("true");

            var parser = new BooleanArgumentParser();

            Assert.True(parser.CanParse(pack, typeof(bool)));

            var result = (bool)parser.Parse(pack, typeof(bool));

            Assert.True(result);
        }
        public void CanParseMultiwordStringTest()
        {
            ArgumentPack pack = new ArgumentPack("\"test", "string\"");

            var parser = new StringArgumentParser();

            Assert.True(parser.CanParse(pack, typeof(string)));

            var result = (string)parser.Parse(pack, typeof(string));

            Assert.Equal("test string", result);
        }
        public void CanParseUlongTest()
        {
            ArgumentPack pack = new ArgumentPack("22903433382093");

            var parser = new UlongArgumentParser();

            Assert.True(parser.CanParse(pack, typeof(ulong)));

            var result = (ulong)parser.Parse(pack, typeof(ulong));

            Assert.Equal(22903433382093UL, result);
        }
        public void ParseCustomEnumTest()
        {
            ArgumentPack pack = new ArgumentPack("true");

            var parser = new EnumArgumentParser();

            Assert.True(parser.CanParse(pack, typeof(TestValues)));

            var result = (TestValues)parser.Parse(pack, typeof(TestValues));

            Assert.Equal(TestValues.True, result);
        }
        public void CanParseGuidTest()
        {
            var          guid = Guid.NewGuid();
            ArgumentPack pack = new ArgumentPack(guid.ToString());

            var parser = new GuidArgumentParser();

            Assert.True(parser.CanParse(pack, typeof(Guid)));

            var result = (Guid)parser.Parse(pack, typeof(Guid));

            Assert.Equal(guid, result);
        }