예제 #1
0
        public void GetMetadata_PersistentMixinFinder_ForDerivedClass()
        {
            ClassIDProviderStub.Stub(stub => stub.GetClassID(typeof(DerivedClassWithDifferentProperties))).Return("ClassID");

            var classReflector      = CreateClassReflector(typeof(DerivedClassWithDifferentProperties));
            var baseClassDefinition = ClassDefinitionObjectMother.CreateClassDefinition_WithEmptyMembers_AndDerivedClasses();

            var actual = classReflector.GetMetadata(baseClassDefinition);

            Assert.That(actual.PersistentMixinFinder.IncludeInherited, Is.False);
        }
        private static ClassDefinition CreateFileSystemItemDefinition_WithEmptyMembers_AndWithDerivedClasses()
        {
            var fileSystemItemClassDefinition = ClassDefinitionObjectMother.CreateClassDefinition("FileSystemItem", typeof(FileSystemItem));
            var fileClassDefinition           = ClassDefinitionObjectMother.CreateClassDefinition_WithEmptyMembers_AndDerivedClasses("File", typeof(File), fileSystemItemClassDefinition);
            var folderClassDefinition         = ClassDefinitionObjectMother.CreateClassDefinition_WithEmptyMembers_AndDerivedClasses("Folder", typeof(Folder), fileSystemItemClassDefinition);

            fileSystemItemClassDefinition.SetDerivedClasses(new [] { fileClassDefinition, folderClassDefinition });
            fileSystemItemClassDefinition.SetPropertyDefinitions(new PropertyDefinitionCollection());
            fileSystemItemClassDefinition.SetRelationEndPointDefinitions(new RelationEndPointDefinitionCollection());

            return(fileSystemItemClassDefinition);
        }
        public void PersistenceModelIsValidated_OverAllRootClasses()
        {
            var persistenceModelLoaderMock = MockRepository.GenerateStrictMock <IPersistenceModelLoader>();
            var validatorMock1             = MockRepository.GenerateStrictMock <IPersistenceMappingValidator>();
            var validatorMock2             = MockRepository.GenerateStrictMock <IPersistenceMappingValidator>();

            var rootClass1 = ClassDefinitionObjectMother.CreateClassDefinition_WithEmptyMembers_AndDerivedClasses("Order", typeof(Order));
            var rootClass2 = ClassDefinitionObjectMother.CreateClassDefinition_WithEmptyMembers_AndDerivedClasses("OrderTicket", typeof(OrderTicket));

            persistenceModelLoaderMock
            .Expect(mock => mock.ApplyPersistenceModelToHierarchy(rootClass1))
            .WhenCalled(mi => rootClass1.SetStorageEntity(_fakeStorageEntityDefinition));
            persistenceModelLoaderMock
            .Expect(mock => mock.ApplyPersistenceModelToHierarchy(rootClass2))
            .WhenCalled(mi => rootClass2.SetStorageEntity(_fakeStorageEntityDefinition));

            persistenceModelLoaderMock.Expect(mock => mock.CreatePersistenceMappingValidator(rootClass1)).Return(validatorMock1);
            persistenceModelLoaderMock.Expect(mock => mock.CreatePersistenceMappingValidator(rootClass2)).Return(validatorMock2);
            persistenceModelLoaderMock.Replay();

            validatorMock1
            .Expect(mock => mock.Validate(Arg <IEnumerable <ClassDefinition> > .List.Equal(new[] { rootClass1 })))
            .Return(new MappingValidationResult[0]);
            validatorMock2
            .Expect(mock => mock.Validate(Arg <IEnumerable <ClassDefinition> > .List.Equal(new[] { rootClass2 })))
            .Return(new MappingValidationResult[0]);
            validatorMock1.Replay();
            validatorMock2.Replay();

            StubMockMappingLoaderWithValidation(new[] { rootClass1, rootClass2 }, new RelationDefinition[0]);
            _mockRepository.ReplayAll();

            new MappingConfiguration(_mockMappingLoader, persistenceModelLoaderMock);

            persistenceModelLoaderMock.VerifyAllExpectations();
            validatorMock1.VerifyAllExpectations();
            validatorMock2.VerifyAllExpectations();
        }
예제 #4
0
 private static ClassDefinition CreateOrderDefinition_WithEmptyMembers_AndDerivedClasses()
 {
     return(ClassDefinitionObjectMother.CreateClassDefinition_WithEmptyMembers_AndDerivedClasses("Order", classType: typeof(Order)));
 }