Class RepositoryConformanceTestCase

java.lang.Object
org.odpi.openmetadata.conformance.beans.OpenMetadataTestCase
org.odpi.openmetadata.conformance.tests.repository.RepositoryConformanceTestCase
Direct Known Subclasses:
TestClassificationHasSupportedEntities, TestConsistentAttributeTypeDef, TestConsistentTypeDef, TestFindAttributeTypeDefsByCategory, TestFindTypeDefByExternalId, TestFindTypeDefsByCategory, TestGetTypeDefGallery, TestGraphQueries, TestInstanceEvent, TestMetadataCollectionId, TestRepositoryServerIds, TestSupportedAttributeTypeDef, TestSupportedClassificationLifecycle, TestSupportedEntityLifecycle, TestSupportedEntityProxyLifecycle, TestSupportedEntityReferenceCopyLifecycle, TestSupportedEntityReidentify, TestSupportedEntityRetype, TestSupportedEntitySearch, TestSupportedReferenceCopyClassificationLifecycle, TestSupportedRelationshipLifecycle, TestSupportedRelationshipReferenceCopyLifecycle, TestSupportedRelationshipReidentify, TestSupportedRelationshipSearch, TestSupportedTypeDef, TestValidTypeDefEvent

public abstract class RepositoryConformanceTestCase extends OpenMetadataTestCase
OpenMetadataTestCase is the superclass for an open metadata conformance test. It manages the test environment and reporting.
  • Field Details

  • Constructor Details

    • RepositoryConformanceTestCase

      protected RepositoryConformanceTestCase(RepositoryConformanceWorkPad workPad, String testCaseId, String testCaseName, Integer defaultProfileId, Integer defaultRequirementId)
      Typical constructor used when the name of the test case id is fixed
      Parameters:
      workPad - location for workbench results
      testCaseId - identifier of test case
      testCaseName - name of test case
      defaultProfileId - identifier of default profile (for unexpected exceptions)
      defaultRequirementId - identifier of default required (for unexpected exceptions)
    • RepositoryConformanceTestCase

      protected RepositoryConformanceTestCase(RepositoryConformanceWorkPad workPad, Integer defaultProfileId, Integer defaultRequirementId)
      Typical constructor used when the test case id needs to be constructed by th test case code.
      Parameters:
      workPad - location for workbench results
      defaultProfileId - identifier of default profile (for unexpected exceptions)
      defaultRequirementId - identifier of default required (for unexpected exceptions)
  • Method Details

    • logTestStart

      protected void logTestStart(String methodName)
      Log that the test case is starting.
      Specified by:
      logTestStart in class OpenMetadataTestCase
      Parameters:
      methodName - calling method name
    • logTestEnd

      protected void logTestEnd(String methodName)
      Log that the test case is ending.
      Specified by:
      logTestEnd in class OpenMetadataTestCase
      Parameters:
      methodName - calling method name
    • incrementSuccessfulCount

      protected void incrementSuccessfulCount()
      For test cases that are invoked many times, count the successful invocations.
    • incrementUnsuccessfulCount

      protected void incrementUnsuccessfulCount()
      For test cases that are invoked many times, count the unsuccessful invocations.
    • updateTestIdByType

      protected String updateTestIdByType(String typeName, String rootTestCaseId, String testCaseName)
      Verify that the name of the type (which forms part of the test id) is not null.
      Parameters:
      typeName - name of the type being tested
      rootTestCaseId - base test case Id
      testCaseName - name of the test case
      Returns:
      typeName (or "null" if null so messages are displayed properly.)
    • getMaxSearchResults

      protected int getMaxSearchResults()
      Return the page size to use for testing the repository.
      Returns:
      page size
    • getRepositoryConnector

      protected OMRSRepositoryConnector getRepositoryConnector() throws Exception
      Return the repository connector generated from the cohort registration event.
      Returns:
      OMRSRepositoryConnector object
      Throws:
      Exception - if the connector is not properly set up.
    • getMetadataCollection

      protected OMRSMetadataCollection getMetadataCollection() throws Exception
      Return the metadata collection used to call the repository.
      Returns:
      OMRSMetadataCollection object
      Throws:
      Exception - if the connector is not properly set up.
    • getPropertiesForInstance

      protected InstanceProperties getPropertiesForInstance(List<TypeDefAttribute> typeDefAttributes)
      Return instance properties for the properties defined in the TypeDef, but do not include properties from supertypes.
      Parameters:
      typeDefAttributes - attributes defined for a specific type
      Returns:
      properties for an instance of this type
    • getAllPropertiesForInstance

      protected InstanceProperties getAllPropertiesForInstance(String userId, TypeDef typeDef) throws Exception
      Return instance properties for the properties defined in the TypeDef and all of its supertypes.
      Parameters:
      userId - calling user
      typeDef - the definition of the type
      Returns:
      properties for an instance of this type
      Throws:
      Exception - problem manipulating types
    • generatePropertiesForInstance

      protected InstanceProperties generatePropertiesForInstance(String userId, List<TypeDefAttribute> allTypeDefAttributes, int instanceCount) throws Exception
      Return generated instance properties specialised for search tests
      Parameters:
      userId - calling user
      allTypeDefAttributes - list of all the TDAs for type
      instanceCount - a generator parameter for customisation of individual instance properties
      Returns:
      properties for an instance of this type
      Throws:
      Exception - problem manipulating types
    • getAllUniquePropertiesForInstance

      protected InstanceProperties getAllUniquePropertiesForInstance(String userId, TypeDef typeDef) throws Exception
      Return only the unique properties for the properties defined in the TypeDef and all of its supertypes.
      Parameters:
      userId - calling user
      typeDef - the definition of the type
      Returns:
      properties for an instance of this type
      Throws:
      Exception - problem manipulating types
    • getMinPropertiesForInstance

      protected InstanceProperties getMinPropertiesForInstance(String userId, TypeDef typeDef) throws Exception
      Return instance properties for only the mandatory properties defined in the TypeDef and all of its supertypes.
      Parameters:
      userId - calling user
      typeDef - the definition of the type
      Returns:
      properties for an instance of this type
      Throws:
      Exception - problem manipulating types
    • getPropertiesForTypeDef

      protected List<TypeDefAttribute> getPropertiesForTypeDef(String userId, TypeDef typeDef)
      Recursively walk the supertype hierarchy starting at the given typeDef, and collect all the TypeDefAttributes. This method does not use the properties defined in the TypeDef provided since that TypeDef is from the gallery returned by the repository connector. Instead it uses the name of the TypeDef to look up the TypeDef in the RepositoryHelper - using the Known types rather than the Active types. This is to ensure consistency with the open metadata type definition.
      Parameters:
      userId - the userId of the caller, needed for retrieving type definitions
      typeDef - the definition of the type
      Returns:
      properties for an instance of this type
    • getEntityDef

      public EntityDef getEntityDef(Map<String,EntityDef> supportedEntityDefs, TypeDefLink entityIdentifiers)
      Returns the appropriate entity definition for the supplied entity identifiers. This may be the entity specified, or a subclass of the entity that is supported.
      Parameters:
      supportedEntityDefs - map of entity type name to entity type definition
      entityIdentifiers - guid and name of desired entity definition
      Returns:
      entity definition (EntityDef)
    • addEntityToRepository

      public EntityDetail addEntityToRepository(String userId, OMRSMetadataCollection metadataCollection, EntityDef entityDef) throws Exception
      Adds an entity of the requested type to the repository.
      Parameters:
      userId - userId for the new entity
      metadataCollection - metadata connection to access the repository
      entityDef - type of entity to create
      Returns:
      new entity
      Throws:
      Exception - error in create
    • addEntityProxyToRepository

      public String addEntityProxyToRepository(String userId, OMRSMetadataCollection metadataCollection, EntityDef entityDef, String homeMetadataCollectionId) throws Exception
      Adds an entity proxy of the requested type to the repository.
      Parameters:
      userId - userId for the new entity
      metadataCollection - metadata connection to access the repository
      entityDef - type of entity to create
      homeMetadataCollectionId - - metadataCollectionId of the repository that is master for instance
      Returns:
      string - entity proxy's GUID
      Throws:
      Exception - error in create
    • buildExceptionMessage

      protected String buildExceptionMessage(String testName, String methodName, String operationDescription, Map<String,String> parameters, String originalExceptionClassName, String originalExceptionMessage)