public void OnNodeChecked_WithContextAndStateMixed_SetMapDataVisibilityAndNotifyObservers()
        {
            // Setup
            var observer1 = mocks.StrictMock <IObserver>();
            var observer2 = mocks.StrictMock <IObserver>();

            observer2.Expect(o => o.UpdateObserver());
            mocks.ReplayAll();

            var featureBasedMapData1 = new TestFeatureBasedMapData();
            var featureBasedMapData2 = new TestFeatureBasedMapData
            {
                IsVisible = false
            };
            var mapDataCollection = new MapDataCollection("test");

            mapDataCollection.Add(featureBasedMapData1);
            mapDataCollection.Add(featureBasedMapData2);

            MapDataCollectionContext context = GetContext(mapDataCollection);

            featureBasedMapData1.Attach(observer1);
            featureBasedMapData2.Attach(observer2);

            // Call
            info.OnNodeChecked(context, null);

            // Assert
            Assert.IsTrue(context.WrappedData.IsVisible);
            Assert.IsTrue(featureBasedMapData1.IsVisible);
            Assert.IsTrue(featureBasedMapData2.IsVisible);
            mocks.VerifyAll();
        }
        public void OnNodeChecked_WithContext_SetMapDataVisibilityAndNotifyObservers(bool initialVisibleState)
        {
            // Setup
            var collectionObserver = mocks.StrictMock <IObserver>();

            collectionObserver.Expect(o => o.UpdateObserver());
            mocks.ReplayAll();

            var featureBasedMapData = new TestFeatureBasedMapData();
            var mapDataCollection   = new MapDataCollection("test");

            mapDataCollection.Add(featureBasedMapData);

            MapDataCollectionContext context = GetContext(mapDataCollection);

            context.WrappedData.IsVisible = initialVisibleState;

            context.WrappedData.Attach(collectionObserver);

            // Call
            info.OnNodeChecked(context, null);

            // Assert
            Assert.AreEqual(!initialVisibleState, context.WrappedData.IsVisible);
            Assert.AreEqual(!initialVisibleState, featureBasedMapData.IsVisible);
            mocks.VerifyAll();
        }
        public void ContextMenuStrip_Always_CallsBuilder()
        {
            // Setup
            var mapData = new MapDataCollection("test data");
            MapDataCollectionContext context = GetContext(mapData);

            var builder = mocks.StrictMock <IContextMenuBuilder>();

            using (mocks.Ordered())
            {
                builder.Expect(mb => mb.AddImportItem(null, null, null)).IgnoreArguments().Return(builder);
                builder.Expect(mb => mb.AddSeparator()).Return(builder);
                builder.Expect(mb => mb.AddCustomItem(Arg <StrictContextMenuItem> .Is.NotNull)).Return(builder);
                builder.Expect(mb => mb.AddSeparator()).Return(builder);
                builder.Expect(mb => mb.AddPropertiesItem()).Return(builder);
                builder.Expect(mb => mb.Build()).Return(null);
            }

            contextMenuBuilderProvider.Expect(p => p.Get(context, null)).Return(builder);

            mocks.ReplayAll();

            // Call
            info.ContextMenuStrip(context, null, null);

            // Assert
            // Assert expectancies are called in TearDown()
        }
        public void ChildNodeObjects_Always_ReturnsChildrenWithContextAndDataReversed()
        {
            // Setup
            var mapPointData      = new MapPointData("points");
            var mapLineData       = new MapLineData("lines");
            var nestedCollection  = new MapDataCollection("nested");
            var mapPolygonData    = new MapPolygonData("polygons");
            var mapDataCollection = new MapDataCollection("test data");

            mapDataCollection.Add(mapPointData);
            mapDataCollection.Add(mapLineData);
            mapDataCollection.Add(nestedCollection);
            mapDataCollection.Add(mapPolygonData);

            MapDataCollectionContext parentCollectionContext = GetContext(mapDataCollection);

            // Call
            object[] objects = info.ChildNodeObjects(GetContext(mapDataCollection));

            // Assert
            CollectionAssert.AreEqual(new MapDataContext[]
            {
                new MapPolygonDataContext(mapPolygonData, parentCollectionContext),
                GetContext(nestedCollection, parentCollectionContext),
                new MapLineDataContext(mapLineData, parentCollectionContext),
                new MapPointDataContext(mapPointData, parentCollectionContext)
            }, objects);
        }
        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 OnNodeChecked_WithContext_NotifyObserversOfParentMapDataCollections()
        {
            // Setup
            var collectionObserver = mocks.StrictMock <IObserver>();

            collectionObserver.Expect(o => o.UpdateObserver());
            var parentCollectionObserver = mocks.StrictMock <IObserver>();

            parentCollectionObserver.Expect(o => o.UpdateObserver());
            mocks.ReplayAll();

            var featureBasedMapData     = new TestFeatureBasedMapData();
            var nestedMapDataCollection = new MapDataCollection("nested");

            nestedMapDataCollection.Add(featureBasedMapData);
            var mapDataCollection = new MapDataCollection("test");

            mapDataCollection.Add(nestedMapDataCollection);

            MapDataCollectionContext   rootCollectionContext      = GetContext(mapDataCollection);
            MapDataCollectionContext   nestedCollectionContext    = GetContext(nestedMapDataCollection, rootCollectionContext);
            FeatureBasedMapDataContext featureBasedMapDataContext = GetContext(featureBasedMapData, nestedCollectionContext);

            nestedMapDataCollection.Attach(collectionObserver);
            mapDataCollection.Attach(parentCollectionObserver);

            // Call
            info.OnNodeChecked(featureBasedMapDataContext, null);

            // Assert
            mocks.VerifyAll();
        }
        public void OnDrop_MapDataCollectionContextMovedToPositionOutsideRange_ThrowsException(int position)
        {
            // Setup
            var observer = mocks.StrictMock <IObserver>();

            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);

            parentMapDataCollection.Attach(observer);

            MapDataCollectionContext parentContext = GetContext(parentMapDataCollection);
            MapDataCollectionContext context       = GetContext(mapDataCollection1);

            parentMapDataCollection.Attach(observer);

            using (var treeViewControl = new TreeViewControl())
            {
                // Call
                TestDelegate test = () => info.OnDrop(context, parentContext, parentContext, position, treeViewControl);

                // Assert
                Assert.Throws <ArgumentOutOfRangeException>(test);
            }
        }
        public void CreateFileImporter_Always_ReturnFileImporter()
        {
            // Setup
            var importTarget = new MapDataCollectionContext(new MapDataCollection("test"), null);

            // Call
            IFileImporter importer = importInfo.CreateFileImporter(importTarget, "");

            // Assert
            Assert.IsInstanceOf <FeatureBasedMapDataImporter>(importer);
        }
        public void CanDrag_ParentContextNotNull_ReturnsTrue()
        {
            // Setup
            MapDataCollectionContext context = GetContext(new MapDataCollection("test"));

            // Call
            bool canDrag = info.CanDrag(context, null);

            // Assert
            Assert.IsTrue(canDrag);
        }
Exemple #10
0
        public void GetParentsFromContext_ContextParentMapDataNull_ReturnsEmptyCollection()
        {
            // Setup
            var context = new MapDataCollectionContext(new MapDataCollection("test"), null);

            // Call
            IEnumerable <MapDataCollection> parents = MapDataContextHelper.GetParentsFromContext(context);

            // Assert
            CollectionAssert.IsEmpty(parents);
        }
        public void CanInsert_TargetParentNotSameAsSourceParent_ReturnsFalse()
        {
            // Setup
            MapDataCollectionContext context = GetContext(new MapDataCollection("test"));

            // Call
            bool canInsert = info.CanInsert(context, GetContext(new MapDataCollection("parent")));

            // Assert
            Assert.IsFalse(canInsert);
        }
        public void CanDrag_ParentContextNull_ReturnsFalse()
        {
            // Setup
            var context = new MapDataCollectionContext(new MapDataCollection("test"), null);

            // Call
            bool canDrag = info.CanDrag(context, null);

            // Assert
            Assert.IsFalse(canDrag);
        }
        public void CanInsert_TargetParentIsSameAsSourceParent_ReturnsTrue()
        {
            // Setup
            var mapDataCollection             = new MapDataCollection("test 1");
            MapDataCollectionContext context1 = GetContext(mapDataCollection);
            MapDataCollectionContext context2 = GetContext(new MapDataCollection("test 2"), context1);

            // Call
            bool canInsert = info.CanInsert(context2, context1);

            // Assert
            Assert.IsTrue(canInsert);
        }
        public void CreateInstance_WithValidArguments_NewPropertiesWithMapDataCollectionAsData()
        {
            // Setup
            var mapDataCollection = new MapDataCollection("Test");
            var context           = new MapDataCollectionContext(mapDataCollection, null);

            // Call
            IObjectProperties objectProperties = info.CreateInstance(context);

            // Assert
            Assert.IsInstanceOf <MapDataCollectionProperties>(objectProperties);
            Assert.AreSame(mapDataCollection, objectProperties.Data);
        }
Exemple #15
0
        public void Constructor_ExpectedValues()
        {
            // Setup
            var data   = new MapPolygonData("test");
            var parent = new MapDataCollectionContext(new MapDataCollection("parent"), null);

            // Call
            var context = new MapPolygonDataContext(data, parent);

            // Assert
            Assert.IsInstanceOf <FeatureBasedMapDataContext>(context);
            Assert.AreSame(data, context.WrappedData);
            Assert.AreSame(parent, context.ParentMapData);
        }
        public void Constructor_ExpectedValues()
        {
            // Setup
            var collection = new MapDataCollection("test");
            var parentCollectionContext = new MapDataCollectionContext(new MapDataCollection("test"), null);

            // Call
            var context = new MapDataCollectionContext(collection, parentCollectionContext);

            // Assert
            Assert.IsInstanceOf <MapDataContext>(context);
            Assert.AreSame(collection, context.WrappedData);
            Assert.AreSame(parentCollectionContext, context.ParentMapData);
        }
        public void CheckedState_WithContextAndMapDataCollectionVisibilityVisible_ReturnsStateChecked()
        {
            // Setup
            var featureBasedMapData = new TestFeatureBasedMapData();
            var mapDataCollection   = new MapDataCollection("test");

            mapDataCollection.Add(featureBasedMapData);

            MapDataCollectionContext context = GetContext(mapDataCollection);

            // Call
            TreeNodeCheckedState checkedState = info.CheckedState(context);

            // Assert
            Assert.AreEqual(TreeNodeCheckedState.Checked, checkedState);
        }
Exemple #18
0
        public void GetParentsFromContext_ContextWithParents_ReturnsCollectionWithAllParents()
        {
            // Setup
            var rootContext    = new MapDataCollectionContext(new MapDataCollection("root"), null);
            var nestedContext1 = new MapDataCollectionContext(new MapDataCollection("nested1"), rootContext);
            var nestedContext2 = new MapDataCollectionContext(new MapDataCollection("test"), nestedContext1);

            // Call
            IEnumerable <MapDataCollection> parents = MapDataContextHelper.GetParentsFromContext(nestedContext2);

            // Assert
            CollectionAssert.AreEqual(new[]
            {
                nestedContext1.WrappedData,
                rootContext.WrappedData
            }, parents);
        }
        public void Constructor_ExpectedValues()
        {
            // Setup
            FeatureBasedMapData data = new TestFeatureBasedMapData();
            var collection           = new MapDataCollection("test");

            collection.Add(data);

            var collectionContext = new MapDataCollectionContext(collection, null);

            // Call
            var context = new FeatureBasedMapDataContext(data, collectionContext);

            // Assert
            Assert.IsInstanceOf <MapDataContext>(context);
            Assert.AreSame(data, context.WrappedData);
            Assert.AreSame(collectionContext, context.ParentMapData);
        }
        public void ContextMenuStrip_Always_ImportItemEnabled()
        {
            // Setup
            var mapDataCollection            = new MapDataCollection("test data");
            MapDataCollectionContext context = GetContext(mapDataCollection);

            var applicationFeatureCommands = mocks.Stub <IApplicationFeatureCommands>();
            var importCommandHandler       = mocks.Stub <IImportCommandHandler>();

            importCommandHandler.Stub(ich => ich.GetSupportedImportInfos(null)).IgnoreArguments().Return(new[]
            {
                new ImportInfo()
            });
            var exportCommandHandler = mocks.Stub <IExportCommandHandler>();
            var updateCommandHandler = mocks.Stub <IUpdateCommandHandler>();
            var viewCommands         = mocks.Stub <IViewCommands>();

            using (var treeViewControl = new TreeViewControl())
            {
                var builder = new ContextMenuBuilder(applicationFeatureCommands,
                                                     importCommandHandler,
                                                     exportCommandHandler,
                                                     updateCommandHandler,
                                                     viewCommands,
                                                     mapDataCollection,
                                                     treeViewControl);

                contextMenuBuilderProvider.Expect(cmbp => cmbp.Get(context, treeViewControl)).Return(builder);
                mocks.ReplayAll();

                // Call
                using (ContextMenuStrip contextMenu = info.ContextMenuStrip(context, null, treeViewControl))
                {
                    // Assert
                    TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuAddMapLayerIndex,
                                                                  "&Voeg kaartlaag toe...",
                                                                  "Importeer een nieuwe kaartlaag en voeg deze toe.",
                                                                  Resources.MapPlusIcon);
                }
            }
        }
        public void OnNodeChecked_WithContext_NotifyObserversOfChangedChildrenOnly(bool initialVisibility, int expectedNotifications)
        {
            // Setup
            var observer = mocks.StrictMock <IObserver>();

            observer.Expect(o => o.UpdateObserver()).Repeat.Times(expectedNotifications);
            mocks.ReplayAll();

            var featureBasedMapData1 = new TestFeatureBasedMapData();
            var featureBasedMapData2 = new TestFeatureBasedMapData
            {
                IsVisible = initialVisibility
            };
            var featureBasedMapData3 = new TestFeatureBasedMapData
            {
                IsVisible = initialVisibility
            };
            var nestedMapDataCollection = new MapDataCollection("nested");

            nestedMapDataCollection.Add(featureBasedMapData1);
            nestedMapDataCollection.Add(featureBasedMapData3);

            var mapDataCollection = new MapDataCollection("test");

            mapDataCollection.Add(nestedMapDataCollection);
            mapDataCollection.Add(featureBasedMapData2);

            MapDataCollectionContext context = GetContext(mapDataCollection);

            nestedMapDataCollection.Attach(observer);
            featureBasedMapData1.Attach(observer);
            featureBasedMapData2.Attach(observer);
            featureBasedMapData3.Attach(observer);

            // Call
            info.OnNodeChecked(context, null);

            // Assert
            mocks.VerifyAll();
        }
 private static FeatureBasedMapDataContext GetContext(FeatureBasedMapData mapData, MapDataCollectionContext parentMapDataCollectionContext = null)
 {
     return(new FeatureBasedMapDataContext(mapData, parentMapDataCollectionContext ?? new MapDataCollectionContext(new MapDataCollection("test"), null)));
 }
 private static MapDataCollectionContext GetContext(MapDataCollection mapDataCollection, MapDataCollectionContext parentMapDataCollectionContext = null)
 {
     return(new MapDataCollectionContext(mapDataCollection, parentMapDataCollectionContext ?? new MapDataCollectionContext(new MapDataCollection("test"), null)));
 }