test_class.declarator: payload
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private MySQLPacketPayload payload;
test_class.type: MySQLPacketPayload
test_class.var_name: payload
test_class.declarator: byteBuf
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ByteBuf byteBuf;
test_class.type: ByteBuf
test_class.var_name: byteBuf
test_class.declarator: columnDef
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private MySQLBinlogColumnDef columnDef;
test_class.type: MySQLBinlogColumnDef
test_class.var_name: columnDef
test_class.file: shardingsphere-db-protocol/shardingsphere-db-protocol-mysql/src/test/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/time/MySQLTimeBinlogProtocolValueTest.java
test_class.identifier: MySQLTimeBinlogProtocolValueTest
test_case.body: @Test
      public void assertRead() {
          when(payload.getByteBuf()).thenReturn(byteBuf);
          when(byteBuf.readUnsignedMediumLE()).thenReturn(16 * 10000 + 59 * 100 + 59);
          assertThat(new MySQLTimeBinlogProtocolValue().read(columnDef, payload), is("16:59:59"));
      }
test_case.class_method_signature: MySQLTimeBinlogProtocolValueTest.assertRead()
test_case.full_signature: @Test public void assertRead()
test_case.identifier: assertRead
test_case.invocations: thenReturn when getByteBuf thenReturn when readUnsignedMediumLE assertThat read is
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void assertRead()
focal_class.file: shardingsphere-db-protocol/shardingsphere-db-protocol-mysql/src/main/java/org/apache/shardingsphere/db/protocol/mysql/packet/binlog/row/column/value/time/MySQLTimeBinlogProtocolValue.java
focal_class.identifier: MySQLTimeBinlogProtocolValue
focal_class.interfaces: implements MySQLBinlogProtocolValue
focal_class.class_method_signature: MySQLTimeBinlogProtocolValue.read(final MySQLBinlogColumnDef columnDef, final MySQLPacketPayload payload)
focal_class.full_signature: @Override public Serializable read(final MySQLBinlogColumnDef columnDef, final MySQLPacketPayload payload)
focal_class.identifier: read
focal_class.modifiers: @Override public
focal_class.parameters: (final MySQLBinlogColumnDef columnDef, final MySQLPacketPayload payload)
focal_class.return: Serializable
focal_class.signature: Serializable read(final MySQLBinlogColumnDef columnDef, final MySQLPacketPayload payload)
focal_method.body: @Override
      public Serializable read(final MySQLBinlogColumnDef columnDef, final MySQLPacketPayload payload) {
          int time = payload.getByteBuf().readUnsignedMediumLE();
          if (0 == time) {
              return MySQLTimeValueUtil.ZERO_OF_TIME;
          }
          int minuteSecond = Math.abs(time) % 10000;
          return String.format("%02d:%02d:%02d", time / 10000, minuteSecond / 100, minuteSecond % 100);
      }
focal_method.class_method_signature: MySQLTimeBinlogProtocolValue.read(final MySQLBinlogColumnDef columnDef, final MySQLPacketPayload payload)
focal_method.full_signature: @Override public Serializable read(final MySQLBinlogColumnDef columnDef, final MySQLPacketPayload payload)
focal_method.identifier: read
focal_method.invocations: readUnsignedMediumLE getByteBuf abs format
focal_method.modifiers: @Override public
focal_method.parameters: (final MySQLBinlogColumnDef columnDef, final MySQLPacketPayload payload)
focal_method.return: Serializable
focal_method.signature: Serializable read(final MySQLBinlogColumnDef columnDef, final MySQLPacketPayload payload)