public void Parse_should_properly_format_shaders()
        {
            DISetup.SetupContainer();

            var sb = new StringBuilder();

            sb.AppendLine(@"");
            sb.AppendLine(@"VertexStruct VS_DEFAULT_TEXT_INPUT");
            sb.AppendLine(@"{");
            sb.AppendLine(@"	float4	vPosition	: POSITION;");
            sb.AppendLine(@"	float2	vTexCoord	: TEXCOORD0;");
            sb.AppendLine(@"	float4	vColor		: COLOR;");
            sb.AppendLine(@"};");
            sb.AppendLine(@"");
            sb.AppendLine(@"VertexStruct VS_DEFAULT_TEXT_OUTPUT");
            sb.AppendLine(@"{");
            sb.AppendLine(@"	float4	vPosition	: PDX_POSITION;");
            sb.AppendLine(@"	float2	vTexCoord	: TEXCOORD0;");
            sb.AppendLine(@"	float4	vColor		: TEXCOORD1;");
            sb.AppendLine(@"};");


            var args = new ParserArgs()
            {
                ContentSHA      = "sha",
                ModDependencies = new List <string> {
                    "1"
                },
                File    = "gfx\\fx\\test.fxh",
                Lines   = sb.ToString().Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries),
                ModName = "fake"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);
            var result = parser.Parse(args).ToList();

            result.Should().NotBeNullOrEmpty();
            result.Count.Should().Be(1);
            for (int i = 0; i < 1; i++)
            {
                result[i].ContentSHA.Should().Be("sha");
                result[i].Dependencies.First().Should().Be("1");
                result[i].File.Should().Be("gfx\\fx\\test.fxh");
                switch (i)
                {
                case 0:
                    result[i].Code.Trim().Should().Be(string.Join(Environment.NewLine, sb.ToString().ReplaceTabs().Trim().SplitOnNewLine()));
                    result[i].Id.Should().Be("test.fxh");
                    result[i].ValueType.Should().Be(ValueType.WholeTextFile);
                    break;

                default:
                    break;
                }
                result[i].ModName.Should().Be("fake");
                result[i].Type.Should().Be("gfx\\fx\\fxh");
            }
        }
        public void CanParse_text_sound_file_should_be_true()
        {
            var args = new CanParseArgs()
            {
                File = "sound\\test.fxh"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeTrue();
        }
        public void CanParse_should_be_false()
        {
            var args = new CanParseArgs()
            {
                File = "common\\ship_designs\\test.txt"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeFalse();
        }
        public void CanParse_shader_should_be_true()
        {
            var args = new CanParseArgs()
            {
                File = "common\\test.shader"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeTrue();
        }
        public void CanParse_csv_fils_should_be_true()
        {
            var args = new CanParseArgs()
            {
                File     = "common\\csv.csv",
                GameType = "HeartsofIronIV"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeTrue();
        }
        public void CanParse_script_should_be_false()
        {
            var args = new CanParseArgs()
            {
                File     = "script\\folder\\fake.mp3",
                GameType = "HeartsofIronIV"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeFalse();
        }
        public void CanParse_component_tags_should_be_true()
        {
            var args = new CanParseArgs()
            {
                File     = "common\\component_tags\\tags.txt",
                GameType = "Stellaris"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeTrue();
        }
        public void CanParse_map_galaxy_should_be_true()
        {
            var args = new CanParseArgs()
            {
                File     = "map\\galaxy\\test.txt",
                GameType = "Stellaris"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeTrue();
        }
        public void CanParse_start_screen_messages_should_be_true()
        {
            var args = new CanParseArgs()
            {
                File     = "common\\start_screen_messages\\t.txt",
                GameType = "Stellaris"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeTrue();
        }
        public void CanParse_map_csv_file_should_be_true()
        {
            var args = new CanParseArgs()
            {
                File     = "map\\fake.txt",
                GameType = "HeartsofIronIV"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeTrue();
        }
        public void CanParse_terrain_tags_should_be_true()
        {
            var args = new CanParseArgs()
            {
                File     = "common\\terrain\\fake.txt",
                GameType = "HeartsofIronIV"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeTrue();
        }
        public void CanParse_graphicalculturetype_should_be_true()
        {
            var args = new CanParseArgs()
            {
                File     = "common\\graphicalculturetype.txt",
                GameType = "HeartsofIronIV"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeTrue();
        }
        public void CanParse_diplo_phrase_should_be_true()
        {
            var args = new CanParseArgs()
            {
                File     = "common\\diplo_phrases\\test.txt",
                GameType = "Stellaris"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeTrue();
        }
        public void CanParse_fxh_should_be_true()
        {
            var args = new CanParseArgs()
            {
                File = "common\\name_lists\\t.txt"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeFalse();
            args.File = "common\\test.fxh";
            parser.CanParse(args).Should().BeTrue();
        }
示例#15
0
        public void Parse_component_tags_should_yield_results()
        {
            DISetup.SetupContainer();

            var sb = new StringBuilder();

            sb.AppendLine(@"weapon_type_energy");
            sb.AppendLine(@"weapon_type_kinetic");
            sb.AppendLine(@"weapon_type_explosive");
            sb.AppendLine(@"weapon_type_strike_craft");
            sb.AppendLine(@"weapon_type_point_defense");
            sb.AppendLine(@"weapon_role_anti_armor");
            sb.AppendLine(@"weapon_role_anti_shield");
            sb.AppendLine(@"weapon_role_artillery");
            sb.AppendLine(@"weapon_role_anti_hull");
            sb.AppendLine(@"weapon_role_point_defense");

            var args = new ParserArgs()
            {
                ContentSHA      = "sha",
                ModDependencies = new List <string> {
                    "1"
                },
                File    = "common\\component_tags\\t.txt",
                Lines   = sb.ToString().Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries),
                ModName = "fake"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);
            var result = parser.Parse(args).ToList();

            result.Should().NotBeNullOrEmpty();
            result.Count.Should().Be(1);
            for (int i = 0; i < 1; i++)
            {
                result[i].ContentSHA.Should().Be("sha");
                result[i].Dependencies.First().Should().Be("1");
                result[i].File.Should().Be("common\\component_tags\\t.txt");
                switch (i)
                {
                case 0:
                    result[i].Code.Trim().Should().Be(sb.ToString().Trim());
                    result[i].Id.Should().Be("t.txt");
                    result[i].ValueType.Should().Be(ValueType.WholeTextFile);
                    break;

                default:
                    break;
                }
                result[i].ModName.Should().Be("fake");
                result[i].Type.Should().Be("common\\component_tags\\txt");
            }
        }
        public void CanParse_common_root_should_be_true()
        {
            var args = new CanParseArgs()
            {
                File     = "common\\alerts.txt",
                GameType = "Stellaris"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);

            parser.CanParse(args).Should().BeTrue();
            args.File = "common\\message_types.txt";
            parser.CanParse(args).Should().BeTrue();
        }
        public void Parse_should_yield_results()
        {
            DISetup.SetupContainer();

            var sb = new StringBuilder();

            sb.AppendLine(@"on_game_start = {");
            sb.AppendLine(@"    events = {");
            sb.AppendLine(@"        dmm_mod_1_flag.1");
            sb.AppendLine(@"    }");
            sb.AppendLine(@"}");

            var args = new ParserArgs()
            {
                ContentSHA      = "sha",
                ModDependencies = new List <string> {
                    "1"
                },
                File    = "common\\alerts.txt",
                Lines   = sb.ToString().Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries),
                ModName = "fake"
            };
            var parser = new WholeTextParser(new CodeParser(new Logger()), null);
            var result = parser.Parse(args).ToList();

            result.Should().NotBeNullOrEmpty();
            result.Count.Should().Be(1);
            for (int i = 0; i < 1; i++)
            {
                result[i].ContentSHA.Should().Be("sha");
                result[i].Dependencies.First().Should().Be("1");
                result[i].File.Should().Be("common\\alerts.txt");
                switch (i)
                {
                case 0:
                    result[i].Code.Trim().Should().Be(sb.ToString().Trim());
                    result[i].Id.Should().Be("alerts.txt");
                    result[i].ValueType.Should().Be(ValueType.WholeTextFile);
                    break;

                default:
                    break;
                }
                result[i].ModName.Should().Be("fake");
                result[i].Type.Should().Be("common\\txt");
            }
        }