public void OnDrop_ChartDataMovedToPositionInsideRange_SetsNewReverseOrder(int position) { // Setup var observer = mocks.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); mocks.ReplayAll(); var chartData1 = new TestChartData(); var chartData2 = new TestChartData(); var chartData3 = new TestChartData(); var chartDataCollection = new ChartDataCollection("test"); chartDataCollection.Add(chartData1); chartDataCollection.Add(chartData2); chartDataCollection.Add(chartData3); ChartDataContext context1 = GetContext(chartData1); ChartDataContext collectionContext = GetContext(chartDataCollection); chartDataCollection.Attach(observer); using (var treeViewControl = new TreeViewControl()) { // Call info.OnDrop(context1, collectionContext, collectionContext, position, treeViewControl); // Assert int reversedIndex = 2 - position; var wrappedCollectionData = (ChartDataCollection)collectionContext.WrappedData; Assert.AreSame(context1.WrappedData, wrappedCollectionData.Collection.ElementAt(reversedIndex)); } }
public void OnDrop_MapDataCollectionContextMovedToPositionInsideRange_SetsNewReverseOrder(int position) { // Setup var observer = mocks.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); mocks.ReplayAll(); var mapDataCollection1 = new MapDataCollection("Collection 1"); var mapDataCollection2 = new MapDataCollection("Collection 2"); var mapDataCollection3 = new MapDataCollection("Collection 3"); var parentMapDataCollection = new MapDataCollection("test data"); parentMapDataCollection.Add(mapDataCollection1); parentMapDataCollection.Add(mapDataCollection2); parentMapDataCollection.Add(mapDataCollection3); MapDataCollectionContext parentContext = GetContext(parentMapDataCollection); MapDataCollectionContext context = GetContext(mapDataCollection1); parentMapDataCollection.Attach(observer); using (var treeViewControl = new TreeViewControl()) { // Call info.OnDrop(context, parentContext, parentContext, position, treeViewControl); // Assert int reversedIndex = 2 - position; Assert.AreSame(context.WrappedData, parentMapDataCollection.Collection.ElementAt(reversedIndex)); } }
public void GivenChartDataContainingCollection_WhenDragDroppingFromRootToRoot_ThenDataPositionChanged(int index) { // Given var mocks = new MockRepository(); var menuBuilderProvider = mocks.Stub <IContextMenuBuilderProvider>(); mocks.ReplayAll(); ChartData chartData = CreateChartData(); var rootCollection = new ChartDataCollection("test data"); rootCollection.Add(chartData); rootCollection.Add(CreateChartData()); rootCollection.Add(CreateChartData()); using (var chartLegendView = new ChartLegendView(menuBuilderProvider) { Data = rootCollection }) { var treeViewControl = TypeUtils.GetField <TreeViewControl>(chartLegendView, "treeViewControl"); var treeNodeInfoLookup = TypeUtils.GetField <Dictionary <Type, TreeNodeInfo> >(treeViewControl, "tagTypeTreeNodeInfoLookup"); TreeNodeInfo info = treeNodeInfoLookup[typeof(ChartDataCollection)]; var context = new ChartDataContext(chartData, rootCollection); // When info.OnDrop(context, rootCollection, rootCollection, index, treeViewControl); // Then Assert.AreEqual(2 - index, rootCollection.Collection.ToList().IndexOf(chartData)); } mocks.VerifyAll(); }
public void OnDrop_DataDroppedToDifferentIndex_DroppedDataCorrectlyMovedAndObserversNotified() { // Setup var observer = mocks.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); var assessmentSection = mocks.Stub <IAssessmentSection>(); mocks.ReplayAll(); var unmovedFailureMechanism = new SpecificFailureMechanism(); var movedFailureMechanism = new SpecificFailureMechanism(); var failureMechanisms = new ObservableList <SpecificFailureMechanism> { unmovedFailureMechanism, movedFailureMechanism }; failureMechanisms.Attach(observer); var parentData = new SpecificFailureMechanismsContext(failureMechanisms, assessmentSection); var draggedData = new SpecificFailureMechanismContext(movedFailureMechanism, assessmentSection); // Call info.OnDrop(draggedData, parentData, parentData, 0, null); // Assert CollectionAssert.AreEqual(new[] { movedFailureMechanism, unmovedFailureMechanism }, failureMechanisms); }
public void OnDrop_DataDroppedToDifferentIndex_DroppedDataCorrectlyMovedAndObserversNotified() { // Setup using (var plugin = new DuneErosionPlugin()) { TreeNodeInfo info = GetInfo(plugin); var assessmentSectionStub = new AssessmentSectionStub(); var failureMechanism = new DuneErosionFailureMechanism(); var calculationsForTargetProbability1 = new DuneLocationCalculationsForTargetProbability(0.1); var calculationsForTargetProbability2 = new DuneLocationCalculationsForTargetProbability(0.01); var calculationsForTargetProbability3 = new DuneLocationCalculationsForTargetProbability(0.001); var calculationsForTargetProbabilities = new ObservableList <DuneLocationCalculationsForTargetProbability> { calculationsForTargetProbability1, calculationsForTargetProbability2, calculationsForTargetProbability3 }; var parentData = new DuneLocationCalculationsForUserDefinedTargetProbabilitiesGroupContext( calculationsForTargetProbabilities, failureMechanism, assessmentSectionStub); var droppedData = new DuneLocationCalculationsForUserDefinedTargetProbabilityContext( calculationsForTargetProbability3, failureMechanism, assessmentSectionStub); var mockRepository = new MockRepository(); var observer = mockRepository.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); mockRepository.ReplayAll(); calculationsForTargetProbabilities.Attach(observer); // Call info.OnDrop(droppedData, parentData, parentData, 1, null); // Assert CollectionAssert.AreEquivalent(new[] { calculationsForTargetProbability1, calculationsForTargetProbability3, calculationsForTargetProbability2 }, calculationsForTargetProbabilities); mockRepository.VerifyAll(); } }
public void ImplicitOperator_WithAllMethodsSet_InfoFullyConverted() { // Setup var onDropCounter = 0; var onNodeRenamedCounter = 0; var onNodeRemovedCounter = 0; var onNodeCheckedCounter = 0; var genericTreeNodeInfo = new TreeNodeInfo <int> { Text = o => "text", ForeColor = o => Color.Azure, Image = o => new Bitmap(16, 16), ContextMenuStrip = (o1, o2, tvc) => new ContextMenuStrip { Items = { new ToolStripButton() } }, EnsureVisibleOnCreate = (o, p) => true, ExpandOnCreate = o => true, ChildNodeObjects = o => new[] { new object() }, CanRename = (o1, o2) => true, OnNodeRenamed = (o, newName) => { onNodeRenamedCounter++; }, CanRemove = (o1, o2) => true, OnNodeRemoved = (o1, o2) => { onNodeRemovedCounter++; }, OnRemoveConfirmationText = o => "Confirmation message", OnRemoveChildNodesConfirmationText = o => "Confirmation message 2", CanCheck = o => true, CheckedState = o => TreeNodeCheckedState.Checked, OnNodeChecked = (o1, o2) => { onNodeCheckedCounter++; }, CanDrag = (o1, o2) => true, CanDrop = (o1, o2) => true, CanInsert = (o1, o2) => true, OnDrop = (o1, o2, o3, index, tvc) => { onDropCounter++; } }; // Precondition Assert.IsInstanceOf <TreeNodeInfo <int> >(genericTreeNodeInfo); // Call TreeNodeInfo treeNodeInfo = genericTreeNodeInfo; // Assert using (var treeViewControl = new TreeViewControl()) using (ContextMenuStrip contextMenuStrip = treeNodeInfo.ContextMenuStrip(0, 1, treeViewControl)) { Assert.AreEqual(1, contextMenuStrip.Items.Count); treeNodeInfo.OnDrop(0, 1, 2, 3, treeViewControl); Assert.AreEqual(1, onDropCounter); } Assert.AreEqual(typeof(int), treeNodeInfo.TagType); Assert.AreEqual("text", treeNodeInfo.Text(0)); Assert.AreEqual(Color.Azure, treeNodeInfo.ForeColor(0)); Assert.AreEqual(16, treeNodeInfo.Image(0).Height); Assert.IsTrue(treeNodeInfo.EnsureVisibleOnCreate(0, 1)); Assert.IsTrue(treeNodeInfo.ExpandOnCreate(0)); Assert.AreEqual(1, treeNodeInfo.ChildNodeObjects(0).Length); Assert.IsTrue(treeNodeInfo.CanRename(0, 1)); Assert.IsTrue(treeNodeInfo.CanRemove(0, 1)); Assert.AreEqual("Confirmation message", treeNodeInfo.OnRemoveConfirmationText(0)); Assert.AreEqual("Confirmation message 2", treeNodeInfo.OnRemoveChildNodesConfirmationText(0)); Assert.IsTrue(treeNodeInfo.CanCheck(0)); Assert.AreEqual(TreeNodeCheckedState.Checked, treeNodeInfo.CheckedState(0)); Assert.IsTrue(treeNodeInfo.CanDrag(0, 1)); Assert.IsTrue(treeNodeInfo.CanDrop(0, 1)); Assert.IsTrue(treeNodeInfo.CanInsert(0, 1)); treeNodeInfo.OnNodeRenamed(0, "newName"); Assert.AreEqual(1, onNodeRenamedCounter); treeNodeInfo.OnNodeRemoved(0, 1); Assert.AreEqual(1, onNodeRemovedCounter); treeNodeInfo.OnNodeChecked(0, 1); Assert.AreEqual(1, onNodeCheckedCounter); }