C# Class Habanero.Testability.BOTestFactory

The BOTestFactory is a factory used to construct a Business Object for testing. The Constructed Business object can be constructed a a valid (i.e. saveable Business object) CreateValidBusinessObject .
A Valid Property Value can also be generated for any particular Prop using one of the overloads of GetValidPropValue(IBOProp), GetValidPropValue(Habanero.Base.ISingleValueDef), GetValidPropValue(Habanero.Base.IBusinessObject,string) GetValidPropValue(System.Type,string).
A Valid Relationship can be generated for any particular relationship using GetValidRelationshipValue.
Although all of these are valid methods of using the BOTestFactory you are most likely to use the Generic BOTestFactory BOTestFactory{TBO} this test factory has even more powerfull mechanisms to use for generating valid Relationship and PropValues.
显示文件 Open project: Chillisoft/habanero.testability Class Usage Examples

Protected Properties

Property Type Description
_defaultValueRegistry BODefaultValueRegistry
_validValueGenRegistry BOPropValueGeneratorRegistry

Public Methods

Method Description
BOTestFactory ( Type boType ) : System.Collections

CreateDefaultBusinessObject ( ) : IBusinessObject

Creates a business object with only its default values set (i.e. defaults from its ClassDef).

CreateSavedBusinessObject ( ) : IBusinessObject

Returns a saved valid business object of Type

CreateValidBusinessObject ( ) : IBusinessObject

Creates a business object with all of its compulsory properties and Relationships set to Valid values.

FixInvalidInterPropRules ( IBusinessObject bo ) : void

Fixes a Business object that has been created. I.e. if the Business object has any InterPropRules then these rules are used to ensure that the Property values do not conflict with the InterPropRules.

GetValidPropValue ( IBOProp boProp ) : object

Returns a valid prop value for boProp using any IPropRules for the Prop. Note_ this value does take into consideration any InterPropRules

GetValidPropValue ( IBusinessObject bo, string propName ) : object

Returns a valid prop value for propName for the IBusinessObject using any IPropRules for the Prop and any InterPropRules for the BusinessObject.

GetValidPropValue ( ISingleValueDef propDef ) : object

Returns a valid prop value for propDef using any IPropRules for the Prop. Note_ this value does not take into consideration any InterPropRules

GetValidPropValue ( Type type, string propName ) : object

Returns a valid prop value for propName for the Business object of type type using any IPropRules for the Prop. Note_ this value does nto atake into consideration any InterPropRules

GetValidPropValue ( string propName ) : object

Returns a valid prop value for propName for the Business object using any IPropRules for the Prop. Note_ this value does nto atake into consideration any InterPropRules

GetValidRelationshipValue ( ISingleValueDef relationshipDef ) : IBusinessObject

Returns a Valid Relationship Value for the relationship relationshipDef

GetValidValue ( IBusinessObject bo, string name ) : object

Returns a valid prop value for Property or single relationship with the name name for the IBusinessObject.

GetValidValue ( string name ) : object

Returns a valid Value for either a single relationship or a property for the BusinessObject's relationship or prop is identified by the name

GetValidValueGenerator ( ISingleValueDef propDef ) : ValidValueGenerator

returns a valid value generator for of the specified type based on the ISingleValueDef.ISingleValueDef.PropertyType

SetPropValueToValidValue ( IBOProp boProp ) : void

Sets the value of the IBOProp to a valid value. This is primarily used internally.

SetRelationshipToValidValue ( ISingleRelationship singleRelationship ) : void

Sets the Value of the ISingleRelationship to a valid value.

SetValueFor ( string propertyName, object propertyValue ) : void

Sets the propertyValue for the method Idenfied by the propertyName. This ensures that when the CreateValidBusinessObject or BOTestFactory.UpdateCompulsoryProperties or GetValidPropValue(Habanero.Base.IBOProp) and the GetValidRelationshipValue for this Property this value is always used

UpdateCompulsoryProperties ( IBusinessObject businessObject ) : void

Updates any compulsory relationships or properties for

Protected Methods

Method Description
CreateBusinessObject ( ) : IBusinessObject
GetPropDef ( IClassDef classDef, string propName, bool raiseErrIfNotExists ) : ISingleValueDef
GetPropDef ( Type type, string propName, bool raiseErrIfNotExists ) : ISingleValueDef
GetRelationshipDef ( Type type, string relationshipName, bool raiseErrIfNotExists ) : IRelationshipDef
GetValidPropValue ( IClassDef classDef, string propName ) : object

Returns a valid prop value for propName for the Business object of type classDef using any IPropRules for the Prop. Note_ this value does nto atake into consideration any InterPropRules

GetValidRelationshipValue ( Type type, string relationshipName ) : IBusinessObject

Returns a valid Relationship for the BusinessObject's relationship identified by the relationshipName

ValidateClassDef ( Type type ) : void
ValidateRelationshipDef ( Type type, IRelationshipDef def, string relationshipName ) : void

Private Methods

Method Description
GetBusinessObjectRules ( IBusinessObject bo ) : IEnumerable
GetValidValue ( Type type, string name ) : object

Returns a valid Value for either a single relationship or a property for the BusinessObject's relationship or prop is identified by the name

IsNotWriteNotNew ( ISingleValueDef propDef ) : bool
MustCreateSinglePropValue ( ISingleRelationship singleRelationship ) : bool
SetRelationshipToValidValue ( IMultipleRelationship multipleRelationship ) : void

Sets the Value of the IMultipleRelationship to a list of values as configured using the WithMany.

ThrowPropDoesNotExist ( Type type, string name ) : void
UpdatePrimaryKeyProps ( IBusinessObject businessObject ) : void
UpdateProperties ( IBusinessObject businessObject ) : void
UpdateSingleRelationships ( IBusinessObject businessObject ) : void
UpdatedManyRelationships ( IBusinessObject businessObject ) : void
ValidateProp ( Type type, ISingleValueDef def, string propName ) : void

Method Details

BOTestFactory() public method

public BOTestFactory ( Type boType ) : System.Collections
boType System.Type
return System.Collections

CreateBusinessObject() protected method

protected CreateBusinessObject ( ) : IBusinessObject
return IBusinessObject

CreateDefaultBusinessObject() public method

Creates a business object with only its default values set (i.e. defaults from its ClassDef).
public CreateDefaultBusinessObject ( ) : IBusinessObject
return IBusinessObject

CreateSavedBusinessObject() public method

Returns a saved valid business object of Type
public CreateSavedBusinessObject ( ) : IBusinessObject
return IBusinessObject

CreateValidBusinessObject() public method

Creates a business object with all of its compulsory properties and Relationships set to Valid values.
public CreateValidBusinessObject ( ) : IBusinessObject
return IBusinessObject

FixInvalidInterPropRules() public method

Fixes a Business object that has been created. I.e. if the Business object has any InterPropRules then these rules are used to ensure that the Property values do not conflict with the InterPropRules.
public FixInvalidInterPropRules ( IBusinessObject bo ) : void
bo IBusinessObject
return void

GetPropDef() protected static method

protected static GetPropDef ( IClassDef classDef, string propName, bool raiseErrIfNotExists ) : ISingleValueDef
classDef IClassDef
propName string
raiseErrIfNotExists bool
return ISingleValueDef

GetPropDef() protected static method

protected static GetPropDef ( Type type, string propName, bool raiseErrIfNotExists ) : ISingleValueDef
type System.Type
propName string
raiseErrIfNotExists bool
return ISingleValueDef

GetRelationshipDef() protected static method

protected static GetRelationshipDef ( Type type, string relationshipName, bool raiseErrIfNotExists ) : IRelationshipDef
type System.Type
relationshipName string
raiseErrIfNotExists bool
return IRelationshipDef

GetValidPropValue() public method

Returns a valid prop value for boProp using any IPropRules for the Prop. Note_ this value does take into consideration any InterPropRules
public GetValidPropValue ( IBOProp boProp ) : object
boProp IBOProp
return object

GetValidPropValue() public method

Returns a valid prop value for propName for the IBusinessObject using any IPropRules for the Prop and any InterPropRules for the BusinessObject.
public GetValidPropValue ( IBusinessObject bo, string propName ) : object
bo IBusinessObject
propName string
return object

GetValidPropValue() protected method

Returns a valid prop value for propName for the Business object of type classDef using any IPropRules for the Prop. Note_ this value does nto atake into consideration any InterPropRules
protected GetValidPropValue ( IClassDef classDef, string propName ) : object
classDef IClassDef
propName string
return object

GetValidPropValue() public method

Returns a valid prop value for propDef using any IPropRules for the Prop. Note_ this value does not take into consideration any InterPropRules
public GetValidPropValue ( ISingleValueDef propDef ) : object
propDef ISingleValueDef
return object

GetValidPropValue() public method

Returns a valid prop value for propName for the Business object of type type using any IPropRules for the Prop. Note_ this value does nto atake into consideration any InterPropRules
public GetValidPropValue ( Type type, string propName ) : object
type System.Type
propName string
return object

GetValidPropValue() public method

Returns a valid prop value for propName for the Business object using any IPropRules for the Prop. Note_ this value does nto atake into consideration any InterPropRules
public GetValidPropValue ( string propName ) : object
propName string
return object

GetValidRelationshipValue() public method

Returns a Valid Relationship Value for the relationship relationshipDef
public GetValidRelationshipValue ( ISingleValueDef relationshipDef ) : IBusinessObject
relationshipDef ISingleValueDef
return IBusinessObject

GetValidRelationshipValue() protected method

Returns a valid Relationship for the BusinessObject's relationship identified by the relationshipName
protected GetValidRelationshipValue ( Type type, string relationshipName ) : IBusinessObject
type System.Type
relationshipName string
return IBusinessObject

GetValidValue() public method

Returns a valid prop value for Property or single relationship with the name name for the IBusinessObject.
public GetValidValue ( IBusinessObject bo, string name ) : object
bo IBusinessObject
name string
return object

GetValidValue() public method

Returns a valid Value for either a single relationship or a property for the BusinessObject's relationship or prop is identified by the name
public GetValidValue ( string name ) : object
name string
return object

GetValidValueGenerator() public method

returns a valid value generator for of the specified type based on the ISingleValueDef.ISingleValueDef.PropertyType
public GetValidValueGenerator ( ISingleValueDef propDef ) : ValidValueGenerator
propDef ISingleValueDef
return ValidValueGenerator

SetPropValueToValidValue() public method

Sets the value of the IBOProp to a valid value. This is primarily used internally.
public SetPropValueToValidValue ( IBOProp boProp ) : void
boProp IBOProp
return void

SetRelationshipToValidValue() public method

Sets the Value of the ISingleRelationship to a valid value.
public SetRelationshipToValidValue ( ISingleRelationship singleRelationship ) : void
singleRelationship ISingleRelationship
return void

SetValueFor() public method

Sets the propertyValue for the method Idenfied by the propertyName. This ensures that when the CreateValidBusinessObject or BOTestFactory.UpdateCompulsoryProperties or GetValidPropValue(Habanero.Base.IBOProp) and the GetValidRelationshipValue for this Property this value is always used
public SetValueFor ( string propertyName, object propertyValue ) : void
propertyName string
propertyValue object
return void

UpdateCompulsoryProperties() public method

Updates any compulsory relationships or properties for
public UpdateCompulsoryProperties ( IBusinessObject businessObject ) : void
businessObject IBusinessObject
return void

ValidateClassDef() protected static method

protected static ValidateClassDef ( Type type ) : void
type System.Type
return void

ValidateRelationshipDef() protected static method

protected static ValidateRelationshipDef ( Type type, IRelationshipDef def, string relationshipName ) : void
type System.Type
def IRelationshipDef
relationshipName string
return void

Property Details

_defaultValueRegistry protected_oe property

protected BODefaultValueRegistry,Habanero.Testability _defaultValueRegistry
return BODefaultValueRegistry

_validValueGenRegistry protected_oe property

protected BOPropValueGeneratorRegistry,Habanero.Testability _validValueGenRegistry
return BOPropValueGeneratorRegistry