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));
            }
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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();
            }
        }
Ejemplo n.º 6
0
        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);
        }