示例#1
0
    public void BrokenLinkAttemptThrowsWarning()
    {
        var reader = new BufferedReader(
            "={\n" +
            "42={ pop = 8 }\n" +
            "44={ pop = 10 }\n" +             // no pop 10
            "}\n"
            );
        var provinces = new ImperatorToCK3.Imperator.Provinces.ProvinceCollection(reader);

        var reader2 = new BufferedReader(
            "={\n" +
            "8={type=\"citizen\" culture=\"roman\" religion=\"paradoxian\"}\n" +
            "9={type=\"tribal\" culture=\"persian\" religion=\"gsg\"}\n" +
            "}\n"
            );
        var pops = new ImperatorToCK3.Imperator.Pops.PopCollection();

        pops.LoadPops(reader2);

        var output = new StringWriter();

        Console.SetOut(output);

        provinces.LinkPops(pops);

        var logStr = output.ToString();

        Assert.Contains("[WARN] Pop with ID 10 has no definition!", logStr);
    }
示例#2
0
    public void PopsCanBeSet()
    {
        var reader = new BufferedReader(
            "= {\n" +
            "\tpop=69\n" +
            "\tpop=68\n" +
            "\tpop=12213\n" +
            "\tpop=23\n" +
            "}"
            );

        var theProvince = Province.Parse(reader, 42);

        Assert.Equal(0, theProvince.GetPopCount());         // pops not linked yet

        var pops = new ImperatorToCK3.Imperator.Pops.PopCollection();
        var pop1 = new ImperatorToCK3.Imperator.Pops.Pop(69);
        var pop2 = new ImperatorToCK3.Imperator.Pops.Pop(68);
        var pop3 = new ImperatorToCK3.Imperator.Pops.Pop(12213);
        var pop4 = new ImperatorToCK3.Imperator.Pops.Pop(23);

        pops.Add(pop1);
        pops.Add(pop2);
        pops.Add(pop3);
        pops.Add(pop4);
        theProvince.LinkPops(pops);
        Assert.Equal(4, theProvince.GetPopCount());
    }
示例#3
0
    public void PopCanBeLinked()
    {
        var reader    = new BufferedReader("={42={pop=8}}\n");
        var provinces = new ImperatorToCK3.Imperator.Provinces.ProvinceCollection(reader);

        var reader2 = new BufferedReader(
            "8={type=\"citizen\" culture=\"roman\" religion=\"paradoxian\"}\n"
            );
        var pops = new ImperatorToCK3.Imperator.Pops.PopCollection();

        pops.LoadPops(reader2);
        provinces.LinkPops(pops);

        var province = provinces[42];
        var pop      = province.Pops[8];

        Assert.NotNull(pop);
        Assert.Equal("citizen", pop.Type);
    }
示例#4
0
    public void MultiplePopsCanBeLinked()
    {
        var reader = new BufferedReader(
            "={\n" +
            "43={ pop = 10}\n" +
            "42={pop=8}\n" +
            "44={pop= 9}\n" +
            "}\n"
            );
        var provinces = new ImperatorToCK3.Imperator.Provinces.ProvinceCollection(reader);

        var reader2 = new BufferedReader(
            "={\n" +
            "8={type=\"citizen\" culture=\"roman\" religion=\"paradoxian\"}\n" +
            "9={type=\"tribal\" culture=\"persian\" religion=\"gsg\"}\n" +
            "10={type=\"freemen\" culture=\"greek\" religion=\"zoroastrian\"}\n" +
            "}\n"
            );
        var pops = new ImperatorToCK3.Imperator.Pops.PopCollection();

        pops.LoadPops(reader2);
        provinces.LinkPops(pops);

        var province  = provinces[42];
        var pop       = province.Pops[8];
        var province2 = provinces[43];
        var pop2      = province2.Pops[10];
        var province3 = provinces[44];
        var pop3      = province3.Pops[9];

        Assert.NotNull(pop);
        Assert.Equal("citizen", pop.Type);
        Assert.NotNull(pop2);
        Assert.Equal("freemen", pop2.Type);
        Assert.NotNull(pop3);
        Assert.Equal("tribal", pop3.Type);
    }