Ejemplo n.º 1
0
        public void SimpleMultiLine()
        {
            string toParse = "date=\"1770.12.5\"" + Environment.NewLine +
                             "player=\"JAP\"" + Environment.NewLine +
                             "monarch=12209";

            var      data          = toParse.ToStream();
            DateTime?actualDate    = null;
            string   actualPlayer  = null;
            int?     actualMonarch = null;

            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "date", x => actualDate = x.ReadDateTime() },
                { "player", x => actualPlayer = x.ReadString() },
                { "monarch", x => actualMonarch = x.ReadInt32() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.That(actualDate.HasValue);
            Assert.That(!String.IsNullOrEmpty(actualPlayer));
            Assert.That(actualMonarch.HasValue);

            Assert.AreEqual(new DateTime(1770, 12, 5), actualDate);
            Assert.AreEqual("JAP", actualPlayer);
            Assert.AreEqual(12209, actualMonarch);
        }
Ejemplo n.º 2
0
        public void ExtraNewLinesDontMatter()
        {
            var data = "\n\n\n\n ID=100 \n\n\n\n\n\n".ToStream();

            int id = 0;
            Dictionary<string, Action<ParadoxParser>> dictionary = new Dictionary<string, Action<ParadoxParser>>
            {
                {"ID", x => id = x.ReadInt32()}
            };
            ParadoxParser.Parse(data, dictionary.ParserAdapter());
            Assert.AreEqual(100, id);
        }
Ejemplo n.º 3
0
 public void FirstMilleniumParty()
 {
     string input = "date=999.1.1";
     DateTime expected = new DateTime(999, 1, 1);
     DateTime actual = DateTime.MaxValue;
     Dictionary<string, Action<ParadoxParser>> dictionary = new Dictionary<string, Action<ParadoxParser>>
     {
         {"date", x => actual = x.ReadDateTime()}
     };
     ParadoxParser.Parse(input.ToStream(), dictionary.ParserAdapter());
     Assert.AreEqual(expected, actual);
 }
Ejemplo n.º 4
0
        public void ExtraNewLinesDontMatter()
        {
            var data = "\n\n\n\n ID=100 \n\n\n\n\n\n".ToStream();

            int id = 0;
            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "ID", x => id = x.ReadInt32() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());
            Assert.AreEqual(100, id);
        }
Ejemplo n.º 5
0
        public void NegativeInt32()
        {
            var data   = "ID=-130".ToStream();
            int actual = 0;
            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "ID", x => actual = x.ReadInt32() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.AreEqual(-130, actual);
        }
Ejemplo n.º 6
0
        public void WhenChristWasBorn()
        {
            string   input    = "date=1.1.1";
            DateTime expected = new DateTime(1, 1, 1);
            DateTime actual   = DateTime.MaxValue;
            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "date", x => actual = x.ReadDateTime() }
            };

            ParadoxParser.Parse(input.ToStream(), dictionary.ParserAdapter());
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 7
0
        public void FirstMilleniumParty()
        {
            string   input    = "date=999.1.1";
            DateTime expected = new DateTime(999, 1, 1);
            DateTime actual   = DateTime.MaxValue;
            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "date", x => actual = x.ReadDateTime() }
            };

            ParadoxParser.Parse(input.ToStream(), dictionary.ParserAdapter());
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 8
0
        public void NegativeInt32()
        {
            var data = "ID=-130".ToStream();
            int actual = 0;
            Dictionary<string, Action<ParadoxParser>> dictionary = new Dictionary<string, Action<ParadoxParser>>
            {
                { "ID", x => actual = x.ReadInt32() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.AreEqual(-130, actual);
        }
Ejemplo n.º 9
0
        public void SimpleWithSpace()
        {
            var data = "culture = michigan".ToStream();

            string actual = String.Empty;
            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "culture", x => actual = x.ReadString() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.AreEqual("michigan", actual);
        }
Ejemplo n.º 10
0
        public void SimpleComment()
        {
            string toParse = "#culture=michigan";
            var    data    = toParse.ToStream();

            string actual = String.Empty;
            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "culture", x => actual = x.ReadString() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());
            Assert.AreEqual(String.Empty, actual);
        }
Ejemplo n.º 11
0
        public void SingleBracket()
        {
            string toParse = "date={date2=\"1770.12.5\"}";
            var    data    = toParse.ToStream();

            Dater actual = new Dater();
            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "date", x => x.Parse(actual) }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());
            Assert.Equal(new DateTime(1770, 12, 5), actual.Date);
        }
Ejemplo n.º 12
0
        public void SimpleName()
        {
            string toParse = "name=\"Nick\"";
            var    data    = toParse.ToStream();

            string actual = String.Empty;
            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "name", x => actual = x.ReadString() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.AreEqual("Nick", actual);
        }
Ejemplo n.º 13
0
        public void SimpleInt32()
        {
            string toParse = "ID=130";
            var    data    = toParse.ToStream();

            int actual = 0;
            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "ID", x => actual = x.ReadInt32() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.AreEqual(130, actual);
        }
Ejemplo n.º 14
0
        public void TrickyNewLine()
        {
            var    data = "tag=tagger\ntype=typer".ToStream();
            string tag  = string.Empty;
            string type = String.Empty;

            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "tag", x => tag = x.ReadString() },
                { "type", x => type = x.ReadString() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.AreEqual("tagger", tag);
            Assert.AreEqual("typer", type);
        }
Ejemplo n.º 15
0
        public void SimpleDate()
        {
            string toParse = "date=\"1770.12.5\"";
            var    data    = toParse.ToStream();

            DateTime actual = DateTime.MinValue;
            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "date", x => actual = x.ReadDateTime() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            DateTime expected = new DateTime(1770, 12, 5);

            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 16
0
        public void TrickyNewLineWithQuotes()
        {
            var data = "name=\"namer1\"\ncolor=\"Gray\"".ToStream();

            string name  = string.Empty;
            string color = string.Empty;
            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "name", x => name = x.ReadString() },
                { "color", x => color = x.ReadString() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.AreEqual("namer1", name);
            Assert.AreEqual("Gray", color);
        }
Ejemplo n.º 17
0
        public void FollowingCommentWithSpace()
        {
            string toParse = "tag = data #culture=michigan\n" +
                             "tag2 = data2";
            var data = toParse.ToStream();

            string actual = String.Empty;
            string tag2   = String.Empty;
            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "culture", x => actual = x.ReadString() },
                { "tag2", x => tag2 = x.ReadString() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());
            Assert.Equal(String.Empty, actual);
            Assert.Equal("data2", tag2);
        }
Ejemplo n.º 18
0
        public void TechnologyBracket()
        {
            var data = "\t\tland_tech={45 1020.600}".ToStream();

            int?   tech     = null;
            double?progress = null;

            IDictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "land_tech", x => x.ReadInsideBrackets(parser => ReadInto(parser, ref tech, ref progress)) }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());
            Assert.True(tech.HasValue);
            Assert.True(progress.HasValue);
            Assert.Equal(45, tech);
            Assert.Equal(1020.600, progress);
        }
Ejemplo n.º 19
0
        public void MultipleBracket()
        {
            var data = ("date={date2=\"1770.12.5\"}" + Environment.NewLine +
                        "date={date2=\"1666.6.6\"}").ToStream();
            List <Dater> actual = new List <Dater>();
            Dictionary <string, Action <ParadoxParser> > dictionary = new Dictionary <string, Action <ParadoxParser> >
            {
                { "date", x => {
                      Dater newDate = new Dater();
                      x.Parse(newDate);
                      actual.Add(newDate);
                  } }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            List <DateTime> expected = new List <DateTime>
            {
                new DateTime(1770, 12, 5),
                new DateTime(1666, 6, 6)
            };

            Assert.Equal(expected, actual.Select(x => x.Date));
        }
Ejemplo n.º 20
0
        public void FollowingCommentWithSpace()
        {
            string toParse = "tag = data #culture=michigan\n" +
                             "tag2 = data2";
            var data = toParse.ToStream();

            string actual = String.Empty;
            string tag2 = String.Empty;
            Dictionary<string, Action<ParadoxParser>> dictionary = new Dictionary<string, Action<ParadoxParser>>
            {
                { "culture", x => actual = x.ReadString() },
                { "tag2", x => tag2 = x.ReadString() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());
            Assert.AreEqual(String.Empty, actual);
            Assert.AreEqual("data2", tag2);
        }
Ejemplo n.º 21
0
        public void SimpleDate()
        {
            string toParse = "date=\"1770.12.5\"";
            var data = toParse.ToStream();

            DateTime actual = DateTime.MinValue;
            Dictionary<string, Action<ParadoxParser>> dictionary = new Dictionary<string, Action<ParadoxParser>>
            {
                { "date", x => actual = x.ReadDateTime() }
            };
            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            DateTime expected = new DateTime(1770, 12, 5);
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 22
0
        public void SimpleComment()
        {
            string toParse = "#culture=michigan";
            var data = toParse.ToStream();

            string actual = String.Empty;
            Dictionary<string, Action<ParadoxParser>> dictionary = new Dictionary<string, Action<ParadoxParser>>
            {
                { "culture", x => actual = x.ReadString() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());
            Assert.AreEqual(String.Empty, actual);
        }
Ejemplo n.º 23
0
        public void SimpleMultiLine()
        {
            string toParse = "date=\"1770.12.5\"" + Environment.NewLine +
                             "player=\"JAP\"" + Environment.NewLine +
                             "monarch=12209";

            var data = toParse.ToStream();
            DateTime? actualDate = null;
            string actualPlayer = null;
            int? actualMonarch = null;

            Dictionary<string, Action<ParadoxParser>> dictionary = new Dictionary<string, Action<ParadoxParser>>
            {
                { "date", x => actualDate = x.ReadDateTime() },
                { "player", x => actualPlayer = x.ReadString() },
                { "monarch", x => actualMonarch = x.ReadInt32() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.That(actualDate.HasValue);
            Assert.That(!String.IsNullOrEmpty(actualPlayer));
            Assert.That(actualMonarch.HasValue);

            Assert.AreEqual(new DateTime(1770, 12, 5), actualDate);
            Assert.AreEqual("JAP", actualPlayer);
            Assert.AreEqual(12209, actualMonarch);
        }
Ejemplo n.º 24
0
        public void SimpleInt32()
        {
            string toParse = "ID=130";
            var data = toParse.ToStream();

            int actual = 0;
            Dictionary<string, Action<ParadoxParser>> dictionary = new Dictionary<string, Action<ParadoxParser>>
            {
                { "ID", x => actual = x.ReadInt32() }
            };
            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.AreEqual(130, actual);
        }
Ejemplo n.º 25
0
        public void SimpleName()
        {
            string toParse = "name=\"Nick\"";
            var data = toParse.ToStream();

            string actual = String.Empty;
            Dictionary<string, Action<ParadoxParser>> dictionary = new Dictionary<string, Action<ParadoxParser>>
            {
                { "name", x => actual = x.ReadString() }
            };
            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.AreEqual("Nick", actual);
        }
Ejemplo n.º 26
0
        public void SimpleWithSpace()
        {
            var data = "culture = michigan".ToStream();

            string actual = String.Empty;
            Dictionary<string, Action<ParadoxParser>> dictionary = new Dictionary<string, Action<ParadoxParser>>
            {
                { "culture", x => actual = x.ReadString() }
            };
            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.AreEqual("michigan", actual);
        }
Ejemplo n.º 27
0
        public void TrickyNewLine()
        {
            var data = "tag=tagger\ntype=typer".ToStream();
            string tag = string.Empty;
            string type = String.Empty;

            Dictionary<string, Action<ParadoxParser>> dictionary = new Dictionary<string, Action<ParadoxParser>>
            {
                { "tag", x => tag = x.ReadString() },
                { "type", x => type = x.ReadString() }
            };

            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.AreEqual("tagger", tag);
            Assert.AreEqual("typer", type);
        }
Ejemplo n.º 28
0
        public void TrickyNewLineWithQuotes()
        {
            var data = "name=\"namer1\"\ncolor=\"Gray\"".ToStream();

            string name = string.Empty;
            string color = string.Empty;
            Dictionary<string, Action<ParadoxParser>> dictionary = new Dictionary<string, Action<ParadoxParser>>
            {
                {"name", x => name = x.ReadString()},
                {"color", x => color = x.ReadString()}
            };
            ParadoxParser.Parse(data, dictionary.ParserAdapter());

            Assert.AreEqual("namer1", name);
            Assert.AreEqual("Gray", color);
        }
Ejemplo n.º 29
0
 public void WhenChristWasBorn()
 {
     string input = "date=1.1.1";
     DateTime expected = new DateTime(1, 1, 1);
     DateTime actual = DateTime.MaxValue;
     Dictionary<string, Action<ParadoxParser>> dictionary = new Dictionary<string, Action<ParadoxParser>>
     {
         {"date", x => actual = x.ReadDateTime()}
     };
     ParadoxParser.Parse(input.ToStream(), dictionary.ParserAdapter());
     Assert.AreEqual(expected, actual);
 }