test_class.file: library/src/test/java/com/github/devnied/emvnfccard/utils/CPLCUtilsTest.java
test_class.identifier: CPLCUtilsTest
test_case.body: @Test
  	public void testPrependedCPLC(){
  		// prepended with CPLC tag
  		CPLC cplc = CPLCUtils.parse(BytesUtils.fromString("9F 7F 2A 47 90 50 40 47 91 81 02 31 00 83 58 00 11 68 91 45 81 48 12 83 65 00 00 00 00 01 2F 31 30 31 31 36 38 00 00 00 00 00 00 00 00 90 00"));		
  		Assertions.assertThat(cplc).isNotNull();
  		Assertions.assertThat(cplc.getIcFabricator()).isEqualTo(0x4790);
  		Assertions.assertThat(cplc.getIcType()).isEqualTo(0x5040);
  		Assertions.assertThat(cplc.getOs()).isEqualTo(0x4791);
  		Assertions.assertThat(cplc.getOsReleaseLevel()).isEqualTo(0x3100);
  		Assertions.assertThat(cplc.getIcSerialNumber()).isEqualTo(0x00116891);
  		Assertions.assertThat(cplc.getIcBatchId()).isEqualTo(0x4581);
  		Assertions.assertThat(cplc.getIcModuleFabricator()).isEqualTo(0x4812);
  		Assertions.assertThat(cplc.getIccManufacturer()).isEqualTo(0x0000);
  		Assertions.assertThat(cplc.getIcEmbeddingDate()).isNull();
  		Assertions.assertThat(cplc.getPrepersoId()).isEqualTo(0x012F);
  		Assertions.assertThat(cplc.getPrepersoEquipment()).isEqualTo(0x31313638);
  		Assertions.assertThat(cplc.getPersoId()).isEqualTo(0x0000);
  		Assertions.assertThat(cplc.getPersoEquipment()).isEqualTo(0x0000);
  	}
test_case.class_method_signature: CPLCUtilsTest.testPrependedCPLC()
test_case.full_signature: @Test public void testPrependedCPLC()
test_case.identifier: testPrependedCPLC
test_case.invocations: parse fromString isNotNull assertThat isEqualTo assertThat getIcFabricator isEqualTo assertThat getIcType isEqualTo assertThat getOs isEqualTo assertThat getOsReleaseLevel isEqualTo assertThat getIcSerialNumber isEqualTo assertThat getIcBatchId isEqualTo assertThat getIcModuleFabricator isEqualTo assertThat getIccManufacturer isNull assertThat getIcEmbeddingDate isEqualTo assertThat getPrepersoId isEqualTo assertThat getPrepersoEquipment isEqualTo assertThat getPersoId isEqualTo assertThat getPersoEquipment
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testPrependedCPLC()
focal_class.declarator: LOGGER = LoggerFactory.getLogger(CPLCUtils.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOGGER = LoggerFactory.getLogger(CPLCUtils.class);
focal_class.type: Logger
focal_class.var_name: LOGGER
focal_class.declarator: CPLC_TAG = new TagImpl("9f7f", TagValueTypeEnum.BINARY, "Card Production Life Cycle Data", "")
focal_class.modifier: private static final
focal_class.original_string: private static final ITag CPLC_TAG = new TagImpl("9f7f", TagValueTypeEnum.BINARY, "Card Production Life Cycle Data", "");
focal_class.type: ITag
focal_class.var_name: CPLC_TAG
focal_class.file: library/src/main/java/com/github/devnied/emvnfccard/utils/CPLCUtils.java
focal_class.identifier: CPLCUtils
focal_class.class_method_signature: CPLCUtils.parse(byte[] raw)
focal_class.full_signature: public static CPLC parse(byte[] raw)
focal_class.identifier: parse
focal_class.modifiers: public static
focal_class.parameters: (byte[] raw)
focal_class.return: CPLC
focal_class.signature: CPLC parse(byte[] raw)
focal_class.class_method_signature: CPLCUtils.CPLCUtils()
focal_class.full_signature: private  CPLCUtils()
focal_class.identifier: CPLCUtils
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  CPLCUtils()
focal_method.body: public static CPLC parse(byte[] raw) {
  		CPLC ret = null;
  		if (raw != null) {
  			byte[] cplc = null;
  			// try to interpret as raw data (not TLV)
  			if (raw.length == CPLC.SIZE + 2) {
  				cplc = raw;
  			}
  			// or maybe it's prepended with CPLC tag:
  			else if (raw.length == CPLC.SIZE + 5) {
  				cplc = TlvUtil.getValue(raw, CPLC_TAG);
  			} else {
  				LOGGER.error("CPLC data not valid");
  				return null;
  			}
  			ret = new CPLC();
  			ret.parse(cplc,null);
  		}
  		return ret;
  	}
focal_method.class_method_signature: CPLCUtils.parse(byte[] raw)
focal_method.full_signature: public static CPLC parse(byte[] raw)
focal_method.identifier: parse
focal_method.invocations: getValue error parse
focal_method.modifiers: public static
focal_method.parameters: (byte[] raw)
focal_method.return: CPLC
focal_method.signature: CPLC parse(byte[] raw)