Esempio n. 1
0
        public void FindAtThreeDeepSuccess()
        {
            //Arrange
            // To test for matching paths in root and submenus
            string        testXml   = @"
                <menu>
	                <item>
		                <displayName>Home</displayName>
		                <path value='/Default.aspx'/>
	                </item>
	                <item>
		                <displayName>Trips</displayName>
		                <path value='/Requests/Quotes/CreateQuote.aspx'/>
		                <subMenu>
			                <item superOverride='true'>
				                <displayName>Scheduled Trips</displayName>
				                <path value='/Requests/Trips/ScheduledTrips.aspx'/>
			                </item>
			                <item>
				                <displayName>Open Quotes</displayName>
				                <path value='/Requests/OpenQuotes.aspx'/>
		                        <subMenu>
			                        <item superOverride='true'>
				                        <displayName>Scheduled Trips</displayName>
				                        <path value='/Requests/Trips/ScheduledTrips.aspx'/>
			                        </item>
			                        <item>
				                        <displayName>Open Quotes at leaf</displayName>
		                                <path value='/Default.aspx'/>
			                        </item>
		                        </subMenu>
			                </item>
		                </subMenu>
	                </item>
                </menu>";
            XPathDocument testInput = CreateXmLDocument(testXml);

            //Act
            MenuParser      menu   = new MenuParser("/Requests/Trips/ScheduledTrips.aspx");
            bool            result = menu.Parse(testInput);
            List <MenuNode> found  = menu.FindAll(x => x.Path.Equals("/Requests/Trips/ScheduledTrips.aspx"));

            //Assert
            // The following is not an idea Unit test construction because it assumes knowledge of what is being tested.
            // That is a fault of the abstraction being incomplete. This is solved by providing an acces abstraction,
            // such as an iterator so the individual menu items can be retrieved with operations. too complex for this
            // code exercise but would definatately be needed for production use - just in general.
            Assert.IsNotNull(menu);
            Assert.IsTrue(2 == found.Count);
            Assert.AreSame(menu.Items [1].SubMenu[0], found[0]);
            Assert.AreSame(menu.Items [1].SubMenu[1].SubMenu[0], found[1]);
        }
Esempio n. 2
0
        public void ActiveMenuThreeDeepSuccess()
        {
            //Arrange
            // To test for active paths in root and submenus
            string        testXml   = @"
                <menu>
	                <item>
		                <displayName>Home</displayName>
		                <path value='/NotDefault.aspx'/>
	                </item>
	                <item>
		                <displayName>Trips</displayName>
		                <path value='/Requests/Quotes/CreateQuote.aspx'/>
		                <subMenu>
			                <item superOverride='true'>
				                <displayName>Scheduled Trips</displayName>
				                <path value='/Requests/Trips/ScheduledTrips.aspx'/>
			                </item>
			                <item>
				                <displayName>Open Quotes</displayName>
				                <path value='/Requests/OpenQuotes.aspx'/>
		                        <subMenu>
			                        <item superOverride='true'>
				                        <displayName>Scheduled Trips</displayName>
				                        <path value='/Requests/Trips/ScheduledTrips.aspx'/>
			                        </item>
			                        <item>
				                        <displayName>Open Quotes at leaf</displayName>
		                                <path value='/Default.aspx'/>
			                        </item>
		                        </subMenu>
			                </item>
		                </subMenu>
	                </item>
                </menu>";
            XPathDocument testInput = CreateXmLDocument(testXml);

            //Act
            MenuParser      menu   = new MenuParser("/Default.aspx");
            bool            result = menu.Parse(testInput);
            List <MenuNode> found  = menu.FindAll(x => true == x.Active);

            //Assert
            Assert.IsNotNull(menu);
            Assert.IsTrue(3 == found.Count);
            Assert.IsTrue(found[0].Name.Equals("Trips"));
            Assert.IsTrue(found[1].Name.Equals("Open Quotes"));
            Assert.IsTrue(found[2].Name.Equals("Open Quotes at leaf"));
        }