public void service_on_clear_undo_entities_are_restored()
        {
            var source = new Person[] 
            {
                new Person( null, false ),
                new Person( null, false ),
                new Person( null, false ),
                new Person( null, false ),
                new Person( null, false )
            };

            ChangeTrackingService svc = new ChangeTrackingService();

            PersonCollection list = new PersonCollection( svc );
            list.BeginInit();
            list.AddRange( source );
            list.EndInit();

            list.Clear();
            svc.Undo();

            Assert.AreEqual<Int32>( source.Length, list.Count() );
            source.ForEach( p =>
            {
                Int32 expected = Array.IndexOf( source, p );
                Int32 actual = list.IndexOf( p );

                Assert.AreEqual<Int32>( expected, actual );
            } );
        }