Example #1
0
        public static void InitializeChipsTestB(
            MapSizeWidth width, MapSizeHeight height)
        {
            var instance = new MapChipList();

            var errorOccured = false;

            try
            {
                instance.InitializeChips(width, height);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーが発生しないこと
            Assert.IsFalse(errorOccured);

            // 件数が意図した値と一致すること
            Assert.AreEqual(instance.Width, width);
            Assert.AreEqual(instance.Height, height);

            // すべての要素がデフォルト値で初期化されていること
            foreach (var columns in instance)
            {
                foreach (var chip in columns)
                {
                    Assert.AreEqual(chip, MapChip.Default);
                }
            }
        }
Example #2
0
        public static void ConstructorTestB(MapSizeWidth width, MapSizeHeight height)
        {
            MapChipList instance = null;

            var errorOccured = false;

            try
            {
                instance = new MapChipList(width, height);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーが発生しないこと
            Assert.IsFalse(errorOccured);

            // 件数が一致すること
            Assert.AreEqual(instance.Count, width.ToInt());
            foreach (var columns in instance)
            {
                Assert.AreEqual(columns.Count, height.ToInt());
            }
        }
Example #3
0
        public static void SerializeTest()
        {
            var chips  = MakeMapChipList(30, false, 40);
            var target = new MapChipList(chips);
            var clone  = DeepCloner.DeepClone(target);

            Assert.IsTrue(clone.Equals(target));
        }
Example #4
0
        public static void GetMinCapacityTest()
        {
            var instance    = new MapChipList();
            var maxCapacity = instance.GetMinCapacity();

            // 取得した値が容量最大値と一致すること
            Assert.AreEqual(maxCapacity, MapChipList.MinCapacity);
        }
Example #5
0
        public static void ConstructorTestA()
        {
            MapChipList instance = null;

            var errorOccured = false;

            try
            {
                instance = new MapChipList();
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーが発生しないこと
            Assert.IsFalse(errorOccured);

            // 件数が20件であること
            Assert.AreEqual(instance.Count, 20);
        }
Example #6
0
        public static void ConstructorTestC(int initWidth, bool hasNullInWidth,
                                            int initHeight, bool isError)
        {
            MapChipList instance = null;

            var chips = MakeMapChipList(initWidth, hasNullInWidth, initHeight);

            var errorOccured = false;

            try
            {
                instance = new MapChipList(chips);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーフラグが一致すること
            Assert.AreEqual(errorOccured, isError);

            if (errorOccured)
            {
                return;
            }

            Assert.NotNull(instance);

            // 件数が一致すること
            Assert.AreEqual(instance.Count, initWidth);
            foreach (var columns in instance)
            {
                Assert.AreEqual(columns.Count, initHeight);
            }
        }
Example #7
0
        public static void UpdateSizeTest()
        {
            var instance            = new MapChipList(GenerateTestChipsData(20, 20));
            var changedPropertyList = new List <string>();

            instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };

            var width  = (MapSizeWidth)30;
            var height = (MapSizeHeight)24;

            var errorOccured = false;

            try
            {
                instance.UpdateSize(width, height);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーが発生しないこと
            Assert.IsFalse(errorOccured);

            // サイズが変化していること
            Assert.AreEqual(instance.Width, width);
            Assert.AreEqual(instance.Height, height);

            // 意図したとおりプロパティ変更通知が発火していること
            Assert.AreEqual(changedPropertyList.Count, 4);
            Assert.IsTrue(changedPropertyList[0].Equals(nameof(instance.Count)));
            Assert.IsTrue(changedPropertyList[1].Equals(ListConstant.IndexerName));
            Assert.IsTrue(changedPropertyList[2].Equals(nameof(Layer.Width)));
            Assert.IsTrue(changedPropertyList[3].Equals(nameof(Layer.Height)));
        }
Example #8
0
        public static void UpdateHeightTest(int initWidth,
                                            int initHeight, MapSizeHeight height)
        {
            var chips = MakeMapChipList(initWidth, false, initHeight);

            var instance            = new MapChipList(chips);
            var changedPropertyList = new List <string>();

            instance.PropertyChanged += (sender, args) => { changedPropertyList.Add(args.PropertyName); };
            var changedCollectionList = new List <NotifyCollectionChangedEventArgs>();

            instance.CollectionChanged += (sender, args) => { changedCollectionList.Add(args); };
            var changedColumnsPropertyList   = new List <string>();
            var changedColumnsCollectionList = new List <NotifyCollectionChangedEventArgs>();

            instance.ForEach(column =>
            {
                column.PropertyChanged   += (sender, args) => { changedColumnsPropertyList.Add(args.PropertyName); };
                column.CollectionChanged += (sender, args) => { changedColumnsCollectionList.Add(args); };
            });

            var errorOccured = false;

            try
            {
                instance.UpdateHeight(height);
            }
            catch (Exception ex)
            {
                logger.Exception(ex);
                errorOccured = true;
            }

            // エラーが発生しないこと
            Assert.IsFalse(errorOccured);

            // 件数が意図した値と一致すること
            Assert.AreEqual(instance.Width.ToInt(), initWidth);
            Assert.AreEqual(instance.Height, height);

            var notChangedLength = initHeight < height ? initHeight : height.ToInt();

            for (var i = 0; i < instance.Width; i++)
            {
                var j = 0;
                // 操作しなかった項目がもとの値のままであること
                for (; j < notChangedLength; j++)
                {
                    Assert.AreEqual(instance[i][j], MakeMapChip(i, j));
                }

                // 新たに追加された項目がデフォルト値であること
                for (; j < instance.Height; j++)
                {
                    Assert.AreEqual(instance[i][j], MapChip.Default);
                }
            }

            // 意図したとおりプロパティ変更通知が発火していること
            Assert.AreEqual(changedPropertyList.Count, 1);
            Assert.IsTrue(changedPropertyList[0].Equals(nameof(MapChipList.Height)));
            Assert.AreEqual(changedCollectionList.Count, 0);
            Assert.AreEqual(changedColumnsPropertyList.Count, initWidth * 2);
            for (var i = 0; i < initWidth; i++)
            {
                Assert.IsTrue(changedColumnsPropertyList[2 * i].Equals(nameof(IFixedLengthMapChipColumns.Count)));
                Assert.IsTrue(changedColumnsPropertyList[2 * i + 1].Equals(ListConstant.IndexerName));
            }

            if (initHeight == height)
            {
                Assert.AreEqual(changedColumnsCollectionList.Count, 0);
            }
            else
            {
                Assert.AreEqual(changedColumnsCollectionList.Count, initWidth);
                if (initHeight > height)
                {
                    for (var i = 0; i < initWidth; i++)
                    {
                        Assert.IsTrue(changedColumnsCollectionList[i].Action == NotifyCollectionChangedAction.Remove);
                        Assert.IsTrue(changedColumnsCollectionList[i].OldStartingIndex == height);
                        Assert.IsTrue(changedColumnsCollectionList[i].OldItems.Count == initHeight - height);
                        Assert.IsTrue(changedColumnsCollectionList[i].NewStartingIndex == -1);
                        Assert.IsTrue(changedColumnsCollectionList[i].NewItems == null);
                    }
                }
                else
                {
                    for (var i = 0; i < initWidth; i++)
                    {
                        Assert.IsTrue(changedColumnsCollectionList[i].Action == NotifyCollectionChangedAction.Add);
                        Assert.IsTrue(changedColumnsCollectionList[i].OldStartingIndex == -1);
                        Assert.IsTrue(changedColumnsCollectionList[i].OldItems == null);
                        Assert.IsTrue(changedColumnsCollectionList[i].NewStartingIndex == initHeight);
                        Assert.IsTrue(changedColumnsCollectionList[i].NewItems.Count == height - initHeight);
                    }
                }
            }
        }