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: 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/MySQLDatetimeBinlogProtocolValueTest.java
test_class.identifier: MySQLDatetimeBinlogProtocolValueTest
test_case.body: @Test
      public void assertRead() {
          when(payload.readInt8()).thenReturn(99991231235959L);
          assertThat(new MySQLDatetimeBinlogProtocolValue().read(columnDef, payload), is("9999-12-31 23:59:59"));
      }
test_case.class_method_signature: MySQLDatetimeBinlogProtocolValueTest.assertRead()
test_case.full_signature: @Test public void assertRead()
test_case.identifier: assertRead
test_case.invocations: thenReturn when readInt8 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/MySQLDatetimeBinlogProtocolValue.java
focal_class.identifier: MySQLDatetimeBinlogProtocolValue
focal_class.interfaces: implements MySQLBinlogProtocolValue
focal_class.class_method_signature: MySQLDatetimeBinlogProtocolValue.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_class.class_method_signature: MySQLDatetimeBinlogProtocolValue.readDate(final int date)
focal_class.full_signature: private String readDate(final int date)
focal_class.identifier: readDate
focal_class.modifiers: private
focal_class.parameters: (final int date)
focal_class.return: String
focal_class.signature: String readDate(final int date)
focal_class.class_method_signature: MySQLDatetimeBinlogProtocolValue.readTime(final int time)
focal_class.full_signature: private String readTime(final int time)
focal_class.identifier: readTime
focal_class.modifiers: private
focal_class.parameters: (final int time)
focal_class.return: String
focal_class.signature: String readTime(final int time)
focal_method.body: @Override
      public Serializable read(final MySQLBinlogColumnDef columnDef, final MySQLPacketPayload payload) {
          long datetime = payload.readInt8();
          return 0 == datetime ? MySQLTimeValueUtil.DATETIME_OF_ZERO : String.format("%s %s", readDate((int) (datetime / 1000000)), readTime((int) (datetime % 1000000)));
      }
focal_method.class_method_signature: MySQLDatetimeBinlogProtocolValue.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: readInt8 format readDate readTime
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)