コード例 #1
0
ファイル: TestLayoutOffset.cs プロジェクト: tositeru/hinode
        public void SetHorizontalOffsetsPrpertyPasses()
        {
            var offset = new LayoutOffset();

            var left  = 20;
            var right = 40f;

            offset.SetHorizontalOffsets(left, right);

            Assert.AreEqual(left, offset.Left);
            Assert.AreEqual(right, offset.Right);
        }
コード例 #2
0
ファイル: TestLayoutOffset.cs プロジェクト: tositeru/hinode
        public void OnChangedValueInSetHorizontalOffsetsPrpertyPasses()
        {
            var offset      = new LayoutOffset();
            int callCounter = 0;

            (LayoutOffset self, LayoutOffset.ValueKind kinds)recievedData = default;
            offset.OnChangedValue.Add((_self, _kind) => {
                callCounter++;
                recievedData = (_self, _kind);
            });

            {
                offset.SetHorizontalOffsets(10, 20);

                Assert.AreEqual(1, callCounter, $"コールバックは一度だけ呼び出されるようにしてください");
                Assert.AreSame(offset, recievedData.self);
                Assert.AreEqual(LayoutOffset.ValueKind.Left | LayoutOffset.ValueKind.Right, recievedData.kinds);
            }

            {//同じ値の時は変更されないので、OnChangedValueのkindsには含めないようにする
                var kindsCombination = IndexCombinationEnumerable.GetFlagEnumCombination(
                    LayoutOffset.ValueKind.Left,
                    LayoutOffset.ValueKind.Right
                    );
                foreach (var kinds in kindsCombination)
                {
                    var left  = (0 != (kinds & LayoutOffset.ValueKind.Left)) ? offset.Left + 10f : offset.Left;
                    var right = (0 != (kinds & LayoutOffset.ValueKind.Right)) ? offset.Right + 10f : offset.Right;
                    callCounter = 0;
                    offset.SetHorizontalOffsets(left, right);

                    var errorMessage = $"Fail test... ValueKinds=>{kinds}";

                    Assert.AreEqual(1, callCounter, errorMessage);
                    Assert.AreSame(offset, recievedData.self, errorMessage);
                    Assert.AreEqual(kinds, recievedData.kinds, errorMessage);
                }
            }
            Debug.Log($"Success to All pattern!!");
        }
コード例 #3
0
ファイル: TestLayoutOffset.cs プロジェクト: tositeru/hinode
        public void OnChangedValueInSetHorizontalOffsetsPrpertyWhenThrowExceptionPasses()
        {
            var offset = new LayoutOffset();

            offset.OnChangedValue.Add((_self, _kind) => {
                throw new System.Exception();
            });

            {
                var left  = 20;
                var right = 40f;
                offset.SetHorizontalOffsets(left, right);

                Assert.AreEqual(left, offset.Left);
                Assert.AreEqual(right, offset.Right);
            }

            {//同じ値の時は変更されないので、OnChangedValueのkindsには含めないようにする
                var kindsCombination = IndexCombinationEnumerable.GetFlagEnumCombination(
                    LayoutOffset.ValueKind.Left,
                    LayoutOffset.ValueKind.Right
                    );
                foreach (var kinds in kindsCombination)
                {
                    var left  = (0 != (kinds & LayoutOffset.ValueKind.Left)) ? offset.Left + 10f : offset.Left;
                    var right = (0 != (kinds & LayoutOffset.ValueKind.Right)) ? offset.Right + 10f : offset.Right;
                    offset.SetHorizontalOffsets(left, right);

                    var errorMessage = $"Fail test... ValueKinds=>{kinds}";

                    Assert.AreEqual(left, offset.Left);
                    Assert.AreEqual(right, offset.Right);
                }
            }
            Debug.Log($"Success to All pattern!!");
        }