public void ShiftCallbackTest() { foreach (var testCase in m_shiftCallbackTestCases) { var unitGaridManager = new UnitGridManager (testCase.gridWidth, testCase.gridHeight, testCase.horizontalCount, testCase.verticalCount); unitGaridManager.UpdateElementCount(testCase.elementCount); foreach (var shiftCallback in testCase.shiftCallbacks) { var movedIndexes = new List <int>(); var dataUpdatedIndexes = new List <int>(); unitGaridManager.Shift(shiftCallback.scrollValue, (index, delta) => { movedIndexes.Add(index); }, (index, delta) => { dataUpdatedIndexes.Add(index); }); Assert.True(IsSamePrimitiveList(movedIndexes, shiftCallback.expectedMovedIndexes)); Assert.True(IsSamePrimitiveList(dataUpdatedIndexes, shiftCallback.expectedUpdatedIndexes)); } } }
public void ShiftTest() { foreach (var testCase in m_shiftTestCases) { var unitGaridManager = new UnitGridManager (testCase.gridWidth, testCase.gridHeight, testCase.horizontalCount, testCase.verticalCount); unitGaridManager.UpdateElementCount(testCase.elementCount); foreach (var verticalOffset in testCase.verticalOffsets) { unitGaridManager.Shift(verticalOffset.scrollValue, null, null); Assert.True(unitGaridManager.GetVerticalOffset() == verticalOffset.expected); } } }
public void InitialConditionTest() { foreach (var testCase in m_initialConditionTestCases) { var unitGaridManager = new UnitGridManager (testCase.gridWidth, testCase.gridHeight, testCase.horizontalCount, testCase.verticalCount); unitGaridManager.UpdateElementCount(testCase.elementCount); Assert.True(unitGaridManager.GetVerticalOffset() == testCase.expectedVerticalOffset); Assert.True(unitGaridManager.GetScrollRectHeight() == testCase.expectedScrollRectHeight); foreach (var initialPosition in testCase.initialPositions) { Assert.True(unitGaridManager.GetInitialPosition(initialPosition.index) == initialPosition.expected); } } }
// ================================= private functions private void SetUpListItems() { Debug.Assert(m_units.Count == 0, "SetUpListItems called twice."); Debug.Assert(m_unitViewModels.Count == 0, "SetUpListItems called twice."); int unitCount = Units.Count; m_unitGridManager.UpdateElementCount(unitCount); m_listContainer.SetHeight(m_unitGridManager.GetScrollRectHeight()); System.Func <bool> IsAllStarted = () => { if (m_units.Count < m_unitGridManager.GetGridCount()) { return(false); } for (int i = 0; i < m_units.Count; i++) { var unit = m_units[i]; if (!unit.isStarted) { return(false); } } return(true); }; UnitIconImageProvider.Instance.Stop(); for (int i = 0; i < m_unitGridManager.GetGridCount(); i++) { int index = i; var model = new ListItemModel((uint)i); var viewModel = new UnitGridContext(model); m_listContainer.Items.Add(viewModel); m_unitViewModels.Add(viewModel); model.OnStarted += () => { model.SetPosition(m_unitGridManager.GetInitialPosition(index)); ApplyUnitData(m_unitGridManager.GetModifiedIndex(index), viewModel); if (IsAllStarted()) { AllStarted(); } }; model.OnClicked += () => { if (ClickUnitAction != null) { var tag = "UnitGridOpenUnitDetail"; ButtonBlocker.Instance.Block(tag); ClickUnitAction(viewModel); ButtonBlocker.Instance.Unblock(tag); } }; model.OnLongPressed += () => { if (LongPressUnitAction != null) { LongPressUnitAction(viewModel); } }; m_units.Add(model); } UnitIconImageProvider.Instance.Tick(); }