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/MySQLDateBinlogProtocolValueTest.java
test_class.identifier: MySQLDateBinlogProtocolValueTest
test_case.body: @Test
      public void assertReadNullDate() {
          when(payload.getByteBuf()).thenReturn(byteBuf);
          when(byteBuf.readUnsignedMediumLE()).thenReturn(0);
          assertThat(new MySQLDateBinlogProtocolValue().read(columnDef, payload), is(MySQLTimeValueUtil.ZERO_OF_DATE));
      }
test_case.class_method_signature: MySQLDateBinlogProtocolValueTest.assertReadNullDate()
test_case.full_signature: @Test public void assertReadNullDate()
test_case.identifier: assertReadNullDate
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 assertReadNullDate()
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/MySQLDateBinlogProtocolValue.java
focal_class.identifier: MySQLDateBinlogProtocolValue
focal_class.interfaces: implements MySQLBinlogProtocolValue
focal_class.class_method_signature: MySQLDateBinlogProtocolValue.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 date = payload.getByteBuf().readUnsignedMediumLE();
          return 0 == date ? MySQLTimeValueUtil.ZERO_OF_DATE : String.format("%d-%02d-%02d", date / 16 / 32, date / 32 % 16, date % 32);
      }
focal_method.class_method_signature: MySQLDateBinlogProtocolValue.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 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)