add method to determine if running in cloud (#2515)

* add method to determine if running in cloud

add new class and method to determine if abapGit is running on ABAP cloud/Steampunk systems, part of an effort to align codelines #2511

* fix naming

* add simple unit test
This commit is contained in:
Lars Hvam 2019-03-14 01:33:39 -07:00 committed by GitHub
parent a0a8131db4
commit 88822bb735
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 87 additions and 0 deletions

View File

@ -16,6 +16,8 @@ INTERFACE zif_abapgit_object
late TYPE zif_abapgit_object=>ty_deserialization_step VALUE `LATE`,
END OF gc_step_id.
CONSTANTS c_abap_version_sap_cp TYPE progdir-uccheck VALUE '5' ##NO_TEXT.
CONSTANTS c_abap_version_default TYPE progdir-uccheck VALUE 'X' ##NO_TEXT.
METHODS serialize
IMPORTING

View File

@ -0,0 +1,36 @@
CLASS zcl_abapgit_environment DEFINITION
PUBLIC
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS is_cloud
RETURNING
VALUE(rv_cloud) TYPE abap_bool .
PROTECTED SECTION.
CLASS-DATA gv_cloud TYPE abap_bool VALUE abap_undefined ##NO_TEXT.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_ABAPGIT_ENVIRONMENT IMPLEMENTATION.
METHOD is_cloud.
IF gv_cloud = abap_undefined.
TRY.
CALL METHOD ('CL_COS_UTILITIES')=>('IS_SAP_CLOUD_PLATFORM')
RECEIVING
rv_is_sap_cloud_platform = gv_cloud.
CATCH cx_sy_dyn_call_illegal_method.
gv_cloud = abap_false.
ENDTRY.
ENDIF.
rv_cloud = gv_cloud.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,31 @@
CLASS ltcl_test DEFINITION FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS FINAL.
PRIVATE SECTION.
DATA:
mo_cut TYPE REF TO zcl_abapgit_environment.
METHODS:
setup,
is_cloud FOR TESTING.
ENDCLASS.
CLASS ltcl_test IMPLEMENTATION.
METHOD setup.
CREATE OBJECT mo_cut.
ENDMETHOD.
METHOD is_cloud.
mo_cut->is_cloud( ).
* no assertions, just make sure the dynamic code runs
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_ENVIRONMENT</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>abapGit - Environment information</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>