private void CheckId <T>(IdObjectCollection <T> idobjCollection, int number) where T : IdObjBase, new()
 {
     for (int index = 0; index < number; ++index)
     {
         T item = new T();
         idobjCollection.Add(item);
         Assert.AreEqual(index, item.Id);
     }
 }
        public void TestIdGeneration()
        {
            IdObjectCollection <Student> studCollection = new IdObjectCollection <Student>();

            CheckId(studCollection, 10);

            IdObjectCollection <Equipment> equipCollection = new IdObjectCollection <Equipment>();

            CheckId(equipCollection, 10);
        }
        public void LinkedRegionWillFailForProvinceMismatch()
        {
            var reader1 = new BufferedReader("{ areas={area1} }");
            var region  = new ImperatorRegion("region1", reader1);

            var reader2 = new BufferedReader("{ provinces  = { 3 6 2 }}");
            var area    = new ImperatorArea("area1", reader2);
            var areas   = new IdObjectCollection <string, ImperatorArea> {
                area
            };

            region.LinkAreas(areas);

            Assert.False(region.ContainsProvince(7));
        }
        public void LinkedRegionCanLocateProvince()
        {
            var reader1 = new BufferedReader("{ areas={area1} }");
            var region  = new ImperatorRegion("region1", reader1);

            var reader2 = new BufferedReader("{ provinces = { 3 6 2 }}");
            var area    = new ImperatorArea("area1", reader2);
            var areas   = new IdObjectCollection <string, ImperatorArea> {
                area
            };

            region.LinkAreas(areas);

            Assert.True(region.ContainsProvince(6));
        }
        public void RegionCanBeLinkedToArea()
        {
            var reader1 = new BufferedReader("areas = { test1 }");
            var region  = new ImperatorRegion("region1", reader1);

            var reader2 = new BufferedReader("{ provinces  = { 3 6 2 }}");
            var area    = new ImperatorArea("test1", reader2);
            var areas   = new IdObjectCollection <string, ImperatorArea> {
                area
            };

            region.LinkAreas(areas);

            Assert.NotNull(region.Areas["test1"]);
        }
        public void MultipleAreasCanBeLoaded()
        {
            var reader = new BufferedReader("areas = { test1 test2 test3 }");
            var region = new ImperatorRegion("region1", reader);

            var emptyReader = new BufferedReader(string.Empty);
            var area1       = new ImperatorArea("test1", emptyReader);
            var area2       = new ImperatorArea("test2", emptyReader);
            var area3       = new ImperatorArea("test3", emptyReader);
            var areas       = new IdObjectCollection <string, ImperatorArea> {
                area1, area2, area3
            };

            region.LinkAreas(areas);

            Assert.Collection(region.Areas,
                              item => Assert.Equal("test1", item.Id),
                              item => Assert.Equal("test2", item.Id),
                              item => Assert.Equal("test3", item.Id)
                              );
        }