public void Accept()
        {
            var methodDefinition    = DefinitionObjectMother.CreateMethodDefinition(_classDefinition1, _methodInfo1);
            var propertyDefinition  = DefinitionObjectMother.CreatePropertyDefinition(_classDefinition1, _propertyInfoWithGetAndSet);
            var eventDefinition     = DefinitionObjectMother.CreateEventDefinition(_classDefinition1, _eventInfo1);
            var attributeDefinition = DefinitionObjectMother.CreateAttributeDefinition(_classDefinition1);

            var visitorMock = MockRepository.GenerateMock <IDefinitionVisitor> ();

            using (visitorMock.GetMockRepository().Ordered())
            {
                visitorMock.Expect(mock => mock.Visit(methodDefinition));
                visitorMock.Expect(mock => mock.Visit(propertyDefinition));
                visitorMock.Expect(mock => mock.Visit(eventDefinition));
                visitorMock.Expect(mock => mock.Visit(attributeDefinition));
            }

            visitorMock.Replay();

            _classDefinition1.Accept(visitorMock);
            Assert.That(_classDefinition1.ChildSpecificAcceptCalled, Is.True);

            visitorMock.VerifyAllExpectations();
        }