public void TestForEachException()
        {
            // Define variables and constants
            IList <string> iteratedExceptionMessages = new List <string>();
            Exception      testException             =
                new ApplicationException("0",
                                         new ApplicationException("1",
                                                                  new ApplicationException("2",
                                                                                           new ApplicationException("3",
                                                                                                                    new ApplicationException("4")))));

            // Set up context


            // Execute
            testException.ForEachException(e => iteratedExceptionMessages.Add(e.Message));

            // Assert outcome
            for (int i = 0; i < 5; ++i)
            {
                Assert.AreEqual(i.ToString(), iteratedExceptionMessages[i]);
            }
        }