mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
Enhance ABAP Language Version class (#6484)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
6f157c590f
commit
02dfc77129
|
@ -677,7 +677,9 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
|
|||
ii_log->add_info( |>>> Deserializing { lines( lt_items ) } objects| ).
|
||||
ENDIF.
|
||||
|
||||
CREATE OBJECT lo_abap_language_vers.
|
||||
CREATE OBJECT lo_abap_language_vers
|
||||
EXPORTING
|
||||
io_dot_abapgit = io_repo->get_dot_abapgit( ).
|
||||
|
||||
lo_folder_logic = zcl_abapgit_folder_logic=>get_instance( ).
|
||||
LOOP AT lt_results ASSIGNING <ls_result>.
|
||||
|
|
|
@ -196,10 +196,12 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
|
|||
|
||||
DATA lo_abapgit_abap_language_vers TYPE REF TO zcl_abapgit_abap_language_vers.
|
||||
DATA lv_text TYPE string.
|
||||
CREATE OBJECT lo_abapgit_abap_language_vers.
|
||||
|
||||
IF lo_abapgit_abap_language_vers->is_import_allowed( io_repo = me
|
||||
iv_package = ms_data-package ) = abap_false.
|
||||
CREATE OBJECT lo_abapgit_abap_language_vers
|
||||
EXPORTING
|
||||
io_dot_abapgit = get_dot_abapgit( ).
|
||||
|
||||
IF lo_abapgit_abap_language_vers->is_import_allowed( ms_data-package ) = abap_false.
|
||||
lv_text = |Repository cannot be imported. | &&
|
||||
|ABAP Language Version of linked package is not compatible with repository settings.|.
|
||||
zcx_abapgit_exception=>raise( iv_text = lv_text ).
|
||||
|
|
|
@ -5,8 +5,13 @@ CLASS zcl_abapgit_abap_language_vers DEFINITION
|
|||
|
||||
PUBLIC SECTION.
|
||||
|
||||
CONSTANTS c_any_abap_language_version TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version VALUE '*'.
|
||||
CONSTANTS c_feature_flag TYPE string VALUE 'ALAV'.
|
||||
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
!io_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit.
|
||||
|
||||
METHODS get_abap_language_vers_by_objt
|
||||
IMPORTING
|
||||
!iv_object_type TYPE trobjtype
|
||||
|
@ -14,9 +19,12 @@ CLASS zcl_abapgit_abap_language_vers DEFINITION
|
|||
RETURNING
|
||||
VALUE(rv_allowed_abap_langu_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version.
|
||||
|
||||
METHODS get_repo_abap_language_version
|
||||
RETURNING
|
||||
VALUE(rv_abap_language_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version.
|
||||
|
||||
METHODS is_import_allowed
|
||||
IMPORTING
|
||||
!io_repo TYPE REF TO zif_abapgit_repo
|
||||
!iv_package TYPE devclass
|
||||
RETURNING
|
||||
VALUE(rv_allowed) TYPE abap_bool.
|
||||
|
@ -24,6 +32,17 @@ CLASS zcl_abapgit_abap_language_vers DEFINITION
|
|||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
||||
DATA mo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit.
|
||||
|
||||
" Depends on experimental feature flag and repo setting
|
||||
DATA mv_has_abap_language_vers TYPE abap_bool.
|
||||
|
||||
METHODS get_default_abap_language_vers
|
||||
IMPORTING
|
||||
!iv_object_type TYPE trobjtype
|
||||
RETURNING
|
||||
VALUE(rv_abap_language_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version.
|
||||
|
||||
METHODS get_abap_language_vers_by_devc
|
||||
IMPORTING
|
||||
!iv_package TYPE devclass
|
||||
|
@ -31,8 +50,6 @@ CLASS zcl_abapgit_abap_language_vers DEFINITION
|
|||
VALUE(rv_abap_language_version) TYPE string.
|
||||
|
||||
METHODS get_abap_language_vers_by_repo
|
||||
IMPORTING
|
||||
!io_repo TYPE REF TO zif_abapgit_repo
|
||||
RETURNING
|
||||
VALUE(rv_abap_language_version) TYPE string.
|
||||
|
||||
|
@ -43,6 +60,25 @@ ENDCLASS.
|
|||
CLASS zcl_abapgit_abap_language_vers IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
DATA lo_settings TYPE REF TO zcl_abapgit_settings.
|
||||
|
||||
mo_dot_abapgit = io_dot_abapgit.
|
||||
|
||||
lo_settings = zcl_abapgit_persist_factory=>get_settings( )->read( ).
|
||||
|
||||
IF lo_settings->is_feature_enabled( c_feature_flag ) = abap_false.
|
||||
mv_has_abap_language_vers = abap_false.
|
||||
ELSEIF get_abap_language_vers_by_repo( ) = zif_abapgit_dot_abapgit=>c_abap_language_version-undefined.
|
||||
mv_has_abap_language_vers = abap_false.
|
||||
ELSE.
|
||||
mv_has_abap_language_vers = abap_true.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_abap_language_vers_by_devc.
|
||||
|
||||
DATA lv_class TYPE string.
|
||||
|
@ -57,11 +93,17 @@ CLASS zcl_abapgit_abap_language_vers IMPLEMENTATION.
|
|||
RECEIVING
|
||||
ro_instance = lo_abap_language_version_cfg.
|
||||
|
||||
CALL METHOD lo_abap_language_version_cfg->('IF_ABAP_LANGUAGE_VERSION_CFG~GET_PACKAGE_DEFAULT_VERSION')
|
||||
EXPORTING
|
||||
iv_package_name = iv_package
|
||||
RECEIVING
|
||||
rv_default_language_version = lv_abap_lang_version_devc.
|
||||
" For non-existing packages, GET_PACKAGE_DEFAULT_VERSION returns "standard"
|
||||
" but we want to return "undefined" in this case to allow any new packages
|
||||
IF zcl_abapgit_factory=>get_sap_package( iv_package )->exists( ) = abap_true.
|
||||
CALL METHOD lo_abap_language_version_cfg->('IF_ABAP_LANGUAGE_VERSION_CFG~GET_PACKAGE_DEFAULT_VERSION')
|
||||
EXPORTING
|
||||
iv_package_name = iv_package
|
||||
RECEIVING
|
||||
rv_default_language_version = lv_abap_lang_version_devc.
|
||||
ELSE.
|
||||
lv_abap_lang_version_devc = '-'.
|
||||
ENDIF.
|
||||
|
||||
CASE lv_abap_lang_version_devc.
|
||||
WHEN zif_abapgit_aff_types_v1=>co_abap_language_version-standard.
|
||||
|
@ -85,6 +127,11 @@ CLASS zcl_abapgit_abap_language_vers IMPLEMENTATION.
|
|||
DATA lv_class TYPE string.
|
||||
DATA lo_abap_language_version TYPE REF TO object.
|
||||
|
||||
IF mv_has_abap_language_vers = abap_false.
|
||||
rv_allowed_abap_langu_version = c_any_abap_language_version.
|
||||
RETURN. ">>>
|
||||
ENDIF.
|
||||
|
||||
lv_class = 'CL_ABAP_LANGUAGE_VERSION'.
|
||||
|
||||
TRY.
|
||||
|
@ -101,32 +148,75 @@ CLASS zcl_abapgit_abap_language_vers IMPLEMENTATION.
|
|||
rv_default_version = rv_allowed_abap_langu_version.
|
||||
|
||||
CATCH cx_root.
|
||||
rv_allowed_abap_langu_version = zif_abapgit_aff_types_v1=>co_abap_language_version-standard.
|
||||
"to do: here we need to differentiate between source code object and non-source code objects
|
||||
rv_allowed_abap_langu_version = get_default_abap_language_vers( iv_object_type ).
|
||||
ENDTRY.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_abap_language_vers_by_repo.
|
||||
rv_abap_language_version = io_repo->get_dot_abapgit( )->get_abap_language_version( ).
|
||||
rv_abap_language_version = mo_dot_abapgit->get_abap_language_version( ).
|
||||
IF rv_abap_language_version IS INITIAL.
|
||||
rv_abap_language_version = zif_abapgit_dot_abapgit=>c_abap_language_version-undefined.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_default_abap_language_vers.
|
||||
|
||||
IF zcl_abapgit_factory=>get_environment( )->is_sap_cloud_platform( ) = abap_true.
|
||||
" On BTP, default to ABAP for Cloud Development
|
||||
rv_abap_language_version = zif_abapgit_aff_types_v1=>co_abap_language_version_cloud-cloud_development.
|
||||
ELSE.
|
||||
" Differentiate between source code object and non-source code objects
|
||||
CASE iv_object_type.
|
||||
WHEN 'BDEF' OR 'CLAS' OR 'FUGR' OR 'FUGS' OR 'INTF' OR 'PROG' OR 'TYPE'.
|
||||
rv_abap_language_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-standard.
|
||||
WHEN OTHERS.
|
||||
rv_abap_language_version = zif_abapgit_aff_types_v1=>co_abap_language_version-standard.
|
||||
ENDCASE.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_repo_abap_language_version.
|
||||
|
||||
DATA lv_abap_language_version TYPE string.
|
||||
|
||||
IF mv_has_abap_language_vers = abap_true.
|
||||
lv_abap_language_version = mo_dot_abapgit->get_abap_language_version( ).
|
||||
ENDIF.
|
||||
|
||||
CASE lv_abap_language_version.
|
||||
WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-standard.
|
||||
rv_abap_language_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-standard.
|
||||
WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-key_user.
|
||||
rv_abap_language_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-key_user.
|
||||
WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-cloud_development.
|
||||
rv_abap_language_version = zif_abapgit_aff_types_v1=>co_abap_language_version_src-cloud_development.
|
||||
WHEN OTHERS. " undefined or feature off
|
||||
rv_abap_language_version = c_any_abap_language_version.
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD is_import_allowed.
|
||||
|
||||
CASE get_abap_language_vers_by_repo( io_repo ).
|
||||
DATA lv_package_version TYPE string.
|
||||
|
||||
lv_package_version = get_abap_language_vers_by_devc( iv_package ).
|
||||
|
||||
CASE get_abap_language_vers_by_repo( ).
|
||||
WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-undefined.
|
||||
rv_allowed = abap_true.
|
||||
WHEN OTHERS.
|
||||
IF get_abap_language_vers_by_repo( io_repo ) = get_abap_language_vers_by_devc( iv_package ).
|
||||
IF get_abap_language_vers_by_repo( ) = lv_package_version.
|
||||
" allow packages that match repo setting
|
||||
rv_allowed = abap_true.
|
||||
ELSEIF
|
||||
get_abap_language_vers_by_devc( iv_package ) = zif_abapgit_dot_abapgit=>c_abap_language_version-undefined AND
|
||||
get_abap_language_vers_by_repo( io_repo ) = zif_abapgit_dot_abapgit=>c_abap_language_version-standard.
|
||||
ELSEIF lv_package_version = zif_abapgit_dot_abapgit=>c_abap_language_version-undefined.
|
||||
" always allow new packages
|
||||
rv_allowed = abap_true.
|
||||
ELSE.
|
||||
rv_allowed = abap_false.
|
||||
|
|
416
src/utils/zcl_abapgit_abap_language_vers.clas.testclasses.abap
Normal file
416
src/utils/zcl_abapgit_abap_language_vers.clas.testclasses.abap
Normal file
|
@ -0,0 +1,416 @@
|
|||
* Helper to toggle (cloud) enviroment
|
||||
CLASS lcl_environment DEFINITION.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES zif_abapgit_environment.
|
||||
|
||||
DATA mv_is_cloud TYPE abap_bool.
|
||||
|
||||
METHODS set_cloud
|
||||
IMPORTING
|
||||
iv_is_cloud TYPE abap_bool.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_environment IMPLEMENTATION.
|
||||
|
||||
METHOD set_cloud.
|
||||
mv_is_cloud = iv_is_cloud.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_environment~is_sap_cloud_platform.
|
||||
rv_result = mv_is_cloud.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_environment~compare_with_inactive.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_environment~get_basis_release.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_environment~get_system_language_filter.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_environment~is_merged.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_environment~is_repo_object_changes_allowed.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_environment~is_restart_required.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_environment~is_sap_object_allowed.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_environment~is_variant_maintenance.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
* Helper to toggle experimental features
|
||||
CLASS lcl_persist_settings DEFINITION.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES zif_abapgit_persist_settings.
|
||||
|
||||
DATA mo_settings TYPE REF TO zcl_abapgit_settings.
|
||||
|
||||
METHODS constructor.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_persist_settings IMPLEMENTATION.
|
||||
|
||||
METHOD constructor.
|
||||
CREATE OBJECT mo_settings.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_persist_settings~modify.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD zif_abapgit_persist_settings~read.
|
||||
ro_settings = mo_settings.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
* Test cases
|
||||
CLASS ltcl_abap_language_version DEFINITION FOR TESTING RISK LEVEL HARMLESS
|
||||
DURATION SHORT FINAL.
|
||||
|
||||
PRIVATE SECTION.
|
||||
" Cloud package hardcoded in cl_abap_language_version
|
||||
CONSTANTS c_cloud_package TYPE devclass VALUE 'TEST_LANGUAGE_VERSION_SCP'.
|
||||
|
||||
DATA:
|
||||
mt_versions TYPE string_table,
|
||||
mo_environment TYPE REF TO lcl_environment,
|
||||
mi_persistency TYPE REF TO zif_abapgit_persist_settings,
|
||||
mo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit,
|
||||
mo_cut TYPE REF TO zcl_abapgit_abap_language_vers.
|
||||
|
||||
METHODS:
|
||||
setup,
|
||||
init
|
||||
IMPORTING
|
||||
iv_abap_language_version TYPE string,
|
||||
set_environment
|
||||
IMPORTING
|
||||
iv_is_cloud TYPE abap_bool,
|
||||
set_features
|
||||
IMPORTING
|
||||
iv_features TYPE string,
|
||||
repo_setting_test
|
||||
IMPORTING
|
||||
iv_version TYPE string
|
||||
iv_exp TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version,
|
||||
object_type_test
|
||||
IMPORTING
|
||||
iv_version TYPE string
|
||||
iv_standard TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version
|
||||
iv_standard_src TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version
|
||||
iv_cloud TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version
|
||||
iv_cloud_src TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version,
|
||||
is_import_allowed_test
|
||||
IMPORTING
|
||||
iv_version TYPE string
|
||||
iv_standard TYPE abap_bool
|
||||
iv_cloud TYPE abap_bool
|
||||
iv_new TYPE abap_bool.
|
||||
|
||||
METHODS:
|
||||
repo_setting_feature_off FOR TESTING,
|
||||
repo_setting_feature_on FOR TESTING,
|
||||
object_type_feature_off FOR TESTING,
|
||||
object_type_feature_on FOR TESTING,
|
||||
is_import_allowed FOR TESTING.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS ltcl_abap_language_version IMPLEMENTATION.
|
||||
|
||||
METHOD setup.
|
||||
CREATE OBJECT mo_environment.
|
||||
zcl_abapgit_injector=>set_environment( mo_environment ).
|
||||
|
||||
CREATE OBJECT mi_persistency TYPE lcl_persist_settings.
|
||||
zcl_abapgit_persist_injector=>set_settings( mi_persistency ).
|
||||
|
||||
APPEND zif_abapgit_dot_abapgit=>c_abap_language_version-undefined TO mt_versions.
|
||||
APPEND zif_abapgit_dot_abapgit=>c_abap_language_version-standard TO mt_versions.
|
||||
APPEND zif_abapgit_dot_abapgit=>c_abap_language_version-key_user TO mt_versions.
|
||||
APPEND zif_abapgit_dot_abapgit=>c_abap_language_version-cloud_development TO mt_versions.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD init.
|
||||
mo_dot_abapgit = zcl_abapgit_dot_abapgit=>build_default( ).
|
||||
mo_dot_abapgit->set_abap_language_version( iv_abap_language_version ).
|
||||
|
||||
CREATE OBJECT mo_cut
|
||||
EXPORTING
|
||||
io_dot_abapgit = mo_dot_abapgit.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_environment.
|
||||
mo_environment->set_cloud( iv_is_cloud ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_features.
|
||||
mi_persistency->read( )->set_experimental_features( iv_features ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD repo_setting_test.
|
||||
|
||||
init( iv_version ).
|
||||
|
||||
" Assume on-prem (no cloud)
|
||||
set_environment( abap_false ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->get_repo_abap_language_version( )
|
||||
exp = iv_exp
|
||||
msg = |ABAP Language Version: { iv_version }, On-prem| ).
|
||||
|
||||
" Assume cloud platform
|
||||
set_environment( abap_true ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->get_repo_abap_language_version( )
|
||||
exp = iv_exp
|
||||
msg = |ABAP Language Version: { iv_version }, Cloud| ).
|
||||
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD repo_setting_feature_off.
|
||||
|
||||
DATA lv_version TYPE string.
|
||||
|
||||
" If experimental feature is off, repo setting is not taken into consideration
|
||||
set_features( '' ).
|
||||
|
||||
LOOP AT mt_versions INTO lv_version.
|
||||
|
||||
repo_setting_test(
|
||||
iv_version = lv_version
|
||||
iv_exp = zcl_abapgit_abap_language_vers=>c_any_abap_language_version ).
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD repo_setting_feature_on.
|
||||
|
||||
DATA lv_version TYPE string.
|
||||
|
||||
" If experimental feature is on, repo setting is returned
|
||||
set_features( zcl_abapgit_abap_language_vers=>c_feature_flag ).
|
||||
|
||||
LOOP AT mt_versions INTO lv_version.
|
||||
|
||||
CASE lv_version.
|
||||
WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-undefined.
|
||||
|
||||
repo_setting_test(
|
||||
iv_version = lv_version
|
||||
iv_exp = zcl_abapgit_abap_language_vers=>c_any_abap_language_version ).
|
||||
|
||||
WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-standard.
|
||||
|
||||
repo_setting_test(
|
||||
iv_version = lv_version
|
||||
iv_exp = zif_abapgit_aff_types_v1=>co_abap_language_version_src-standard ).
|
||||
|
||||
WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-key_user.
|
||||
|
||||
repo_setting_test(
|
||||
iv_version = lv_version
|
||||
iv_exp = zif_abapgit_aff_types_v1=>co_abap_language_version_src-key_user ).
|
||||
|
||||
WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-cloud_development.
|
||||
|
||||
repo_setting_test(
|
||||
iv_version = lv_version
|
||||
iv_exp = zif_abapgit_aff_types_v1=>co_abap_language_version_src-cloud_development ).
|
||||
|
||||
ENDCASE.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD object_type_test.
|
||||
|
||||
init( iv_version ).
|
||||
|
||||
" Assume on-prem (no cloud)
|
||||
set_environment( abap_false ).
|
||||
|
||||
" source code
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->get_abap_language_vers_by_objt(
|
||||
iv_object_type = 'INTF'
|
||||
iv_package = '$TMP' )
|
||||
exp = iv_standard_src
|
||||
msg = |ABAP Language Version: { iv_version }, On-prem| ).
|
||||
|
||||
" non-source code
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->get_abap_language_vers_by_objt(
|
||||
iv_object_type = 'TABL'
|
||||
iv_package = '$TMP' )
|
||||
exp = iv_standard
|
||||
msg = |ABAP Language Version: { iv_version }, On-prem| ).
|
||||
|
||||
" Assume cloud platform
|
||||
set_environment( abap_true ).
|
||||
|
||||
" source code
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->get_abap_language_vers_by_objt(
|
||||
iv_object_type = 'INTF'
|
||||
iv_package = c_cloud_package )
|
||||
exp = iv_cloud_src
|
||||
msg = |ABAP Language Version: { iv_version }, Cloud| ).
|
||||
|
||||
" non-source code
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->get_abap_language_vers_by_objt(
|
||||
iv_object_type = 'TABL'
|
||||
iv_package = c_cloud_package )
|
||||
exp = iv_cloud
|
||||
msg = |ABAP Language Version: { iv_version }, Cloud| ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD object_type_feature_off.
|
||||
|
||||
DATA lv_version TYPE string.
|
||||
|
||||
" If experimental feature is off, repo setting is ignored
|
||||
set_features( '' ).
|
||||
|
||||
LOOP AT mt_versions INTO lv_version.
|
||||
|
||||
object_type_test(
|
||||
iv_version = lv_version
|
||||
iv_standard = zcl_abapgit_abap_language_vers=>c_any_abap_language_version
|
||||
iv_standard_src = zcl_abapgit_abap_language_vers=>c_any_abap_language_version
|
||||
iv_cloud = zcl_abapgit_abap_language_vers=>c_any_abap_language_version
|
||||
iv_cloud_src = zcl_abapgit_abap_language_vers=>c_any_abap_language_version ).
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD object_type_feature_on.
|
||||
|
||||
DATA lv_version TYPE string.
|
||||
|
||||
" If experimental feature is on, repo setting is ignored but package setting is returned
|
||||
set_features( zcl_abapgit_abap_language_vers=>c_feature_flag ).
|
||||
|
||||
LOOP AT mt_versions INTO lv_version.
|
||||
|
||||
CASE lv_version.
|
||||
WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-undefined.
|
||||
|
||||
object_type_test(
|
||||
iv_version = lv_version
|
||||
iv_standard = zcl_abapgit_abap_language_vers=>c_any_abap_language_version
|
||||
iv_standard_src = zcl_abapgit_abap_language_vers=>c_any_abap_language_version
|
||||
iv_cloud = zcl_abapgit_abap_language_vers=>c_any_abap_language_version
|
||||
iv_cloud_src = zcl_abapgit_abap_language_vers=>c_any_abap_language_version ).
|
||||
|
||||
WHEN OTHERS.
|
||||
|
||||
object_type_test(
|
||||
iv_version = lv_version
|
||||
iv_standard = zif_abapgit_aff_types_v1=>co_abap_language_version-standard
|
||||
iv_standard_src = zif_abapgit_aff_types_v1=>co_abap_language_version_src-standard
|
||||
iv_cloud = zif_abapgit_aff_types_v1=>co_abap_language_version-cloud_development
|
||||
iv_cloud_src = zif_abapgit_aff_types_v1=>co_abap_language_version_src-cloud_development ).
|
||||
|
||||
ENDCASE.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD is_import_allowed_test.
|
||||
|
||||
init( iv_version ).
|
||||
|
||||
" Assume on-prem (no cloud)
|
||||
set_environment( abap_false ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package
|
||||
exp = iv_standard ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->is_import_allowed( c_cloud_package ) " existing cloud package
|
||||
exp = iv_cloud ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->is_import_allowed( 'Z_FOO_BAR' ) " non-existing package
|
||||
exp = iv_new ).
|
||||
|
||||
" Assume cloud platform
|
||||
set_environment( abap_true ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->is_import_allowed( '$TMP' ) " existing standard package
|
||||
exp = iv_standard ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->is_import_allowed( c_cloud_package ) " existing cloud package
|
||||
exp = iv_cloud ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = mo_cut->is_import_allowed( 'Z_FOO_BAR' ) " non-existing package
|
||||
exp = iv_new ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD is_import_allowed.
|
||||
|
||||
DATA lv_version TYPE string.
|
||||
|
||||
LOOP AT mt_versions INTO lv_version.
|
||||
|
||||
CASE lv_version.
|
||||
WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-undefined.
|
||||
|
||||
is_import_allowed_test(
|
||||
iv_version = lv_version
|
||||
iv_standard = abap_true
|
||||
iv_cloud = abap_true
|
||||
iv_new = abap_true ).
|
||||
|
||||
WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-standard.
|
||||
|
||||
is_import_allowed_test(
|
||||
iv_version = lv_version
|
||||
iv_standard = abap_true
|
||||
iv_cloud = abap_false
|
||||
iv_new = abap_true ).
|
||||
|
||||
WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-key_user.
|
||||
|
||||
is_import_allowed_test(
|
||||
iv_version = lv_version
|
||||
iv_standard = abap_false
|
||||
iv_cloud = abap_false
|
||||
iv_new = abap_true ).
|
||||
|
||||
WHEN zif_abapgit_dot_abapgit=>c_abap_language_version-cloud_development.
|
||||
|
||||
is_import_allowed_test(
|
||||
iv_version = lv_version
|
||||
iv_standard = abap_false
|
||||
iv_cloud = abap_true
|
||||
iv_new = abap_true ).
|
||||
|
||||
ENDCASE.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
|
@ -10,6 +10,7 @@
|
|||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
|
|
|
@ -188,6 +188,12 @@
|
|||
{"object": "ZCL_ABAPGIT_OBJECTS", "class": "ltcl_check_objects_locked", "method": "throw_excp_if_object_is_locked", "note": "no such table: seometarel"},
|
||||
{"object": "ZCL_ABAPGIT_OBJECTS", "class": "ltcl_check_objects_locked", "method": "no_excp_if_obj_is_not_locked", "note": "no such table: seometarel"},
|
||||
|
||||
{"object": "ZCL_ABAPGIT_ABAP_LANGUAGE_VERS", "class": "ltcl_abap_language_version", "method": "repo_setting_feature_off", "note": "CL_ABAP_LANGUAGE_VERSION/_CFG"},
|
||||
{"object": "ZCL_ABAPGIT_ABAP_LANGUAGE_VERS", "class": "ltcl_abap_language_version", "method": "repo_setting_feature_on", "note": "CL_ABAP_LANGUAGE_VERSION/_CFG"},
|
||||
{"object": "ZCL_ABAPGIT_ABAP_LANGUAGE_VERS", "class": "ltcl_abap_language_version", "method": "object_type_feature_off", "note": "CL_ABAP_LANGUAGE_VERSION/_CFG"},
|
||||
{"object": "ZCL_ABAPGIT_ABAP_LANGUAGE_VERS", "class": "ltcl_abap_language_version", "method": "object_type_feature_on", "note": "CL_ABAP_LANGUAGE_VERSION/_CFG"},
|
||||
{"object": "ZCL_ABAPGIT_ABAP_LANGUAGE_VERS", "class": "ltcl_abap_language_version", "method": "is_import_allowed", "note": "CL_ABAP_LANGUAGE_VERSION/_CFG"},
|
||||
|
||||
{"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "raise_error_if_package_exists", "note": "Void type: SCOMPKDTLN"},
|
||||
{"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "package_given_in_popup", "note": "Void type: SCOMPKDTLN"},
|
||||
{"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "package_not_created_when_canc", "note": "Void type: SCOMPKDTLN"},
|
||||
|
|
Loading…
Reference in New Issue
Block a user