protected RelationshipObject createAndAssertRelationship(bool reset, bool createPropertiesIfNull, string typeId, string folderId, bool sourceIsNull, bool targetIsNull, bool onlySourceAndTargetObjects)
        {
            cmisTypeDefinitionType sourceTypeDefinition = getAndAssertTypeDefinition(getAndAssertRelationshipSourceTypeId());
            FileableObject sourceObject = null;
            if (!sourceIsNull)
            {
                if (enumBaseObjectTypeIds.cmisdocument.Equals(sourceTypeDefinition.baseId))
                {
                    sourceObject = createAndAssertObject(new FileableObject(enumTypesOfFileableObjects.documents, sourceTypeDefinition.id, folderId));
                }
                else
                {
                    sourceObject = createAndAssertObject(new FileableObject(enumTypesOfFileableObjects.folders, sourceTypeDefinition.id, folderId));
                }
                Assert.IsNotNull(sourceObject.ObjectId, "Id of Created Source Object is undefined");
            }

            cmisTypeDefinitionType targetTypeDefinition = getAndAssertTypeDefinition(getAndAssertRelationshipTargetTypeId());
            FileableObject targetObject = null;
            if (!targetIsNull)
            {
                if (enumBaseObjectTypeIds.cmisdocument.Equals(targetTypeDefinition.baseId))
                {
                    targetObject = createAndAssertObject(new FileableObject(enumTypesOfFileableObjects.documents, targetTypeDefinition.id, folderId));
                }
                else
                {
                    targetObject = createAndAssertObject(new FileableObject(enumTypesOfFileableObjects.folders, targetTypeDefinition.id, folderId));
                }
                Assert.IsNotNull(targetObject.ObjectId, "Id of Created Target Object is undefined");
            }
            RelationshipObject result = new RelationshipObject(folderId, relationshipTypeId, sourceObject, targetObject);
            if (!onlySourceAndTargetObjects)
            {
                result = (RelationshipObject)result.createObject(createPropertiesIfNull, reset, folderId, relationshipTypeId);
                Assert.IsNotNull(result.ObjectId, "Id of Created Relationship is undefined");
                logger.log("Relationship was successfully created");
            }
            logger.log("");
            return result;
        }