public void CreateForAllPropertyDefinitions_ClassDefinitionWithoutBaseClassDefinition_MakeCollectionReadOnlyIsTrue() { var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition(); var propertyDefinition = PropertyDefinitionObjectMother.CreateForFakePropertyInfo(classDefinition); classDefinition.SetPropertyDefinitions(new PropertyDefinitionCollection(new[] { propertyDefinition }, false)); var propertyDefinitions = PropertyDefinitionCollection.CreateForAllProperties(classDefinition, true); Assert.That(propertyDefinitions.Count, Is.EqualTo(1)); Assert.That(propertyDefinitions.IsReadOnly, Is.True); Assert.That(propertyDefinitions[0], Is.SameAs(propertyDefinition)); }
public void CreateForAllPropertyDefinitions_ClassDefinitionWithBaseClassDefinition() { var baseClassDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(Company)); var classDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(Partner), baseClass: baseClassDefinition); var propertyDefinitionInBaseClass = PropertyDefinitionObjectMother.CreateForFakePropertyInfo(baseClassDefinition, "Property1"); var propertyDefinitionInDerivedClass = PropertyDefinitionObjectMother.CreateForFakePropertyInfo(classDefinition, "Property2"); baseClassDefinition.SetPropertyDefinitions(new PropertyDefinitionCollection(new[] { propertyDefinitionInBaseClass }, true)); classDefinition.SetPropertyDefinitions(new PropertyDefinitionCollection(new[] { propertyDefinitionInDerivedClass }, true)); var propertyDefinitions = PropertyDefinitionCollection.CreateForAllProperties(classDefinition, false); Assert.That(propertyDefinitions.Count, Is.EqualTo(2)); Assert.That(propertyDefinitions[0], Is.SameAs(propertyDefinitionInDerivedClass)); Assert.That(propertyDefinitions[1], Is.SameAs(propertyDefinitionInBaseClass)); }