Example #1
0
        public void GetAllOverrides()
        {
            var definition = DefinitionObjectMother.CreateTargetClassDefinition(typeof(BaseType1), typeof(BT1Mixin1)).Mixins[0];

            var methodOverride   = DefinitionObjectMother.CreateMethodDefinition(definition, definition.Type.GetMethod("ToString"));
            var overriddenMethod = DefinitionObjectMother.CreateMethodDefinition(definition.TargetClass, definition.Type.GetMethod("ToString"));

            DefinitionObjectMother.DeclareOverride(methodOverride, overriddenMethod);

            var propertyOverride   = DefinitionObjectMother.CreatePropertyDefinition(definition, typeof(DateTime).GetProperty("Now"));
            var overriddenProperty = DefinitionObjectMother.CreatePropertyDefinition(definition.TargetClass, typeof(DateTime).GetProperty("Now"));

            DefinitionObjectMother.DeclareOverride(propertyOverride, overriddenProperty);

            var eventOverride   = DefinitionObjectMother.CreateEventDefinition(definition, typeof(AppDomain).GetEvent("ProcessExit"));
            var overriddenEvent = DefinitionObjectMother.CreateEventDefinition(definition.TargetClass, typeof(AppDomain).GetEvent("ProcessExit"));

            DefinitionObjectMother.DeclareOverride(eventOverride, overriddenEvent);

            var nonOverride = DefinitionObjectMother.CreateMethodDefinition(definition, definition.Type.GetMethod("GetHashCode"));

            var overrides = definition.GetAllOverrides().ToArray();

            Assert.That(overrides, Is.EquivalentTo(new MemberDefinitionBase[] { methodOverride, propertyOverride, eventOverride }));
            Assert.That(overrides, Has.No.Member(nonOverride));
        }
        public void GetAllMembers()
        {
            var methodDefinition1   = DefinitionObjectMother.CreateMethodDefinition(_classDefinition1, _methodInfo1);
            var propertyDefinition1 = DefinitionObjectMother.CreatePropertyDefinition(_classDefinition1, _propertyInfoWithGetAndSet);
            var eventDefinition1    = DefinitionObjectMother.CreateEventDefinition(_classDefinition1, _eventInfo1);

            Assert.That(_classDefinition1.GetAllMembers().ToArray(),
                        Is.EquivalentTo(new MemberDefinitionBase[] { methodDefinition1, propertyDefinition1, eventDefinition1 }));
        }
        public void GetAllMethods_FindsPropertyAccessors()
        {
            var propertyDefinition1 = DefinitionObjectMother.CreatePropertyDefinition(_classDefinition1, _propertyInfoWithGetAndSet);
            var propertyDefinition2 = DefinitionObjectMother.CreatePropertyDefinition(_classDefinition1, _propertyInfoWithGet);
            var propertyDefinition3 = DefinitionObjectMother.CreatePropertyDefinition(_classDefinition1, _propertyInfoWithSet);

            Assert.That(_classDefinition1.GetAllMethods().ToArray(), Is.EquivalentTo(new[] {
                propertyDefinition1.GetMethod,
                propertyDefinition1.SetMethod,
                propertyDefinition2.GetMethod,
                propertyDefinition3.SetMethod
            }));
        }
        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();
        }